Logiserver, mis kogub võrgust kokku mikrotik ruuteri logid

From ICO wiki
Revision as of 12:57, 12 January 2014 by Lruutli (talk | contribs) (→‎Logstash)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Labor 2 Protokoll - Mikrotik ruuteri logiserver

Lauri Rüütli A41 ja Tõnu Ruut AK31

07.01.14

Ülesande Püstitus

Luua logiserver, mis korjab võrgust kokku mikrotik ruuteri logid

Server: Ubuntu Server 32bit versioon 12.04 TLS (võib kasutada ka teisi linux versioone)

Võrguseade Mikrotik RB951G-2HnD versioon 6.7 (võib kasutada ka teisi ruutereid, kuid seljuhul tuleb kasutada teisi ruuteri seadistamise käske, kui selles õpetuses kirjeldatud)

Kasutatud tarkvara

Logstash versioon 1.1.12 - logiserver

Elasticsearch versioon 0.90.0 - logide talletamiseks

Kibana 0.2.0 - veebiliides logide sirvimiseks ja otsimiseks

(Kasutatud Sander Arnuse poolt loodud lahendust.)

Serveri seadistamine

Uus virtuaalserver nimega logserver ip aadressiga 192.168.88.241 (võib olla erinev)

Ruuter ip aadressiga 192.168.88.1 (võib olla erinev)

Logstash

Käsud sisestada sudo kasutajaga [1]

Installin openjdk,

teen logstashi jaoks kausta,

laadin alla logstashi ja tõstan selle logstashi kausta.

apt-get install openjdk-7-jre

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

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

Loon konfiguratsioonifaili /etc/logstash/logstash.conf. Failis kirjeldan pordi numbri ja nime, millega on hiljem võimalik logisid grupeerida. [2]

input {
        #Mikrotikist süsteemidest tulevad logid
        udp {
                type => "mikrotik"
                port => 10517
        }
        #Logiserveri enda logid
        file {
                type => "logserver"
                path => [ "/var/log/syslog", "/var/log/*.log" ]
        }
}
 
output {
        #Saadetakse andmebaasi
        elasticsearch {
        }
}

Loon automaatse käivituse jaoks kirje upstarti [3]

Faili nimi /etc/init/logstash-server.conf

Sisuga:

# logstash server instance
description     "logstash server instance"
 
start on virtual-filesystems
stop on runlevel [06]
 
respawn
respawn limit 5 30
limit nofile 65550 65550
 
env HOME=/etc/logstash
chdir /etc/logstash
setuid logstash
setgid adm
console log
 
#Minimaalne ja maksimaalne javale lubatud mälumaht
#env JAVA_OPTS='-Xms512m -Xmx512m'
 
script
      exec java -jar /etc/logstash/logstash.jar agent -f /etc/logstash/logstash.conf
end script

Loon kausta /var/log/logstash ja kasutaja nimega logstash ning lisan ta gruppi adm. [4]

mkdir /var/log/logstash
adduser --system --disabled-password --no-create-home --group --quiet logstash
usermod -a -G adm logstash

Muudan vajalike kaustade omanikuks kasutaja nimega "logstash" ja grupi "adm" [5]

chown -R logstash:adm /etc/logstash/
chown -R logstash:adm /var/log/logstash/

Elasticsearch

Laen internetist alla elasticsearchi paki, installerin ja eemaldan faili. [6]

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

Käivitan teenuse [7]

service elasticsearch start

Kibana

Installeerin sõltuvused ja tõmban internetist pakitud kibana arhiivi. [8]

wget http://production.cf.rubygems.org/rubygems/rubygems-2.1.11.tgz 
tar xvzf rubygems-2.1.11.tgz
cd rubygems-2.1.11
apt-get install ruby1.9.3 rubygems
ruby setup.rb

 
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 faili /etc/kibana/KibanaConfig.rb ja seal sees leiduvat "KibanaHost" stringi.

Stringi on vaja kirjutada masina IP-aadress, et pääseks ligi veebibrauseriga Kibana kasutajakeskkonnale

KibanaHost = '192.168.88.241'

Loon kibana automaatseks käivitamiseks upstarti kirje /etc/init/kibana.conf sisuga: [9]

# 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

Kliendi seadistamine

Kliendi seadmeks on Mikrotik RB951G-2HnD

Seadistamiseks tuleb sisestada järgmised käsud:

/system logging action
set 3 bsd-syslog=no 
name=remote remote=192.168.88.241 
remote-port=10517 
src-address=0.0.0.0 
syslog-facility=daemon 
syslog-severity=auto 
target=remote
/system logging 
add action=remote disabled=no prefix="" topics=info

Ligipääs ja testimine

Veebiliidesest on võimalik keskkond avada, kui trükkida sisse aadress http://192.168.88.241:5601/

Kokkuvõte

Tegemist oli mahuka tööga, mis algul tundus lihtne, aga pärast tuli välja, et erinevatel versioonidel ja õpetustel on vead sees. Lõpuks õnnestus logiserver käima ja tööle saada. Esimese logiserveri ehitamiseks sobib antud lahendus hästi.

Kasutatud materjal

https://medium.com/what-i-learned-building/e855bc08975d

https://wiki.itcollege.ee/index.php/Talk:Linuxi_administreerimine_-_Labor_2_%28keskse_logihalduse_rakendamine%29_protokoll

http://enos.itcollege.ee/~mernits/Linux%20administreerimine/Arnus%20-%20keskne%20logilahendus.pdf