Ana içeriğe geç

Nginx Loglarını OpenSearch’e Aktarma: Logstash Kurulumu

Bu rehberde ne öğreneceksiniz?

Bu rehberde, Ubuntu üzerinde Logstash kurulumunu öğreneceksiniz.
Nginx erişim ve hata loglarını merkezi olarak OpenSearch’e göndereceksiniz.
Son aşamada OpenSearch Dashboard üzerinden logları görüntüleyeceksiniz.


Teknik Özet

Ana konu: Nginx loglarının Logstash ile OpenSearch’e aktarılması
Çözülen problem: Dağınık logların izlenememesi ve analiz zorluğu
Kazanım: Merkezi loglama, arama ve görselleştirme

İzlenen adımlar:

  1. Logstash kurulumu
  2. OpenSearch output eklentisinin eklenmesi
  3. Logstash pipeline yapılandırması
  4. OpenSearch Dashboard ayarları
  5. Sorun giderme

Ön Koşullar

  • Ubuntu yüklü bir sunucu
  • Nginx kurulmuş ve log üretiyor olmalı
  • Çalışır durumda bir OpenSearch kümesi
  • OpenSearch erişim bilgileri hazır olmalı

1. Logstash Kurulumu (Ubuntu)

Önce işletim sistemini doğrulayın.

cat /etc/os-release
  • Bu komut, sunucunun Linux dağıtımını gösterir.

  1. Depo anahtarını ekleyin

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
  • Bu komut, Logstash paketleri için imza anahtarını ekler.

  1. Gerekli paketleri kurun

sudo apt-get install apt-transport-https
  • Bu paket, HTTPS üzerinden depo kullanımını sağlar.

  1. Logstash deposunu ekleyin

echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
  • Bu komut, Logstash paket kaynağını tanımlar.

  1. Kurulumu tamamlayın

sudo apt-get update
sudo apt-get install logstash
  • Bu komutlar, Logstash servisini sisteme kurar.

  1. Servisi başlatın

sudo systemctl start logstash
sudo systemctl enable logstash
  • Bu komutlar, Logstash’i çalıştırır ve açılışta başlatır.

2. OpenSearch Output Eklentisini Kurma

  1. Logstash’in OpenSearch’e veri göndermesi için eklenti gerekir.

/usr/share/logstash/bin/logstash-plugin install logstash-output-opensearch
  • Bu komut, OpenSearch çıkış eklentisini yükler.

3. Logstash Pipeline Yapılandırması

  1. Logstash pipeline üç bölümden oluşur: input, filter, output.

  2. Yapılandırma dosyasını oluşturun


sudo nano /etc/logstash/conf.d/nginx-to-opensearch.conf
  • Bu dosya, Nginx loglarının nasıl işleneceğini belirler.


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.rabisu.cloud:25060"]
user => "doadmin"
password => "OPENSEARCH_SIFRE"
index => "nginx_access-%{+YYYY.MM.dd}"
ssl => true
ssl_certificate_verification => true
}
} else if "nginx_error" in [tags] {
opensearch {
hosts => ["https://opensearch.rabisu.cloud:25060"]
user => "doadmin"
password => "OPENSEARCH_SIFRE"
index => "nginx_error-%{+YYYY.MM.dd}"
ssl => true
ssl_certificate_verification => true
}
}
}
  • Bu yapılandırma, Nginx loglarını ayrıştırır ve OpenSearch’e yollar.

  1. Yapılandırmayı uygulayın

sudo systemctl restart logstash
  • Bu komut, yeni pipeline ayarlarını aktif eder.

  1. Logları kontrol edin

sudo tail -f /var/log/logstash/logstash-plain.log
  • Bu komut, Logstash’in veri işleyip işlemediğini gösterir.

4. OpenSearch Dashboard Yapılandırması

  1. Tarayıcıdan OpenSearch arayüzüne girin.

https://opensearch.rabisu.cloud

  1. Index Pattern oluşturun:
nginx_access-*

nginx_error-*

  • Discover bölümünde logların aktığını doğrulayın.

Sıkça Sorulan Sorular

1. Logstash neden kullanılır? Logları toplar, işler ve merkezi sistemlere iletir.

2. Access ve error loglar ayrılabilir mi? Evet, tag yapısı ile ayrı indekslere gönderilir.

3. Loglar neden görünmüyor? Yetkiler, bağlantı veya firewall ayarları kontrol edilmelidir.

4. SSL doğrulaması zorunlu mu? Üretim ortamlarında mutlaka açık olmalıdır.


Sorun Giderme

  1. OpenSearch bağlantısını test edin

curl -u doadmin:OPENSEARCH_SIFRE -X GET "https://opensearch.rabisu.cloud:25060/_cat/indices?v"
  • Bu komut, OpenSearch erişimini doğrular.

  1. Firewall kontrolü
  • Logstash → OpenSearch portu: 25060
  • Çıkış trafiğine izin verildiğinden emin olun

Sonuç

Bu rehberle Nginx loglarını merkezi bir OpenSearch yapısına aktardınız. Logstash sayesinde loglar ayrıştırıldı ve indekslendi. Artık loglarınızı arayabilir, analiz edebilir ve görselleştirebilirsiniz.

Bu mimariyi Rabisu Bulut altyapısında güvenle uygulayabilirsiniz.