Graylog İle Logları İzleme
Graylog yazı dizisine kaldığımız yerden devam ediyoruz. Sunucumuzda oluşan logları graylog sunucumuza gönderiyor olacağız.
Öncelikle elimize bir adet WS 2012 R2 Standart kurulu sunucumuz bulunmakta. Önceki yazılarımızda bahsettiğimiz üzere Ubuntu 18.04 kurulu graylog sunucumuz yer almaktadır.
WS Kurulu sunucumuzdan graylog’a sys log göndermek için, windows tarafında log collector işini görecek bir çok uygulama mevcut. Biz sık tercih edilenlerden biri olan nxlog ile işlemlerimizi gerçekleştireceğiz. nxlog’un topluluk ve Kurumsal olmak üzere iki sürümü mevcut. Buradan kullanım kılavuzuna göz atabilir, buradan da kurulum dosyasına erişebilirsiniz.
Windows için olan installer dosyasını indirerek windows sunucumuza nxLog kurulumunu tamamlıyoruz.
Config Dosyasını Düzenleme
Nxlog kurulumu tamamlandıktan sonra, Program Files(x86) dizini altında nxlog klasörünün içerisinde konfigürasyon dosyası oluşacaktır. Bu dosya içeriğini aşağıda yer alan örnek config dosyası ile değiştirebilirsiniz.
Örnek nxLog konfigürasyonu
## Please set the ROOT to your nxlog installation directory
#define ROOT C:\Program Files\nxlog
define ROOT C:\Program Files (x86)\nxlog
Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %ROOT%\data\nxlog.log
<Extension syslog>
Module xm_syslog
</Extension>
# Monitor application log files
<Input watchfile>
Module im_file
File 'C:\\path\\to\\*.log'
Exec $Message = $raw_event;
Exec if file_name() =~ /.*\\(.*)/ $SourceName = $1;
SavePos TRUE
Recursive TRUE
</Input>
# Monitor a single application log file
#<Input watchfile2>
# Module im_file
# # File 'C:\\path\\to\\a\\single\\file.log'
# Exec $Message = $raw_event;
# Exec if file_name() =~ /.*\\(.*)/ $SourceName = $1;
# SavePos TRUE
# Recursive TRUE
#</Input>
# Monitor Windows event logs
<Input eventlog>
# Uncomment for Windows Vista/2008 or later
Module im_msvistalog
# Uncomment for Windows 2000 or later
# Module im_mseventlog
</Input>
<Processor eventlog_transformer>
Module pm_transformer
Exec $Hostname = hostname();
OutputFormat syslog_rfc5424
</Processor>
<Processor filewatcher_transformer>
Module pm_transformer
# Uncomment to override the program name
# Exec $SourceName = 'PROGRAM NAME';
Exec $Hostname = hostname();
OutputFormat syslog_rfc5424
</Processor>
<Output syslogout>
Module om_udp
Host your_Graylog_Server_ip
Port port_number_of_created_input
</Output>
<Route 1>
Path eventlog => eventlog_transformer => syslogout
</Route>
<Route 2>
Path watchfile => filewatcher_transformer => syslogout
</Route>
# Replace route 2 with this implementation if watchfile2 is active
#<Route 2>
# Path watchfile, watchfile2 => filewatcher_transformer => syslogout
#</Route>
Burada dikkat edilmesi gereken husus, graylog sunucu ve port bilgilerinin doğru girilmesi. Örnek şablonda “Output” etiketlerinde graylog sunucu ve input port bilgisini girmeliyiz. Yukarıdaki config ayarları sys udp içindir. Config dosyasını kaydettikten sonra nxlog servisini restart etmemiz gerekmektedir.
Şimdi sıra geldi loglarımız için input oluşturmaya. Graylog sunucumuzdan, graylog web arayüzüne login olduktan sonra System/Inputs menüsü altında “Input” seçeneği ile yeni bir input oluşturma arayüzüne geçiyoruz.
Input türünü “Syslog UDP” olarak seçip, “launch new input” butonu ile input oluşturmaya başlıyoruz
Bind address 0.0.0.0
Port 2508 (Nxlog config sunucumuzda host port bilgisi ile aynı olmalıdır)
Ayarları yaptıktan sonra kaydediyoruz.
Görüldüğü üzere sunucumuzdan logları toplamaya başladık
Windows Sunucumda nxlog ile uğraşırken, Sql Server Management Studio Kurulumu başlatmıştım. Kurulumun tamamlandığı dair log mesajını graylog sunucumdan takip etmek istiyorum
Bunun için öncelikle “Sources” menusunden ilgili arayüze geliyoruz
Üsteki ekranda oluşturduğunuz(başarılı) log gönderen input kaynaklarını göreceksiniz. Biz hp-server isimli kaynağımızdan Sql Server Management Studio kurulumuna dair logu izlemek istiyoruz. Sağ tarafta yer alan search ikonuna tıklayarak ilgili sunucunun loglarına geçiş yapıyoruz
Açılan ekranda ister “Fields” alanından EvetType seçerek kriter oluşturabilirsiniz. Ama en pratik yaklaşım Kendi Sorgumuzu yazmak. Hp-server isimli kaynaktan INFO levelinde, mesaj içerisinde “SQL” yer alan logları getirmek istiyoruz.
Bunun için source:hp-server AND EventType:INFO AND message:”SQL” sorgusunu yazdık .
Görüldüğü üzere zaten bize en son SQL ile ilgili kurulumun tamamlandığına dair log gelmiş.