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:
- Ana makinenizde Docker yüklü (sürüm 23 ve üzeri önerilir)
- 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:
- 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.
- 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.
- Çı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'DENlogstash.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.