Docker'da Logstash

Docker Da Logstash



Logstash, çeşitli kaynaklardan günlük verilerini toplamanıza, işlemenize ve iletmenize olanak tanıyan açık kaynaklı bir veri işleme hattıdır.

Bu eğitimde, Logstash'ı bir Docker kapsayıcısında temel yapılandırmayla çalıştırma sürecinde size rehberlik edeceğiz.

Gereksinimler:

Eğiticiye başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:







  1. Ana makinenizde Docker yüklü (sürüm 23 ve üzeri önerilir)
  2. Makinenize Docker Compose'u yüklediniz

Belirtilen gereksinimler karşılandığında eğitime devam edebiliriz.



Logstash Yapılandırma Dosyasını Kurma

Logstash, verilerin nasıl alınacağını, filtreleneceğini ve çıktıya nasıl gönderileceğini tanımlamak için yapılandırma dosyalarını kullanır. Resmi belgelerde referans alabileceğiniz şekilde yapılandırabileceğiniz çeşitli seçenekler vardır.



Örneğimiz için, verileri bir günlük dosyasından alan, eşleşen kayıtlar için filtreleyen ve verileri bir dosyaya çıkaran temel yapılandırmaya odaklanıyoruz.





“logstash.conf” adında bir dosya oluşturun ve konfigürasyonu aşağıdaki gibi ekleyin:

giriş {
dosya {
yol => '/var/log/Apache/access.log'

başlangıç_konumu => 'başlangıç'

beridb_path => '/dev/null'

görmezden_eski => 0
}
}

filtre {
eğer [mesaj] =~ 'HATA' {
büyük {
eşleşme => { 'İleti' => '%{COMBINEDAPACHELOG}' }
}
}
}

çıktı {
dosya {
yol => '/var/log/Apache/error_logs.log'
}
}

Önceki dosya, yapılandırmayı aşağıda gösterildiği gibi tanımlar:

  1. Giriş bölümü – Giriş bölümü, /var/log/apache/access.log dosyasında bulunan Apache günlük dosyasını okumak için dosya giriş eklentisini kullanır.
    • Daha sonra Logstash'ın tüm dosyayı baştan okumasına olanak tanıyan başlangıç ​​konumunu başlangıçta ayarlıyoruz.
    • Beridb_path – Bu parametre, değeri /dev/null olarak ayarlayarak Logstash'ın beridb takibini devre dışı bırakmamızı sağlar. Bu, Logstash'ın her zaman dosyanın başından itibaren okumasını sağlar.
    • Ignore_older – Bu parametrenin değerinin 0 olarak ayarlanması Logstash'ın günlük dosyasının tüm girişlerini işlemesine olanak tanır.
  2. Filtre bölümü – Filtre bölümünde, günlük mesajının HATA kelimesini içerip içermediğini kontrol etmek için filtre desenini tanımlarız. Dosyadaki daha kesin eşleşmeleri filtrelemek için filtre bloklarının koşullarını ayarlayabilirsiniz.
    • Koşul karşılanırsa, Apache günlüklerini ayrıştırmak için Logstash'ta yerleşik bir model olan COMBINEDAPACHELOG modelini kullanarak Apache günlük satırını ayrıştırmak için grok filtresini kullanırız.
  3. Çıktı bölümü – Bu bölüm, eşleşen girişler için çıktı biçimini tanımlamamıza olanak tanır.
    • Bizim durumumuzda bunları path parametresini kullanarak /var/log/Apache/error_logs.log dosyasına yazıyoruz.

Bu bize bazı temel Logstash çalışmalarını göstermemize olanak tanıyan temel bir Logstash yapılandırması sağlamalıdır.

Lütfen aşağıda sağlanan dokümantasyon kaynağında Logstash işlem hatlarını oluşturma ve yapılandırma hakkında daha fazla bilgi edinin:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Docker dosyasını oluşturun

Logstash konfigürasyonlarını tanımladıktan sonra devam edip konteynerin nasıl çalıştırılacağını öğrenebiliriz. “logstash.conf” dosyasıyla aynı dizinde “Dockerfile” adında yeni bir dosya oluşturun.

Bu dosyayı düzenleyin ve girişleri aşağıdaki gibi ekleyin:

docker.elastic.co/logstash/logstash:8.9.2'DEN

logstash.conf /usr/share/logstash/pipeline/logstash.conf KOPYALAYIN

Verilen örnekte temel görüntüyü 8.9.2 sürümünü kullanan resmi Logstash görüntüsü olarak tanımlıyoruz.

Daha sonra oluşturduğumuz “logstash.conf” dosyasını görseldeki /usr/share/logstash/pipeline/logstash.conf içerisine kopyalıyoruz.

Docker Görüntüsünü Oluşturun

Ardından Dockerfile ve Logstash yapılandırma dosyasını içeren dizine gidin. Görüntüyü oluşturmak için aşağıdaki komutu çalıştırın:

$ Liman işçisi yapısı -T özel-logstash-görüntü .

Logstash Container'ı çalıştırın

Artık Docker imajını oluşturduğumuza göre Docker “run” komutunu kullanarak Logstash Container’ı aşağıdaki gibi çalıştırabiliriz:

$ liman işçisi koşusu -D --isim logstash-sunucusu özel-logstash-görüntü

Bu, önceki adımda oluşturduğumuz görüntüyü kullanarak Logstash kapsayıcısını çalıştırmalıdır.

Logstash Konteyner Günlüklerini Doğrulayın

Logstash'ın düzgün çalıştığını doğrulamak için aşağıdaki komutu kullanarak konteyner günlüklerini kontrol edebilirsiniz:

$ liman işçisi günlükleri < kapsayıcı_adı >

Çıktı:

Çözüm

Bu eğitimde, özel bir yapılandırma dosyası kullanarak Docker olarak çalışan bir Logstash sunucusunu hızlı bir şekilde nasıl kurabileceğinizi öğrendiniz. Görüntü parametreleri ve yapılandırma seçenekleriyle ilgili belgeleri kontrol etmenizi öneririz.