Nginx Günlüklerini Yönetilen OpenSearch'e İletmek için Damlacıklarda Logstash'ı Yapılandırma
giriiş
Web sunucusu günlüklerini takip etmek, web sitenizi sorunsuz bir şekilde çalıştırmak, sorunları çözmek ve kullanıcı davranışını anlamak için çok önemlidir. Nginx kullanıyorsanız değerli bilgilerle dolu erişim ve hata günlükleri oluşturur. Bu günlükleri yönetmek ve analiz etmek için Logstash'ı kullanarak bunları işleyebilir ve iletebilir, DigitalOcean'ın Managed OpenSearch'ünü ise verileri indeksleyip görselleştirebilirsiniz.
Bu eğitimde, Logstash'ı bir Droplet'e kurma, Nginx günlüklerinizi toplayacak şekilde ayarlama ve bunları DigitalOcean Managed OpenSearch'e gönderme konusunda size yol göstereceğiz.
Önkoşullar
Bir DigitalOcean Cloud hesabı ve bir Ubuntu Droplet'i çalışır durumda.
Nginx kurulmalı ve Droplet'inizde günlükler oluşturulmalıdır. Bir Damlacık üzerine nginx yüklemek için, Ubuntu'da Ngnix Nasıl Kurulur hakkındaki bu eğitime bakın.
-
OpenSearch kümesi çalışıyor olmalı ve sizin de ona erişiminiz olmalıdır. Daha fazla ayrıntı için OpenSearch Kümeleri Nasıl Oluşturulur sayfasını ziyaret edin.
Nginx, Logstash ve OpenSearch'e aşina olmak faydalıdır.
Kullanım Örneği
Aşağıdakileri yapmak istiyorsanız bu kuruluma ihtiyacınız olabilir:
- İzleme ve Sorun Giderme: Gerçek zamanlı günlükleri analiz ederek web sunucusu performansını ve hataları izleyin.
- Performansı Analiz Edin: Web trafiği kalıpları ve sunucu ölçümleri hakkında bilgi edinin.
- Günlüğü Merkezileştirin: Daha kolay yönetim için birden fazla Nginx sunucusundaki günlükleri tek bir OpenSearch örneğinde toplayın.
Not: Kurulum süresi yaklaşık 30 dakika olmalıdır.
Adım 1 - Logstash'ı Damlacıklara Yükleme
Logstash, burada bulunan ikili dosyalar veya işletim sisteminiz için uyarlanmış paket depoları kullanılarak kurulabilir. Daha kolay yönetim ve güncellemeler için genellikle paket havuzlarının kullanılması önerilir. APT paket yöneticisini Ubuntu gibi Debian tabanlı sistemlerde kullanabilirken, CentOS veya RHEL gibi Red Hat tabanlı sistemlerde yum'u kullanabilirsiniz. Her iki yöntem de Logstash'ın sisteminizin paket yönetimi altyapısına düzgün bir şekilde entegre edilmesini sağlayarak kurulum ve bakımı basitleştirir.
Bu bölümde, hem apt hem de yum paket yöneticilerini kullanarak Logstash kurulumunda size yol göstereceğiz ve Linux dağıtımınızdan bağımsız olarak Droplet'inizde Logstash'ı yapılandırabilmenizi sağlayacağız.
İşletim Sistemini bulmak için aşağıdaki komutu çalıştırın:
cat /etc/os-release
APT Tabanlı Sistemler İçin (Ubuntu/Debian)
1.Genel İmzalama Anahtarını indirin ve yükleyin:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
2. Zaten yüklü değilse apt-transport-https'yi yükleyin:
sudo apt-get install apt-transport-https
3. Logstash deposu tanımını apt kaynakları listenize ekleyin ve kaydedin:
echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
Not: Desteklenmeyen bir deb-src girişi ekleyebileceği için add-apt-repository komutlarını kullanmadığınızdan emin olun. deb-src girişiyle ilgili bir hatayla karşılaşırsanız, onu /etc/apt/sources.list dosyasından silin. deb-src girdisini eklediyseniz aşağıdaki gibi bir hata göreceksiniz:
Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)
deb-src girişini /etc/apt/sources.list dosyasından silerseniz, kurulum beklendiği gibi çalışmalıdır.
4. Yeni havuzu içerecek şekilde paket dizinini güncelleyin:
sudo apt-get update
5. apt paket yöneticisini kullanarak Logstash'ı yükleyin:
sudo apt-get install logstash
6. Logstash'ı başlatın ve açılışta otomatik olarak başlamasını sağlayın:
sudo systemctl start logstash
sudo systemctl enable logstash
Logstash artık sisteminizde yüklü ve çalışıyor.
YUM Tabanlı Sistemler için (CentOS/RHEL)
1.Logstash deposu için Genel İmzalama Anahtarını indirin ve yükleyin:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
2. Logstash için /etc/yum.repos.d/ dosyasında bir depo dosyası oluşturun. Örneğin, logstash.repo adında bir dosya oluşturun. Dosyayı oluşturmak ve içeriğini güncellemek için aşağıdaki içerikleri kopyalayıp yapıştırabilirsiniz:
sudo tee /etc/yum.repos.d/logstash.repo > /dev/null <<EOF
[logstash-8.x]
name=Elastic repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
Depo kullanıma hazır.
3. YUM paket yöneticisini kullanarak Logstash'ı yükleyin:
sudo yum install logstash
4. Logstash'ı başlatın ve açılışta otomatik olarak başlamasını sağlayın:
sudo systemctl start logstash
sudo systemctl enable logstash
Logstash artık sisteminizde yüklü ve çalışıyor.
Adım 2 - Açık Arama Çıkışı Eklentisini Yükleme
Aşağıdaki komutu çalıştırarak OpenSearch çıktı eklentisini yükleyebilirsiniz:
/usr/share/logstash/bin/logstash-plugin install logstash-output-opensearch
Bu logstash-output-opensearch eklenti deposunda eklenti hakkında daha fazla bilgi bulabilirsiniz.
Adım 3 - Logstash'ı Nginx Günlüklerini OpenSearch'e Gönderecek Şekilde Yapılandırma
Logstash işlem hattı üç ana aşamadan oluşur: giriş, filtre ve çıkış. Logstash işlem hatları eklentilerden yararlanır. Topluluk eklentilerinden yararlanabilir veya kendinizinkini oluşturabilirsiniz.
- Girdi: Bu aşamada çeşitli kaynaklardan veriler toplanır. Logstash, günlük dosyaları, veritabanları, mesaj kuyrukları ve bulut hizmetleri gibi veri kaynaklarını yönetmek için çok sayıda giriş eklentisini destekler.
- Filtreleme: Bu aşama, giriş aşamasında toplanan verileri işler ve dönüştürür. Filtreler, verileri daha kullanışlı ve analiz edilmesi daha kolay hale getirmek için değiştirebilir, zenginleştirebilir ve yapılandırabilir.
- Çıktı: Bu aşamada işlenen veri bir hedefe gönderilir. Hedefler veritabanlarını, dosyaları ve OpenSearch gibi veri depolarını içerebilir.
Şimdi bir boru hattı oluşturalım.
1. Aşağıdaki içeriklerle /etc/logstash/conf.d/nginx-to-opensearch.conf adresinde Logstash Yapılandırma Dosyasını oluşturun:
input {
file {
path => "/var/log/nginx/access.log"
start_position => "beginning"
sincedb_path => "/dev/null"
tags => ["nginx_access"]
}
file {
path => "/var/log/nginx/error.log"
start_position => "beginning"
sincedb_path => "/dev/null"
tags => ["nginx_error"]
}
}
filter {
if "nginx_access" in [tags] {
grok {
match => { "message" => "%{IPORHOST:client_ip} - %{USER:ident} \[%{HTTPDATE:timestamp}\] \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}\" %{NUMBER:response} %{NUMBER:bytes} \"%{DATA:referrer}\" \"%{DATA:user_agent}\"" }
}
mutate {
remove_field => ["message", "[log][file][path]", "[event][original]"]
}
} else if "nginx_error" in [tags] {
grok {
match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] \[%{LOGLEVEL:level}\] \[%{DATA:pid}\] \[%{DATA:tid}\] %{GREEDYDATA:error_message}" }
}
mutate {
remove_field => ["message", "[log][file][path]", "[event][original]"]
}
}
}
output {
if "nginx_access" in [tags] {
opensearch {
hosts => ["https://<OpenSearch-Hostname>:25060"]
user => "doadmin"
password => "<your_password>"
index => "nginx_access-%{+YYYY.MM.dd}"
ssl => true
ssl_certificate_verification => true
}
} else if "nginx_error" in [tags] {
opensearch {
hosts => ["https://<OpenSearch-Hostname>:25060"]
user => "doadmin"
password => "<your_password>"
index => "nginx_error-%{+YYYY.MM.dd}"
ssl => true
ssl_certificate_verification => true
}
}
}
Yer değiştirmek :
- OpenSearch sunucunuzun ana bilgisayar adını içeren
OpenSearch-Hostname. ile OpenSearch şifrenizi girin.
2. Logstash'ı yeniden başlatarak yeni yapılandırmayı uygulayın:
sudo systemctl restart logstash
3.Verileri doğru şekilde işlediğinden ve ilettiğinden emin olmak için Logstash günlüklerini kontrol edin:
sudo tail -f /var/log/logstash/logstash-plain.log
nginx-to-opensearch.conf yapılandırmasının dökümü
GİRİŞ
input bloğu, günlükleri okumak için iki dosya girişini yapılandırır:
Nginx Günlükleri: Yollar: /var/log/nginx/access.log (erişim günlükleri için) /var/log/nginx/error.log (hata günlükleri için) Başlangıç Konumu: beginning – Günlük dosyalarının başından itibaren okur. Sincedb Yolu: /dev/null – Sürekli okuma için izlemeyi devre dışı bırakır. Etiketler: Erişim günlükleri için ["nginx_access"] Hata günlükleri için ["nginx_error"]
Not: Logstash hizmetinin giriş yollarına erişimi olduğundan emin olun.
FİLTRE
filter bloğu, günlükleri etiketlerine göre işler:
Günlük İşleme: Günlüklere Erişim: Erişim günlüğü biçimini ayrıştırmak için bir grok filtresi kullanır ve client_ip, timestamp, method, istek, http_versiyonu, yanıt, bayt, yönlendiren ve kullanıcı_agent kodu>. Orijinal mesajı ve belirli meta veri alanlarını kaldırır.
Hata Günlükleri: nginx_error etiketini kontrol eder ve timestamp, level, gibi alanları çıkarmak için bir , grok filtresi uygular pidtid ve error_message. Ayrıca message ve meta veri alanlarını da kaldırır.
ÇIKTI
output bloğu, olayları etiketlerine göre OpenSearch'e yönlendirir:
OpenSearch'e Yönlendirme: Hem erişim hem de hata günlükleri için şunları belirtir: Ana Bilgisayarlar: OpenSearch örneğinin URL'si. Kullanıcı: Kimlik doğrulama için doadmin. Şifre: OpenSearch şifreniz. Dizin: Erişim günlükleri için nginx_access-%{+YYYY.MM.dd Hata günlükleri için nginx_error-%{+YYYY.MM.dd SSL Ayarları: SSL ve sertifika doğrulamayı etkinleştirir.
Adım 4 - OpenSearch'ü Yapılandırın
1.Web tarayıcınızı açın ve OpenSearch Kontrol Paneli URL'sine gidin:
https://<OpenSearch-Hostname>
OpenSearch-Hostname kısmını OpenSearch sunucunuzun ana bilgisayar adıyla değiştirin.
2. Bir Dizin Deseni oluşturun. A. Sol kenar çubuğunda Yönetim > Kontrol Paneli Yönetimi > Dizin Modelleri'ne gidin. B. Sağ üstteki Dizin modeli oluştur'u tıklayın. C. Logstash tarafından oluşturulan tüm dizinlerle eşleşecek dizin modeli olarak nginx_access-* veya nginx_error-* girin ve Sonraki adım'ı tıklayın. D. Dizin modeli oluştur'u tıklayın.
3. Dizin modelinin başarıyla oluşturulduğundan ve Dizin Modelleri listesinde göründüğünden emin olun.
4.Sol kenar çubuğunda Keşfet'e gidin ve oluşturduğunuz dizin modelini seçin (nginx_access-* veya nginx_error-*). Günlük girişlerinin görünür olduğunu ve doğru şekilde dizine eklendiğini doğrulayın.
5.Görselleştirmeler ve Gösterge Tabloları oluşturun. Daha fazla ayrıntı için OpenSearch'te Kontrol Paneli Nasıl Oluşturulur sayfasını ziyaret edin.
Sorun giderme
Bağlantıyı Kontrol Edin
Bağlantıyı test ederek Logstash'ın OpenSearch'e bağlanabildiğini doğrulayabilirsiniz:
curl -u doadmin:your_password -X GET "https://<OpenSearch-Hostname>:25060/_cat/indices?v"
Yer değiştirmek :
- OpenSearch sunucunuzun ana bilgisayar adını içeren
OpenSearch-Ana Bilgisayar Adı. ile OpenSearch şifrenizi girin.
Veri Kullanımı
Aşağıdaki curl komutunu kullanarak verilerin OpenSearch'te düzgün şekilde indekslendiğinden emin olabilirsiniz:
curl -u doadmin:your_password -X GET "http://<OpenSearch-Hostname>:25060/nginx-logs-*/_search?pretty"
Yer değiştirmek :
- OpenSearch sunucunuzun ana bilgisayar adını içeren
OpenSearch-Ana Bilgisayar Adı. ile OpenSearch şifrenizle
Güvenlik Duvarı ve Ağ Yapılandırması
Güvenlik duvarı kurallarının ve ağ ayarlarının 25060 bağlantı noktasında Logstash ile OpenSearch arasındaki trafiğe izin verdiğinden emin olun.
Çözüm
Bu kılavuzda, Nginx günlüklerini toplamak ve OpenSearch'e iletmek için Logstash'ı ayarlamayı öğrendiniz.
Logstash'ı Droplet'inizde çalışır hale getirmek için Linux dağıtımınıza bağlı olarak apt veya yum paket yöneticilerini nasıl kullanacağınızı incelediniz. Ayrıca Nginx günlüklerinin doğru şekilde ayrıştırılıp OpenSearch'e gönderildiğinden emin olmak için Logstash yapılandırma dosyasını oluşturup ayarladınız. Daha sonra, günlüklerin düzgün bir şekilde dizine eklendiğini ve analiz için görünür olduğunu kontrol etmek için OpenSearch Kontrol Panellerinde bir dizin modeli ayarlarsınız. Bu adımlar tamamlandıktan sonra artık Logstash'ın Nginx günlüklerini topladığı ve bunları OpenSearch'e gönderdiği çalışan bir kuruluma sahip olmalısınız. Bu kurulum, sunucu günlüklerinizi analiz etmek için OpenSearch'ün güçlü arama ve görselleştirme araçlarını kullanmanızı sağlar.
Herhangi bir sorunla karşılaşırsanız sunduğumuz sorun giderme ipuçlarına göz atın ve daha fazla yardım için Logstash ve OpenSearch belgelerine bakın. Düzenli izleme, kayıt sisteminizin sorunsuz ve etkili bir şekilde çalışmasını sağlayacaktır.
