UNIX / Linux makinelerindeki günlük dosyalarını nasıl analiz ediyorsunuz? Doğrudan veya syslog üzerinden kendi günlük dosyalarını oluşturan yüzlerce sunucu çalıştırıyoruz. Bunları toplamak ve önemli olayları seçmek için iyi bir çözüm arıyorum. Bu sorun 3 bileşene ayrılıyor:
1) Mesaj taşıma
Klasik yol, iletileri uzaktaki bir ana bilgisayara kaydetmek için syslog'u kullanmaktır. Bu, syslog'da oturum açan uygulamalar için iyi çalışır, ancak yerel bir dosyaya yazılan uygulamalar için daha az yararlıdır. Bunun çözümleri, syslog kullanarak iletiyi göndermek veya yerel dosyaları grep ve merkezi syslog ana bilgisayarına çıktı göndermek için bir program yazarak bir programa bağlı bir FIFO'ya oturum açmak olabilir. Bununla birlikte, iletileri syslog'a almak için araç yazma sorununa gidersek, her şeyi Facebook Scribe gibi bir şeyle değiştirsek daha iyi olur daha fazla esneklik ve güvenilirlik sunan mu?
2) Mesaj toplama
Günlük girişleri iki türden birine düşüyor gibi görünüyor: ana makine ve hizmet başına. Ana makine başına iletiler bir makinede gerçekleşen iletilerdir; disk hatalarını veya şüpheli girişleri düşünün. Hizmet başına iletiler, bir hizmeti çalıştıran ana bilgisayarların çoğunda veya tamamında oluşur. Örneğin, Apache'nin ne zaman bir SSI hatası bulduğunu bilmek istiyoruz, ancak 100 makineden aynı hatayı istemiyoruz. Her durumda, yalnızca her mesaj türünden birini görmek istiyoruz: aynı diskin arızalı olduğunu söyleyen 10 mesaj istemiyoruz ve kırık bir SSI her vurulduğunda bir mesaj istemiyoruz.
Bunu çözmenin bir yolu, aynı türden birden fazla mesajı her ana bilgisayarda bire toplamak, iletileri merkezi bir sunucuya göndermek ve daha sonra aynı türden mesajları tek bir genel etkinliğe toplamaktır. SER bunu yapabilir, ancak kullanımı gariptir. Birkaç gün süren bir uğraştan sonra bile, sadece ilkel toplamalar çalışıyordum ve SER olaylarını ilişkilendirmek için kullandığı mantığı sürekli aramak zorunda kaldım. Güçlü ama zor şeyler: Meslektaşlarımın mümkün olan en kısa sürede alabileceği ve kullanabileceği bir şeye ihtiyacım var. SER kuralları bu şartı karşılamıyor.
3) Uyarı oluşturma
İlginç bir şey olduğunda yöneticilerimize nasıl söyleyebiliriz? Grup gelen kutusuna posta gönderilsin mi? Nagios'a enjekte edilsin mi?
Peki, bu sorunu nasıl çözüyorsun? Bir plaka üzerinde cevap beklemiyorum; Ayrıntıları kendim çözebilirim, ancak kesinlikle ortak bir sorunun ne olduğu konusunda üst düzey bir tartışma harika olurdu. Şu anda cron işleri, syslog ve olayları bulmak için başka neler bilen bir karışıklık kullanıyoruz. Bu genişletilebilir, bakımı kolay veya esnek değildir ve bu nedenle yapmamamız gereken birçok şeyi kaçırırız.
Güncellenmiş: tespit edilen ana bilgisayarlar / test hizmetleri / vb için harika olan ancak günlük dosyalarını kazıma için daha az yararlı olan izleme için Nagios'u zaten kullanıyoruz. Nagios için günlük eklentileri olduğunu biliyorum, ancak ana bilgisayar başına uyarılardan daha ölçeklenebilir ve hiyerarşik bir şeyle ilgileniyorum.