Ana içeriğe geç

🚀 Logstash Apache Log Yönlendirme: OpenSearch Entegrasyon Rehberi

Bu rehberde Apache sunucunuzdaki erişim ve hata kayıtlarını Logstash ile işleyerek OpenSearch’e nasıl göndereceğinizi öğreneceksiniz.
Veriyi ayrıştırma (grok), filtreleme ve index’leme adımlarını adım adım gösteriyoruz.


📌 Bu Rehberde Ne Öğreneceksiniz?

  • Logstash kurulumunu (Ubuntu/Debian & CentOS)
  • OpenSearch çıktı eklentisinin yüklenmesini
  • Apache access & error loglarını okumak için pipeline oluşturmayı
  • Grok filtreleriyle logları ayrıştırmayı
  • Logstash → OpenSearch bağlantısını doğrulamayı
  • Hata çözümü ve log analizi yöntemlerini

🧠 1. Aşama — Teknik Analiz Özeti

Bu rehber Apache web sunucusunun access.log ve error.log dosyalarını Logstash ile toplayıp genişletilmiş grok kalıplarıyla ayrıştırarak OpenSearch’e göndermeyi anlatır.

Kullanıcının izlediği adımlar:

  1. Logstash kurulumu (APT/YUM)
  2. OpenSearch çıkış eklentisinin yüklenmesi
  3. Pipeline oluşturulması (input → filter → output)
  4. Grok ile log ayrıştırma
  5. Logstash servisinin başlatılması
  6. OpenSearch bağlantı testi
  7. Sorun giderme: firewall, SSL, log analizi

Amaç, Apache loglarını merkezi, hızlı, güvenli ve analiz edilebilir hale getirmektir.


🔧 2. Logstash Kurulumu (Yerelleştirilmiş ve Sadeleştirilmiş)

İlk olarak işletim sistemi tipini öğrenin:

cat /etc/os-release

👉 Hangi paket yöneticisini kullanacağınızı gösterir.

2.1 ✔️ Ubuntu / Debian İçin Kurulum

1. GPG anahtarını ekleyin:


wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg

2. Depoyu ekleyin:


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

3. Logstash’i yükleyin:


sudo apt-get update && sudo apt-get install logstash

2.2✔️ CentOS / RHEL İçin Kurulum

1. Elastic GPG anahtarını alın:


sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2. Repo oluşturun:


sudo tee /etc/yum.repos.d/logstash.repo > /dev/null <<EOF
[logstash-8.x]
name=Elastic repository 8.x
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF

Kurun:


sudo yum install logstash

3. 🧩 — Apache Logları için Pipeline Oluşturma

1. Önce OpenSearch çıktı eklentisini kurun:


/usr/share/logstash/bin/logstash-plugin install logstash-output-opensearch

👉 Bu eklenti Logstash’in OpenSearch’e veri göndermesini sağlar.

2. 📄 Pipeline dosyasını oluşturun


sudo nano /etc/logstash/conf.d/apache_pipeline.conf

Aşağıdaki yapılandırmayı ekleyin:


input {
file {
path => "/var/log/apache2/access.log"
start_position => "beginning"
sincedb_path => "/dev/null"
tags => "apache_access"
}

file {
path => "/var/log/apache2/error.log"
start_position => "beginning"
sincedb_path => "/dev/null"
tags => "apache_error"
}
}

filter {
if "apache_access" in [tags] {
grok {
match => { "message" => "%&#123;HTTPD_COMBINEDLOG&#125;" }#
}
mutate {
remove_field => [ "message","[log][file][path]","[event][original]" ]
}
} else {
grok {
match => { "message" => "%&#123;HTTPD24_ERRORLOG&#125;" }
}
}
}

output {
if "apache_access" in [tags] {
opensearch {
hosts => "https://tr1-opensearch.rabisu.cloud:25060"
user => "doadmin"
password => "<OPENSEARCH_SIFRE>"
index => "apache_access"
ssl_certificate_verification => true
}
} else {
opensearch {
hosts => "https://tr1-opensearch.rabisu.cloud:25060"
user => "doadmin"
password => "<OPENSEARCH_SIFRE>"
index => "apache_error"
ssl_certificate_verification => true
}
}
}

4. 🧩 — Servisi Başlatma


systemctl enable logstash.service
systemctl start logstash.service
systemctl status logstash.service

🛠️ 5. Aşama — Sorun Giderme ve Doğrulama

🔗 OpenSearch bağlantısını test edin:


curl -u doadmin:PAROLA -X GET "https://tr1-opensearch.rabisu.cloud:25060/_cat/indices?v"

5.1 📥 Loglar index'e düşüyor mu?


curl -u doadmin:PAROLA -X GET "https://tr1-opensearch.rabisu.cloud:25060/apache_access/_search?pretty"

5.2 🛡 Firewall kontrolü

  • Port 25060 açık olmalı.

1. 📄 Logstash hata kayıtları


/var/log/logstash/logstash-plain.log

❓ Sıkça Sorulan Sorular (SSS)

1. Grok parser neden hata verir? Apache log formatınız standart değilse logu parse edemez.

2. Logstash neden dosyayı hiç okumuyor? Çünkü sincedb konumu izin gerektirir veya Logstash kullanıcısının okuma izni yoktur.

3. Loglar OpenSearch’e düşmüyor, sebebi? Genelde SSL doğrulaması veya firewall engeli olur.

4. Birden fazla domain logunu nasıl işlerim? Her domain için ayrı tag → ayrı index mantığı uygularsınız.

5. Error.log neden boş geliyor? Çünkü Apache hata seviyeleri kapalı olabilir (LogLevel warn önerilir).


Sonuç

Bu rehber, Apache loglarını Logstash pipeline'ı üzerinden ayrıştırıp güvenli bir şekilde OpenSearch’e iletmenizi sağlar. Merkezi loglama yapınız artık daha hızlı, izlenebilir ve analiz edilebilir durumda.

Rabisu Bulut ile kendi OpenSearch kümenizi hemen oluşturabilir, log mimarinizi dakikalar içinde hayata geçirebilirsiniz.