NXLog ile Graylog’a Data Gönderme İşlemi

Selamlar arkadaşlar bu makalemde sizlere Windows 10 Pro cihazımıza NXLog yükleyerek Windows Log’larımızı GrayLog sistemimize göndermeyi anlatacağım.

Bunun için ilk olarak Linkinden NXLog indirmelisiniz ve Windows 10 cihazınıza bunu kurmanız gerekmektedir.

Açılan sayfada Windows İşletim Sistemini bulmalı ve gerekli programı sisteminize indirmelisiniz. Ardından bu programı çalıştırmalı ve Super Next’ler ile kurulumu gerçekleştirmelisiniz.

Daha sonra cihazınızda C:\Program Files (x86)\nxlog\conf yolunu izlemeli ve nxlog.conf dosyasını not defteri ile açmalısınız. Bunun yapmamızın sebebi sistemimizde kurulu olan NXLog’un Graylog’u tanımasını sağlamaktır.

Dosyanın içerisine aşağıdaki kodları eklemeniz gerekmektedir. Bu kodlar sayesinde GELF formatında Logları iletiyor olacaksınız.

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        192.168.1.104
    Port        12201
    OutputType  GELF
</Output>
 
<Route 1>
    Path        in => out
</Route>
# Snare compatible example configuration
# Collecting event log
# <Input in>
#     Module      im_msvistalog
# </Input>
# 
# Converting events to Snare format and sending them out over TCP syslog
# <Output out>
#     Module      om_tcp
#     Host        192.168.1.104
#     Port        12201
#     Exec        to_syslog_snare();
# </Output>
# 
# Connect input 'in' to output 'out'
# <Route 1>
#     Path        in => out
# </Route>

Bu sayede Config işlemlerimizi tamamladık.

Artık Services.msc altında bulunan nxlog servisini yeniden başlatabilirsiniz. Bu sayede loglar server’ınıza gidecektir.

SYSLOG Formatında İletmek İsterseniz Aşağıdaki Conf’u 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>

Almış olduğunuz Log’ları Graylog sisteminde toplayabilmek için Linkine gidebilir ve Graylog makalemi okuyabilirsiniz.

Umarım yararlı bir makale olmuştur. Herkese kolaylıklar dilerim.

Bir Cevap Yazın