Labor 2: Keskne logiserver (Nxlog)

From ICO wiki
Jump to navigationJump to search

Labor 2 protokoll - Keskne logihaldus (Nxlog)

Kaarel Väinaste ja Rasmus Tetsmann(A32)


Ülesande püstitus

Luua kahe masina vahel keskne logihaldus. Üheks masinaks on logiserver ja teiseks on klient, kes saadab oma logid logiserverisse.

NxLog [1] saadab Windowsi logisid, Logstash ja Elasticsearch töötavad Ubuntu serveris, Kibanaga vaadatakse tulemust.

Serveri ja kliendi seadistus

Klient: Windows 7 Home Premium 64bit IP: 192.168.56.200

Server: Ubuntu Server 12.04 (64it) (Võib kasutada teisi versioone)

Serveri ip muutsime 192.168.56.201 (Kasutaja võib endale sobiva ip panna)


Nxlog

Paigaldamine

Nxlog'i paigaldame Windows 7 masinasse.

Programmi allalaadimis link: http://sourceforge.net/projects/nxlog-ce/files/latest/download


Seadistamine

Nüüd tuleb konfiguratsioonifaili muutmine


Seda konfi kasutades peab jälgima kahte rida:

  • Kui on 64 bitine windows, siis kommenteerida define ROOT C:\Program Files\nxlog
  • Kui on 32 bitine windows, siis kommenteerida define ROOT C:\Program Files (x86)\nxlog
  • Kasutaja peab muutma ip vastavalt enda arvutile.


#64 bitise Windowsi puhul
#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>
#Pakub syslog tuge. Loob sõnumeid ja tegeleb kriitilisuse ja
#rakenduse valdkonna väärtustega
   Module      xm_syslog
</Extension>
 
<Input internal>
#Kogub sisemisi nxlog logisid
   Module      im_internal
</Input>


<Input eventlog>
#Kõik Security logid
#Kõik System logid, mis on neljanda taseme tähtsusega

    Module  im_msvistalog
    Query   <QueryList>\
            <Query Id="0">\
            <Select Path="Security">*</Select>\
	    <Select Path="System">*[System/Level=4]</Select>
            </Query>\
            </QueryList>

</Input>


<Input file_watch>

#Saab jälgida faili

	Module im_file
	File "C:\\Program Files (x86)\\nxlog\data\\nxlog.log"
	SavePos TRUE
	Exec $Message = to_json();
</Input>

 
<Input eventlog>
#Kogub logisid uuematelt Windowsi opsüsteemidelt
#Windows 2008, Vista ja hilisemad
#Windows 2003 ja vanemad puhul tuleb kasutada im_mseventlog
   Module      im_msvistalog
</Input>
 
<Output out>
#Muuta IP-aadress ja port vastavalt 
#logiserveri seadistustele
   Module	om_tcp
   Host	192.168.56.200
   Port	10515
#Muudab väljundi IETF syslog vormingusse
   Exec	to_syslog_ietf();			
</Output>
 
<Route 1>
#Sisenditest eventlog ja internal kogutud logid 
#saadetakse väljundisse out
   Path        eventlog, internal => out
</Route>

Enamus konfiguratsioonist pärineb siit [2] kuid on tehtud mõningad muudatused. See konfiguratsioonifail suudab filtreerida välja kõik turvalisusega seotud logid ja süsteemi logid, mis on väga ohtlikud. Lisaks saab kasutaja määrata suvalise falili, mille muudatuste kohta saadetakse logisid.

Rsyslog

Kasutatud käskude allikas: [3]

Paigaldamine tehtud Ubuntu Client 32bit peal. Kõik käsud tuleb sisestada root kasutaja õigustes. Rsyslog on logiklient, mis saadab logisid seadistatud serverile

Paigaldus

apt-get install rsyslog

Järgmisena tuleb ära muuta rsyslogi konfiguratsioonifail

nano /etc/rsyslog.conf

Konfiguratsioonifaili lisada rida

# Edastab kõik sündmused logiserverile, TCP port 10514
*.*	@@192.168.56.201:10514

Peale seda teha teenusele restart

service rsyslog restart

Logstash´i paigaldamine ja seadistamine

Kasutatud käskude allikas: [4]

Kõik käsud tuleb sisestada root kasutaja õigustes.


Openjdk paigaldus:

apt-get install openjdk-7-jre

Logstashi kausta loomine:

mkdir /etc/logstash

Logstashi allalaadimine:

wget https://logstash.objects.dreamhost.com/release/logstash-1.1.12-flatjar.jar

Allalaaditud faili tõstmine Logstash´i jaoks loodud kausta:

mv logstash-1.1.12-flatjar.jar /etc/logstash/logstash.jar

Loon Logstashi konfifaili logstash.conf ning asukoht on /etc/logstash

Konfifaili sisu:

input {
        #Windowsi logid
        tcp {
                type => "eventlog"
                port => 10515
        }
       
        #Logiserveri enda logid
        file {
                type => "logserver"
                path => [ "/var/log/syslog", "/var/log/*.log" ]
        }
}
 
output {
        #Saadetakse andmebaasi
        elasticsearch {
        }
}

Elasticsearch

Elasticsearch'i paigalduse allikas [5]

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.0.deb
dpkg -i elasticsearch-0.90.0.deb
rm elasticsearch-0.90.0.deb

Kibana

Paigaldame serveri peale Kibana:

Kibana paigalduse pärineb siit [6] ja ainukene muudatus on tehtud KibanaHost reas, kus tuleb panna enda määratud ip.

Installime sõltuvused

apt-get install ruby1.9.3 rubygems

Tõmban internetist pakitud Kibana arhiivi

wget https://github.com/rashidkpc/Kibana/archive/v0.2.0.tar.gz
tar -zxf v0.2.0.tar.gz
mv Kibana-0.2.0/ /etc/kibana
rm v0.2.0.tar.gz
cd /etc/kibana
gem install bundler
bundle install

Muudan konfiguratsioonifailis /etc/kibana/KibanaConfig.rb KibanaHost väärtust, et pääseks veebisirvijaga ligi Kibana keskkonnale.

KibanaHost = '192.168.56.201'

Panen rakenduse automaatselt käivituma programmiga Upstart

nano /etc/init/kibana.conf

Mille sisu on selline:

# kibana.conf# kibana - log viewer
description     "Kibana logstash viewer"
 
start on virtual-filesystems
stop on runlevel [06]
 
respawn
respawn limit 5 30
limit nofile 65550 65550
 
# Environment
env HOME=/etc/kibana/
chdir /etc/kibana
setuid logstash
setgid adm
console log
 
# Run Kibana, which is in /etc/kibana
script
      ruby /etc/kibana/kibana.rb
end script

Käivitan faili käsitsi

initctl start kibana

Ligipääsu testimine

Nüüd tuleb veebisirvijasse sisestada enda määratud aadress: 192.168.56.201:5601 ja siis saab edukalt Kibana keskkonnale ligi.

Kasutatud kirjandus