Difference between revisions of "Keskne logihaldus"

From ICO wiki
(Lahenduse testimine)
 
(41 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
Autorid:
 +
 +
Kristiina Liebert A31
 +
 +
Chris Liebert A32
 +
 +
12.12.2013
 
= Eesmärk =
 
= Eesmärk =
  
Luua testkeskkonnas keskne logihalduse süsteem, kus klient saadab oma logid logiserverisse. Logid tuleb salvestada ning neid peab olema võimalik sirvida ja neist otsida.
+
Luua aine Linuxi administreerimine raames Ubuntu testkeskkonnas keskne logihalduse süsteem, mis vastaks meie poolt püstitatud nõuetele. Klient peab saatma logid logiserverisse, kus need salvestatakse. Hiljem peab olema võimalik salvestatud logisid sirvida ning neist otsida.
  
 
= Nõuded =
 
= Nõuded =
  
 
'''Nõuded kliendile:'''
 
'''Nõuded kliendile:'''
*Töötab Linux/Unix keskkonnas
+
*Töötab Linux/Unix keskkonnas - sellepärast, et meie testsüsteemis on kasutusel arvutid, millel on operatsioonisüsteemiks Ubuntu 13.04.
*Võimaldab TCP protokolli kasutada - TCP protokolli kasutamine annab suurema kindluse sõnumite kohale jõudmiseks  kui UDP protokoll, sest server saadab kinnituse kohalejõudnud sõnumi kohta ning võrgus esinenud vea korral saadetakse sõnum uuesti.
+
*TCP protokolli tugi - TCP protokolli kasutamine annab suurema kindluse sõnumite kohale jõudmiseks  kui UDP protokoll, sest server saadab kinnituse kohalejõudnud sõnumi kohta ning võrgus esinenud vea korral saadetakse sõnum uuesti.
*IETF syslog standardi toetamine - vajalik kuna toetab TCP ja TLS protokolli.
+
*TLS protokolli tugi - tegemist on SSL'i järeltulijaga, mis võimaldab kahel osapoolel turvaliselt suhelda ning seega on sõnumite pealtkuulamine välistatud.
*Võimaldab kasutada TLS protokolli - võimaldab välistada sõnumite pealtkuulamise
 
 
*Esmane sõnumite filtreerimine - võimaldab esmast sõnumite filtreerimist ning samuti korduvate sõnumite eemaldamist, mis muidu ummistaksid võrguliiklust.
 
*Esmane sõnumite filtreerimine - võimaldab esmast sõnumite filtreerimist ning samuti korduvate sõnumite eemaldamist, mis muidu ummistaksid võrguliiklust.
  
 
'''Nõuded logiserverile:'''
 
'''Nõuded logiserverile:'''
*IETF syslog vormingu toetamine.
+
*TCP protokolli kasutamise võimalus - TCP protokolli kasutamine annab suurema kindluse sõnumite kohale jõudmiseks  kui UDP protokoll, sest server saadab kinnituse kohalejõudnud sõnumi kohta ning võrgus esinenud vea korral saadetakse sõnum uuesti.
*TCP protokolli kasutamise võimalus
 
 
*UDP protokolli kasutamise võimalus - vajalik seadmete puhul, mis ei toeta TCP protokolli.
 
*UDP protokolli kasutamise võimalus - vajalik seadmete puhul, mis ei toeta TCP protokolli.
  
 
'''Nõuded logide esitamise vahendile:'''
 
'''Nõuded logide esitamise vahendile:'''
*Veebiliidese võimalus
+
*Veebiliides, mis võimaldab logisid sirvida ning erinevate parameetrite järgi logisid otsida.
*Võimalus logisid sirvida ja neist otsida
 
  
 
= Tarkvara =
 
= Tarkvara =
  
Server: Ubuntu server 64bit, versioon 12.04.3 LTS
+
Server: Ubuntu server 64bit, versioon 12.04 LTS
  
 
Klient: Ubuntu client 64bit, versioon 13.04
 
Klient: Ubuntu client 64bit, versioon 13.04
Line 33: Line 37:
 
Logide salvestamine: Elasticsearch
 
Logide salvestamine: Elasticsearch
  
Kasutajaliides logide sirvimiseks: Kibana
+
Veebiliides: Kibana
  
 
Logimise kliendi valimisel otsustasime Rsyslog’i kasuks, sest antud tarkvara on vaikimis paigaldatud meie poolt kasutatavas operatsioonisüsteemis ja vastab eelpool püstitatud nõuetele.  
 
Logimise kliendi valimisel otsustasime Rsyslog’i kasuks, sest antud tarkvara on vaikimis paigaldatud meie poolt kasutatavas operatsioonisüsteemis ja vastab eelpool püstitatud nõuetele.  
  
Logiserveriks valisime Logstash’i, mis täitis kõik meie poolt seatud nõuded. Logstash’i miinuseks võib lugeda asjaolu, et tegemist on üsna mälunõudliku programmiga.  
+
Logiserveriks valisime Logstash’i, mis täitis kõik meie poolt seatud nõuded. Logstash’i miinuseks võib lugeda asjaolu, et tegemist on üsna mälunõudliku programmiga, kuid kuna antud keskkonnas pole vähene mälukasutus üheks kriteeriumiks, siis leiame, et suurem mälukasutus pole probleemiks.
  
Kibana valisime kuna ühildub hästi Elasticsearch’i ja Logstash’iga.
+
Veebiliideseks valisime Kibana, mis ühildub hästi Elasticsearch’i ja Logstash’iga.
  
 
= Serveri seadistamine =  
 
= Serveri seadistamine =  
  
Serverina kasutame IT Kolledži elab keskkonnast eksporditud masinat. Muudame mõningaid seadeid:
+
Serverina kasutame juba meile tuttavaks saanud eelnevalt seadistatud virtuaalmasinat, mille saime [http://elab.itcollege.ee:8000/ubuntu-server-64.ova siit].
Muudame failis '''/etc/network/interfaces''' eth1 liidese IP aadressiks '''192.168.56.201'''
 
  
Failis '''/etc/hostname''' muudame serveri nimeks rsyslog
+
Alustuseks muudame failis '''/etc/network/interfaces''' eth1 liidese IP aadressi, nagu näha pildil <ref name="pilt1"> https://wiki.itcollege.ee/index.php/File:Etcnetworkinterfaces.png</ref>. Meie testkeskkonnas on selleks '''192.168.56.201'''.
 +
<br/>[[File:Etcnetworkinterfaces.png‎]]<br/>
 +
'' Pilt <ref name="pilt1"/>. Tõmmis testkeskkonna serveris asuvast /etc/network/interfaces failist''
  
 +
 +
Järgmiseks muudame failis '''/etc/hostname''' serveri nime, nagu näha pildil <ref name="pilt2"> https://wiki.itcollege.ee/index.php/File:Etchostname.png</ref>. Meie testkeskkonnas on selleks '''rsyslog'''.
 +
<br/>[[File:Etchostname.png‎]]<br/>
 +
''Pilt <ref name="pilt2"/>. Tõmmis testkeskkonna serveris asuvast /etc/hostname failist''
 
== Logstash ==
 
== Logstash ==
''Kasutatud S.Arnuse wiki artiklit “Keskse logilahenduse rakendamine”''  
+
''Logstash'i paigaldamiseks ja seadistamiseks on kasutatud Sander Arnuse wiki artiklit “[[Keskse logilahenduse rakendamine]]”''  
  
 
Paigaldame Java ''(Logstash vajab seda oma tööks)''
 
Paigaldame Java ''(Logstash vajab seda oma tööks)''
Line 68: Line 77:
 
</source>
 
</source>
  
Loome kausta /etc/logstash konfiguratsioonifaili '''logstash.conf''', kuhu sisestan:
+
Loome kausta /etc/logstash konfiguratsioonifaili '''logstash.conf''', kuhu sisestame:
  
 
<source lang="bash">
 
<source lang="bash">
Line 95: Line 104:
 
</source>
 
</source>
  
Järgnevalt loome Upstart rakendusele vastava kirje, et Logstash alustaks serveri käivitamisel automaatselt oma tööd. Loome vajaliku faili ja kasutaja ning lisame kasutaja adm gruppi:
+
Järgnevalt loome Upstart rakendusele vastava kirje, et Logstash alustaks serveri käivitamisel automaatselt oma tööd. Loome vajaliku faili ja kasutaja ning lisame loodud kasutaja adm gruppi:
  
 
<source lang="bash">
 
<source lang="bash">
Line 140: Line 149:
 
</source>
 
</source>
  
Käsitsi saab Logstashi käivitada käsuga:
+
Käsitsi saab Logstash'i käivitada käsuga:
 
<source lang="bash">
 
<source lang="bash">
 
initctl start logstash-server
 
initctl start logstash-server
Line 146: Line 155:
  
 
== Elasticsearch ==
 
== Elasticsearch ==
 +
''Elasticsearch'i paigaldamiseks on kasutatud Sander Arnuse wiki artiklit “[[Keskse logilahenduse rakendamine]]”''
  
 
Rakenduse allalaadimine, selle paigaldamine ja pärast paigaldust allalaetud faili eemaldamine:
 
Rakenduse allalaadimine, selle paigaldamine ja pärast paigaldust allalaetud faili eemaldamine:
Line 153: Line 163:
 
rm elasticsearch-0.90.0.deb
 
rm elasticsearch-0.90.0.deb
 
</source>
 
</source>
Elasticsearch’i käivitamiseks käsitsi:
+
Käsitsi saab Elasticsearch’i käivitada käsuga:
 
<source lang="bash">
 
<source lang="bash">
 
service elasticsearch start
 
service elasticsearch start
Line 159: Line 169:
  
 
== Kibana ==
 
== Kibana ==
 +
''Kibana paigaldamiseks ja seadistamiseks on kasutatud Sander Arnuse wiki artiklit “[[Keskse logilahenduse rakendamine]]”''
 +
 
Kuna Kibana vajab oma tööks ruby ja rubygems pakke, siis paigaldame need:
 
Kuna Kibana vajab oma tööks ruby ja rubygems pakke, siis paigaldame need:
 
<source lang="bash">
 
<source lang="bash">
Line 164: Line 176:
 
</source>
 
</source>
  
Rakenduse allalaadimine, installimine ja pärast paigaldamist allalaetud faili eemaldamine:
+
Rakenduse allalaadimine, installeerimine ja pärast paigaldamist allalaetud faili eemaldamine:
 
<source lang="bash">
 
<source lang="bash">
 
wget https://github.com/rashidkpc/Kibana/archive/v0.2.0.tar.gz
 
wget https://github.com/rashidkpc/Kibana/archive/v0.2.0.tar.gz
Line 175: Line 187:
 
</source>
 
</source>
  
Konfiguratsioon asub failis '''/etc/kibana/KibanaConfig.rb''' . Muudame väärtust KibanaHost, et Kibana kasutajakeskkond oleks veebiserveriga ligipääsetav.
+
Rakenduse konfiguratsioon asub failis '''/etc/kibana/KibanaConfig.rb''' . Muudame parameetri '''KibanaHost''' väärtust, et Kibana kasutajakeskkond oleks veebiserveriga ligipääsetav.
 
<source lang="bash">
 
<source lang="bash">
 
nano /etc/kibana/KibanaConfig.rb
 
nano /etc/kibana/KibanaConfig.rb
Line 181: Line 193:
 
</source>
 
</source>
  
Loome Kibana jaoks kirje rakendusse upstart:
+
Loome Kibana jaoks samuti Upstart kirje:
  
 
Loome konfiguratsioonifaili '''/etc/init/kibana.conf''' ja sisestame:
 
Loome konfiguratsioonifaili '''/etc/init/kibana.conf''' ja sisestame:
Line 212: Line 224:
  
  
Käsitsi saab Kibanat käivitada käsuga:
+
Käsitsi saab Kibana't käivitada käsuga:
 
<source lang="bash">
 
<source lang="bash">
 
initctl start kibana
 
initctl start kibana
Line 218: Line 230:
  
 
= Kliendi seadistamine =
 
= Kliendi seadistamine =
 +
Kliendina kasutame samuti juba meile tuttavaks saanud virtuaalmasinat, mille saime [http://elab.itcollege.ee:8000/ubuntu-desktop-64.ova siit].
 +
 
'''Rsyslog'''
 
'''Rsyslog'''
  
Kui rsyslog’i vaikimisi paigaldatud pole:
+
Kui rsyslog’i vaikimisi paigaldatud pole, siis selle paigaldamiseks tuleb tegutseda järgmiselt:
 
<source lang="bash">
 
<source lang="bash">
apt-get update && apt-get upgrade
+
apt-get update
 
apt-get install rsyslog
 
apt-get install rsyslog
 
</source>
 
</source>
Line 228: Line 242:
 
Konfiguratsioonifaili '''/etc/rsyslog.conf''' muutmine:
 
Konfiguratsioonifaili '''/etc/rsyslog.conf''' muutmine:
  
lisame rea *.* @@192.168.56.201:10514
+
Lisame rea '''*.* @@192.168.56.201:10514'''
  
@ - kasutatakse UDP protokolli
+
@ - selle parameetri kasutamisel edastatakse sõnumid logiserverile kasutades UDP protokolli  
@@ - kasutatakse TCP protokolli
+
@@ - selle parameetri kasutamisel edastatakse sõnumid logiserverile kasutades TCP protokolli
*.* - ?
+
*.* - selle [http://shallowsky.com/blog/linux/rsyslog-conf-tutorial.html parameetriga] määrame ära, et logiserverile edastatakse kõiki tüüpi sõnumid olenemata nende prioriteedist.
 +
''Mõned näited prioriteetide kohta: debug, info, notice, warning, err, crit, alert''
 +
IP aadressiga määrame, kuhu sõnumid edastatakse ehk meie logiserveri IP aadress
  
Pärast konfiguratsioonifaili muutmist tuleb teha teenusele restart:
+
Pärast konfiguratsioonifaili muutmist on oluline teha teenusele restart:
 
<source lang="bash">
 
<source lang="bash">
 
service rsyslog restart
 
service rsyslog restart
 
</source>
 
</source>
  
Lisame /etc/hosts faili meie logiserveri kirje, kasutades selleks täispikka domeeninime:
+
Lisame '''/etc/hosts''' faili meie eelnevalt seadistatud logiserveri kohta kirje, kasutades selleks logiserveri IP'd, täispikka domeeninime ja serveri nime. Meie testkeskkonna puhul on kirje järgmine:
 
<source lang="bash">
 
<source lang="bash">
 
192.168.56.201          rsyslog.planet.zz        rsyslog
 
192.168.56.201          rsyslog.planet.zz        rsyslog
Line 245: Line 261:
  
 
= Lahenduse testimine =
 
= Lahenduse testimine =
1. Oma lahenduse käigus lisasime Upstart’i kirjed Kibana ja Logstash’i jaoks, et need logiserveri käivitamisel automaatselt tööle hakkaksid. Selle testimiseks pole muud paremat moodust, kui server seisma panna ning uuesti käima panna. Serveri käivitamisel veendume, et vajalikud teenused on üleval(kibana,elasticsearch,logstash).
+
1. Oma lahenduse käigus lisasime Upstart’i kirjed Kibana ja Logstash’i jaoks, et need logiserveri käivitamisel automaatselt tööle hakkaksid. Selle testimiseks pole muud paremat moodust, kui server seisma panna ning uuesti käima panna. Serveri käivitamisel veendume, et vajalikud teenused on üleval''(Kibana,Elasticsearch,Logstash)''.
  
2. Kontrollimaks, kas seadistatud veebiliides töötab ning meil sellele ligipääs on,  sisestame veebibrauserisse aadressi: http://192.168.56.201:5601
+
2. Kontrollimaks, kas seadistatud veebiliides töötab ning meil sellele ligipääs on,  sisestame veebibrauserisse aadressi: '''192.168.56.201:5601'''
  
= Tulemus =
+
Kui kõik on eelnevalt õigesti seadistatud, siis avaneb Kibana veebiliides. <ref name="pilt3">[https://wiki.itcollege.ee/index.php/File:Kibanaveeb.png]</ref>
Rsyslog edastab sündmused kesksele logiserverile, kus jookseb Logstash. Logiteated salvestatakse Elasticsearch’i andmebaasi. Kibana võimaldab veebiliidest kasutades vaadelda logisid ning samuti võimaldab otsida logidest.
 
  
 +
<br/>[[File:Kibanaveeb.png‎|1100px]]<br/>
 +
''Pilt <ref name="pilt3"/>. Tõmmis Kibana veebiliidesest''
  
 +
= Tulemus =
 +
Tulemuseks on testkeskkonnas toimiv logihalduse süsteem. Rsyslog edastab sündmused kesksele logiserverile, kuhu on paigaldatud Logstash. Logiteated salvestatakse Elasticsearch’i andmebaasi. Kibana veebiliidest kasutades on võimalik logisid sirvida ning neist otsida.
  
 +
Autori, Chris Liebert, arvamus:
  
 +
Ülesande käigus lõime oma testkeskkonnas toimiva logihalduse süsteemi, mille raames tutvusime järgneva tarkvaraga: Rsyslog, Logstash, Elasticsearch ja Kibana. Nimetatud rakenduste paigaldamine on kerge ja kiire ning tänu Internetis leiduvatele juhenditele jõukohane ka vähemate teadmiste puhul.  Muuseas on tegemist vabavaraliste tarkvaradega, mis tähendab, et nende rakendamine on täiesti tasuta.
  
Autorid:
+
Autori, Kristiina Liebert, arvamus:  
  
Kristiina Liebert
+
Tarkvara, mida me kasutasime keskse logihalduse süsteemi loomiseks, on tänu internetis leiduvale dokumentatsioonile suhteliselt lihtne paigaldada, seadistada ning kasutada. Logstash, Elasticsearch ja Kibana töötavad hästi koos. Kasutatud veebiliides muudab logide sirvimise väga mugavaks.
 +
  
Chris Liebert
 
  
  
 
Kasutatud materjal:
 
Kasutatud materjal:
 
http://enos.itcollege.ee/~mernits/Linux%20administreerimine/Arnus%20-%20keskne%20logilahendus.pdf
 
http://enos.itcollege.ee/~mernits/Linux%20administreerimine/Arnus%20-%20keskne%20logilahendus.pdf

Latest revision as of 00:02, 17 January 2014

Autorid:

Kristiina Liebert A31

Chris Liebert A32

12.12.2013

Eesmärk

Luua aine Linuxi administreerimine raames Ubuntu testkeskkonnas keskne logihalduse süsteem, mis vastaks meie poolt püstitatud nõuetele. Klient peab saatma logid logiserverisse, kus need salvestatakse. Hiljem peab olema võimalik salvestatud logisid sirvida ning neist otsida.

Nõuded

Nõuded kliendile:

  • Töötab Linux/Unix keskkonnas - sellepärast, et meie testsüsteemis on kasutusel arvutid, millel on operatsioonisüsteemiks Ubuntu 13.04.
  • TCP protokolli tugi - TCP protokolli kasutamine annab suurema kindluse sõnumite kohale jõudmiseks kui UDP protokoll, sest server saadab kinnituse kohalejõudnud sõnumi kohta ning võrgus esinenud vea korral saadetakse sõnum uuesti.
  • TLS protokolli tugi - tegemist on SSL'i järeltulijaga, mis võimaldab kahel osapoolel turvaliselt suhelda ning seega on sõnumite pealtkuulamine välistatud.
  • Esmane sõnumite filtreerimine - võimaldab esmast sõnumite filtreerimist ning samuti korduvate sõnumite eemaldamist, mis muidu ummistaksid võrguliiklust.

Nõuded logiserverile:

  • TCP protokolli kasutamise võimalus - TCP protokolli kasutamine annab suurema kindluse sõnumite kohale jõudmiseks kui UDP protokoll, sest server saadab kinnituse kohalejõudnud sõnumi kohta ning võrgus esinenud vea korral saadetakse sõnum uuesti.
  • UDP protokolli kasutamise võimalus - vajalik seadmete puhul, mis ei toeta TCP protokolli.

Nõuded logide esitamise vahendile:

  • Veebiliides, mis võimaldab logisid sirvida ning erinevate parameetrite järgi logisid otsida.

Tarkvara

Server: Ubuntu server 64bit, versioon 12.04 LTS

Klient: Ubuntu client 64bit, versioon 13.04

Logimise klient: Rsyslog

Logiserver: Logstash

Logide salvestamine: Elasticsearch

Veebiliides: Kibana

Logimise kliendi valimisel otsustasime Rsyslog’i kasuks, sest antud tarkvara on vaikimis paigaldatud meie poolt kasutatavas operatsioonisüsteemis ja vastab eelpool püstitatud nõuetele.

Logiserveriks valisime Logstash’i, mis täitis kõik meie poolt seatud nõuded. Logstash’i miinuseks võib lugeda asjaolu, et tegemist on üsna mälunõudliku programmiga, kuid kuna antud keskkonnas pole vähene mälukasutus üheks kriteeriumiks, siis leiame, et suurem mälukasutus pole probleemiks.

Veebiliideseks valisime Kibana, mis ühildub hästi Elasticsearch’i ja Logstash’iga.

Serveri seadistamine

Serverina kasutame juba meile tuttavaks saanud eelnevalt seadistatud virtuaalmasinat, mille saime siit.

Alustuseks muudame failis /etc/network/interfaces eth1 liidese IP aadressi, nagu näha pildil [1]. Meie testkeskkonnas on selleks 192.168.56.201.
Etcnetworkinterfaces.png
Pilt [1]. Tõmmis testkeskkonna serveris asuvast /etc/network/interfaces failist


Järgmiseks muudame failis /etc/hostname serveri nime, nagu näha pildil [2]. Meie testkeskkonnas on selleks rsyslog.
Etchostname.png
Pilt [2]. Tõmmis testkeskkonna serveris asuvast /etc/hostname failist

Logstash

Logstash'i paigaldamiseks ja seadistamiseks on kasutatud Sander Arnuse wiki artiklit “Keskse logilahenduse rakendamine

Paigaldame Java (Logstash vajab seda oma tööks)

apt-get update
apt-get install openjdk-7-jre

Loome kausta /etc/logstash

mkdir /etc/logstash

Rakenduse paigaldamine:

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

Loome kausta /etc/logstash konfiguratsioonifaili logstash.conf, kuhu sisestame:

nano /etc/logstash/logstash.conf
input {
    	#Linux/Unix süsteemidest tulevad logid
    	tcp {
            	type => "syslog-tcp"
            	port => 10514
    	}

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

Järgnevalt loome Upstart rakendusele vastava kirje, et Logstash alustaks serveri käivitamisel automaatselt oma tööd. Loome vajaliku faili ja kasutaja ning lisame loodud kasutaja adm gruppi:

touch /etc/init/logstash-server.conf
adduser --system --disabled-password --no-create-home --group --quiet logstash
usermod -a -G adm logstash

Loon kausta /var/log/logstash

mkdir /var/log/logstash

Muudame loodud kasutaja rakenduse kaustade omanikuks:

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

Lisame faili /etc/init/logstash-server.conf:

# 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

Käsitsi saab Logstash'i käivitada käsuga:

initctl start logstash-server

Elasticsearch

Elasticsearch'i paigaldamiseks on kasutatud Sander Arnuse wiki artiklit “Keskse logilahenduse rakendamine

Rakenduse allalaadimine, selle paigaldamine ja pärast paigaldust allalaetud faili eemaldamine:

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äsitsi saab Elasticsearch’i käivitada käsuga:

service elasticsearch start

Kibana

Kibana paigaldamiseks ja seadistamiseks on kasutatud Sander Arnuse wiki artiklit “Keskse logilahenduse rakendamine

Kuna Kibana vajab oma tööks ruby ja rubygems pakke, siis paigaldame need:

apt-get install ruby1.9.3 rubygems

Rakenduse allalaadimine, installeerimine ja pärast paigaldamist allalaetud faili eemaldamine:

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

Rakenduse konfiguratsioon asub failis /etc/kibana/KibanaConfig.rb . Muudame parameetri KibanaHost väärtust, et Kibana kasutajakeskkond oleks veebiserveriga ligipääsetav.

nano /etc/kibana/KibanaConfig.rb
KibanaHost = '192.168.56.201’

Loome Kibana jaoks samuti Upstart kirje:

Loome konfiguratsioonifaili /etc/init/kibana.conf ja sisestame:

nano /etc/init/kibana.conf
# 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äsitsi saab Kibana't käivitada käsuga:

initctl start kibana

Kliendi seadistamine

Kliendina kasutame samuti juba meile tuttavaks saanud virtuaalmasinat, mille saime siit.

Rsyslog

Kui rsyslog’i vaikimisi paigaldatud pole, siis selle paigaldamiseks tuleb tegutseda järgmiselt:

apt-get update
apt-get install rsyslog

Konfiguratsioonifaili /etc/rsyslog.conf muutmine:

Lisame rea *.* @@192.168.56.201:10514

@ - selle parameetri kasutamisel edastatakse sõnumid logiserverile kasutades UDP protokolli 
@@ - selle parameetri kasutamisel edastatakse sõnumid logiserverile kasutades TCP protokolli
*.* - selle parameetriga määrame ära, et logiserverile edastatakse kõiki tüüpi sõnumid olenemata nende prioriteedist.
Mõned näited prioriteetide kohta: debug, info, notice, warning, err, crit, alert
IP aadressiga määrame, kuhu sõnumid edastatakse ehk meie logiserveri IP aadress

Pärast konfiguratsioonifaili muutmist on oluline teha teenusele restart:

service rsyslog restart

Lisame /etc/hosts faili meie eelnevalt seadistatud logiserveri kohta kirje, kasutades selleks logiserveri IP'd, täispikka domeeninime ja serveri nime. Meie testkeskkonna puhul on kirje järgmine:

192.168.56.201          rsyslog.planet.zz         rsyslog

Lahenduse testimine

1. Oma lahenduse käigus lisasime Upstart’i kirjed Kibana ja Logstash’i jaoks, et need logiserveri käivitamisel automaatselt tööle hakkaksid. Selle testimiseks pole muud paremat moodust, kui server seisma panna ning uuesti käima panna. Serveri käivitamisel veendume, et vajalikud teenused on üleval(Kibana,Elasticsearch,Logstash).

2. Kontrollimaks, kas seadistatud veebiliides töötab ning meil sellele ligipääs on, sisestame veebibrauserisse aadressi: 192.168.56.201:5601

Kui kõik on eelnevalt õigesti seadistatud, siis avaneb Kibana veebiliides. [3]


Kibanaveeb.png
Pilt [3]. Tõmmis Kibana veebiliidesest

Tulemus

Tulemuseks on testkeskkonnas toimiv logihalduse süsteem. Rsyslog edastab sündmused kesksele logiserverile, kuhu on paigaldatud Logstash. Logiteated salvestatakse Elasticsearch’i andmebaasi. Kibana veebiliidest kasutades on võimalik logisid sirvida ning neist otsida.

Autori, Chris Liebert, arvamus:

Ülesande käigus lõime oma testkeskkonnas toimiva logihalduse süsteemi, mille raames tutvusime järgneva tarkvaraga: Rsyslog, Logstash, Elasticsearch ja Kibana. Nimetatud rakenduste paigaldamine on kerge ja kiire ning tänu Internetis leiduvatele juhenditele jõukohane ka vähemate teadmiste puhul. Muuseas on tegemist vabavaraliste tarkvaradega, mis tähendab, et nende rakendamine on täiesti tasuta.

Autori, Kristiina Liebert, arvamus:

Tarkvara, mida me kasutasime keskse logihalduse süsteemi loomiseks, on tänu internetis leiduvale dokumentatsioonile suhteliselt lihtne paigaldada, seadistada ning kasutada. Logstash, Elasticsearch ja Kibana töötavad hästi koos. Kasutatud veebiliides muudab logide sirvimise väga mugavaks.



Kasutatud materjal:

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