Graylog ile Web Uygulama Hata Kayıtlarının İzlenmesi
Doruk Fişek (dfisek@ozguryazilim.com.tr)
Graylog Nedir?
Bir log yönetim çözümü
2010'dan beri geliştiriliyor
GPL3
Xing geliştirilmesine sponsor
http://graylog2.org
Graylog'un Parçaları
graylog2-server (sunucu)
graylog2-web-interface (web arayüzü)
MongoDB (istatistik ve graflar)
ElasticSearch (mesajlar ve arama)
Graylog'un Yapısı
Yardımcı Araçlar
Logstash - Herhangi bir logu düzenleyerek log sunucuya iletebiliyor
Logix - Yerel syslog çağrılarını AMQP üzerinden log sunucuya iletebiliyor
Gelfino - Ufak gömülü bir GELF sunucusu
GELF de ne ki?
Graylog Extended Log Format
Syslog sistem kayıtları için kullanırken, GELF uygulamalar için ideal
Syslog gibi 1024 byte sınırı yok.
Birden fazla pakete bölünen tek bir upuzun log mesajı gönderilebiliyor.
Yapılandırılmış, özellikleri olan bir log gönderilebiliyor.
Hemen her dilde kitaplıkları var.
GELF Mesajı
Graylog Sunucusu
Java ile geliştirilmiş.
Syslog ya da GELF protokolü ile log alabiliyor.
TCP, UDP ya da AMQP aracılığıyla log alabiliyor.
Mesajları ElasticSearch'te depoluyor.
İstatistikler ve grafları MongoDB'de saklıyor.
İç mesaj kuyruklama sistemi var. Gecikmeli/toplu indeks yapabiliyor.
Graylog Web Arayüzü
Ruby/Rails ile geliştirilmiş.
İstenilen kriterlere göre farklı streamler tanımlanarak (regex destekli!) loglar sınıflandırılabiliyor.
Kullanıcılara farklı streamlere göre yetkilendirme yapılabiliyor.
Kullanıcılar bir stream'e t sürede n+1 mesaj gelince uyarılabiliyor.
Mesajların grafiksel analizini yapabiliyor.
Analytics kabuğu ile, komutla analiz yapmak da mümkün.
ElasticSearch kullanarak arşivlerde hızlı arama yapabiliyor.
Graylog Web Arayüzü: Ekran Görüntüleri 1
Graylog Web Arayüzü: Ekran Görüntüleri 2
Graylog Web Arayüzü: Ekran Görüntüleri 3
Graylog Web Arayüzü: Ekran Görüntüleri 4
Graylog Web Arayüzü: Ekran Görüntüleri 5
ElasticSearch
Arama motoru
Log mesajlarını da depoluyor
Dağıtık olarak n tane sunucunun gücünü kullanabiliyor
Şema bağımsız arama yapabiliyor
Apache Lucene üzerine kurulmuş
Graylog'u Nerede Kullanırım Ki?
Çok sayıda sunucudaki web uygulama hatalarının detaylı incelenmesi
Web geliştiricilerine web üzerinden log erişimi vermek
Çok sayıda kullanıcının farklı yetkilere göre logları inceleyebilmesi
API verilen müşterilerin kullanımının incelenmesi
Uygulamanın log üretiminin gözetlenmesi ve uyarı üretilmesi