Nxlog ile windows event log gönderimi
Translate This Page:
Bir önceki makalemizde Graylog 3.0 Server kurulumunun nasıl yapılacağını incelemiştik bu Makalemizde ,Graylog serverımıza networkümüzde bulunan Windows Makinelerimizde Event Loglarının nasıl aktarılacağını inceleyeceğiz. Windows tarafında log collector işini görecek bir çok uygulama mevcut. Biz en sık tercih edilenlerden biri olan nxlog ile işlemlerimizi gerçekleştireceğiz.
Buradan dosyamızı download ediyoruz
https://nxlog.co/products/nxlog-community-edition/download
agent kurulumu detaylı klavuzu için buradaki (https://nxlog.co/documentation/nxlog-user-guide-full#architecture) klavuzu inceleyebilirsiniz.Windows için bulunan dosyayı indiriyoruz.
İndirdiğimiz nx agnet (nxlog-ce-2.10.2150.msi) dosyamızın kurulumunu yapıyoruz.
Config Dosyası Düzenleme
NxLog kurulumunu yaptığımıza göre artık config dosyamızı düzenleyebiliriz bunun için default kurulum yoluna gidiyoruz.
C:\Program Files (x86)\nxlog\conf\ nxlog.conf
Burada nxlog.conf dosyamızın içeriğini aşağıdaki şekilde değiştiriyoruz. Aşağıdaki bölümlerde ip adresinizin ve port numaranızı kendi graylog serverınıza göre ayarlamalısınız.
Not:Burada girdiğiniz port numarası herhangi bir port olabilir.
GELF (Graylog Extended Log Format)
Aşağıdaki Config GELF (Graylog Extended Log Format) içindir. Gelf formatı gelişmiş bir formattır detaylarına buradan ulaşabilirsiniz. (http://docs.graylog.org/en/3.0/pages/gelf.html )
Panic Soft #NoFreeOnExit TRUE define ROOT C:\Program Files (x86)\nxlog define CERTDIR %ROOT%\cert define CONFDIR %ROOT%\conf define LOGDIR %ROOT%\data define LOGFILE %LOGDIR%\nxlog.log LogFile %LOGFILE% Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data <Extension _syslog> Module xm_syslog </Extension> <Extension _charconv> Module xm_charconv AutodetectCharsets iso8859-2, utf-8, utf-16, utf-32 </Extension> <Extension _exec> Module xm_exec </Extension> <Extension _fileop> Module xm_fileop # Check the size of our log file hourly, rotate if larger than 5MB <Schedule> Every 1 hour Exec if (file_exists('%LOGFILE%') and \ (file_size('%LOGFILE%') >= 5M)) \ file_cycle('%LOGFILE%', 8); </Schedule> # Rotate our log file every week on Sunday at midnight <Schedule> When @weekly Exec if file_exists('%LOGFILE%') file_cycle('%LOGFILE%', 8); </Schedule> </Extension> <Extension gelf> Module xm_gelf </Extension> <Input in> Module im_msvistalog ReadFromLast FALSE SavePos FALSE Query <QueryList>\ <Query Id="0">\ <Select Path="Application">*</Select>\ <Select Path="System">*</Select>\ <Select Path="Security">*</Select>\ </Query>\ </QueryList> </Input> <Output out> Module om_udp Host 10.0.11.95 Port 12201 OutputType GELF </Output> <Route 1> Path in => out </Route>
SYS UDP
Eğer GELF yerine SYSLOG formatı kullanmak isterseniz aşağıdaki konfiği kullanabilirsiniz
## 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 192.168.1.96 Port 12201 </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>
Konfig işlemini tamamladığımıza göre artık nxlog servisimizi start ederek loğlarımızı graylog serverımıza göndermeye başlayabiliriz. Servis panelimizi açıyoruz ve nxlog servisimizi bularak start ediyoruz.
Graylog input tanımlama
Windows makinemiz nxlog aracılığıyla loğları graylog serverımıza göndermeye başladı şimdi Graylog serverımızda gelen loğları yakalaycak input oluşturacağız.
System –>Input yolunu izliyoruz.
Biz bu makalede GELF config ini uygulayacağız eğer siz Syslog UDP yi kullanmak istiyorsanız onu seçerek ilgili confiğ’i kullanabilirsiniz. GELF diyerek devam ediyoruz.
Açılan sayfada port numaramızı giriyoruz default olarak 12201 gelecektir , fakat siz agentlarda hangi portu kullandıysanız burada da bu portu kullanmalısınız. Ben defaul gelen portu değiştirmeden işlem yapıyorum çünkü agent makinelerimde de bu port’u kullandım.
Bu bölümde
Bind address : 0.0.0.0 olarak ta bırakabilirsiniz graylog serverınızın ip adresinide girebilirsiniz.
Bu işlemlerden birkaç dakika sonra Show Receice Mesaage butonunda basarak toplamaya başladığımız loğları görüntüleyebilirsiniz.
Source bölümüne baktığınızda sisteme log aktaran bütün servisleri ve cihazları görüntüleyebilirsiniz.
Log serverımızdaki log detaylarınıysa Search bölümünden aşağıdaki gibi detaylı olarak görüntüleyebilirsiniz.