Log Management

Nxlog ile windows event log gönderimi

Nxlog ile windows event log gönderimi 2

Translate This Page:

Select your language: 

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.

Nxlog ile windows event log gönderimi 3

İ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.

Nxlog ile windows event log gönderimi 4

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.

Nxlog ile windows event log gönderimi 5
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.

Nxlog ile windows event log gönderimi 6

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.

Nxlog ile windows event log gönderimi 7

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.

Nxlog ile windows event log gönderimi 8

Source bölümüne baktığınızda sisteme log aktaran bütün servisleri ve cihazları görüntüleyebilirsiniz.

Nxlog ile windows event log gönderimi 9

Log serverımızdaki log detaylarınıysa Search bölümünden aşağıdaki gibi detaylı olarak görüntüleyebilirsiniz.

Nxlog ile windows event log gönderimi 10

Serdar Bayram

Bu yazı blog üzerinde Serdar Bayram tarafından hazırlanıp paylaşılmıştır. 2009 yılında açılan blogum kısa zaman içerisinde paylasımları ile dikkat cekip büyük bir izleyici kitlesine sahip olmuştur.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu