Keskne logihaldus: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Kliebert (talk | contribs)
Created page with "= 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 …"
 
Cliebert (talk | contribs)
No edit summary
Line 24: Line 24:


Server: Ubuntu server 64bit, versioon 12.04.3 LTS
Server: Ubuntu server 64bit, versioon 12.04.3 LTS
Klient: Ubuntu client 64bit, versioon 13.04
Klient: Ubuntu client 64bit, versioon 13.04
Logimise klient: Rsyslog
Logimise klient: Rsyslog
Logiserver: Logstash
Logiserver: Logstash
Logide salvestamine: Elasticsearch
Logide salvestamine: Elasticsearch
Kasutajaliides logide sirvimiseks: Kibana
Kasutajaliides logide sirvimiseks: Kibana


Line 39: Line 44:


Serverina kasutame IT Kolledži elab keskkonnast eksporditud masinat. Muudame mõningaid seadeid:
Serverina kasutame IT Kolledži elab keskkonnast eksporditud masinat. Muudame mõningaid seadeid:
Muudame failis /etc/network/interfaces eth1 liidese IP aadressiks 192.168.56.201
Muudame failis '''/etc/network/interfaces''' eth1 liidese IP aadressiks '''192.168.56.201'''
Failis /etc/hostname muudame serveri nimeks rsyslog
 
Failis '''/etc/hostname''' muudame serveri nimeks rsyslog


== Logstash ==
== Logstash ==
''Kasutatud S.Arnuse wiki artiklit “Keskse logilahenduse rakendamine”''  
''Kasutatud S.Arnuse wiki artiklit “Keskse logilahenduse rakendamine”''  


Paigaldame Java (Logstash vajab seda oma tööks)
Paigaldame Java ''(Logstash vajab seda oma tööks)''
<source lang="bash">
<source lang="bash">
apt-get update
apt-get update
Line 51: Line 57:
</source>
</source>


Loome kausta /etc/logstash
Loome kausta '''/etc/logstash'''
<source lang="bash">
<source lang="bash">
mkdir /etc/logstash
mkdir /etc/logstash
Line 62: Line 68:
</source>
</source>


Loome kausta /etc/logstash konfiguratsioonifaili logstash.conf, kuhu sisestan:
Loome kausta /etc/logstash konfiguratsioonifaili '''logstash.conf''', kuhu sisestan:


<source lang="bash">
<source lang="bash">
Line 89: Line 95:
</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 kasutaja adm gruppi:


<source lang="bash">
<source lang="bash">
Line 97: Line 103:
</source>
</source>


Loon kausta /var/log/logstash
Loon kausta '''/var/log/logstash'''
<source lang="bash">
<source lang="bash">
mkdir /var/log/logstash
mkdir /var/log/logstash
Line 108: Line 114:
</source>
</source>


Lisame faili /etc/init/logstash-server.conf:
Lisame faili '''/etc/init/logstash-server.conf''':
<source lang="bash">
<source lang="bash">
# logstash server instance
# logstash server instance
Line 158: Line 164:
</source>
</source>


Rakenduse allalaadimine, installimine ja …...????
Rakenduse allalaadimine, installimine 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 169: Line 175:
</source>
</source>


Konfiguratsioon asub failis /etc/kibana/KibanaConfig.rb . Muudame väärtust KibanaHost, et Kibana kasutajakeskkond oleks veebiserveriga ligipääsetav.
Konfiguratsioon asub failis '''/etc/kibana/KibanaConfig.rb''' . Muudame väärtust KibanaHost, et Kibana kasutajakeskkond oleks veebiserveriga ligipääsetav.
<source lang="bash">
<source lang="bash">
nano /etc/kibana/KibanaConfig.rb
nano /etc/kibana/KibanaConfig.rb
Line 176: Line 182:


Loome Kibana jaoks kirje rakendusse upstart:
Loome Kibana jaoks kirje rakendusse upstart:
Loome konfiguratsioonifaili /etc/init/kibana.conf ja sisestame:
 
Loome konfiguratsioonifaili '''/etc/init/kibana.conf''' ja sisestame:
<source lang="bash">
<source lang="bash">
nano /etc/init/kibana.conf
nano /etc/init/kibana.conf
Line 219: Line 226:
</source>
</source>


Konfiguratsioonifaili /etc/rsyslog.conf muutmine:
Konfiguratsioonifaili '''/etc/rsyslog.conf''' muutmine:
 
lisame rea *.* @@192.168.56.201:10514
lisame rea *.* @@192.168.56.201:10514


Line 244: Line 252:
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.
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.


Autorid:
Kristiina Liebert


Chris Liebert




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

Revision as of 00:23, 12 December 2013

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.

Nõuded

Nõuded kliendile:

  • Töötab Linux/Unix keskkonnas
  • 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.
  • IETF syslog standardi toetamine - vajalik kuna toetab TCP ja TLS protokolli.
  • 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.

Nõuded logiserverile:

  • IETF syslog vormingu toetamine.
  • TCP protokolli kasutamise võimalus
  • UDP protokolli kasutamise võimalus - vajalik seadmete puhul, mis ei toeta TCP protokolli.

Nõuded logide esitamise vahendile:

  • Veebiliidese võimalus
  • Võimalus logisid sirvida ja neist otsida

Tarkvara

Server: Ubuntu server 64bit, versioon 12.04.3 LTS

Klient: Ubuntu client 64bit, versioon 13.04

Logimise klient: Rsyslog

Logiserver: Logstash

Logide salvestamine: Elasticsearch

Kasutajaliides logide sirvimiseks: 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.

Kibana valisime kuna ühildub hästi Elasticsearch’i ja Logstash’iga.

Serveri seadistamine

Serverina kasutame IT Kolledži elab keskkonnast eksporditud masinat. Muudame mõningaid seadeid: Muudame failis /etc/network/interfaces eth1 liidese IP aadressiks 192.168.56.201

Failis /etc/hostname muudame serveri nimeks rsyslog

Logstash

Kasutatud S.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 sisestan:

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 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 Logstashi käivitada käsuga:

initctl start logstash-server

Elasticsearch

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

Elasticsearch’i käivitamiseks käsitsi:

service elasticsearch start

Kibana

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

apt-get install ruby1.9.3 rubygems

Rakenduse allalaadimine, installimine 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

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

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

Loome Kibana jaoks kirje rakendusse upstart:

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 Kibanat käivitada käsuga:

initctl start kibana

Kliendi seadistamine

Rsyslog

Kui rsyslog’i vaikimisi paigaldatud pole:

apt-get update && apt-get upgrade
apt-get install rsyslog

Konfiguratsioonifaili /etc/rsyslog.conf muutmine:

lisame rea *.* @@192.168.56.201:10514

@ - kasutatakse UDP protokolli @@ - kasutatakse TCP protokolli

  • .* - ?

Pärast konfiguratsioonifaili muutmist tuleb teha teenusele restart:

service rsyslog restart

Lisame /etc/hosts faili meie logiserveri kirje, kasutades selleks täispikka domeeninime:

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: http://192.168.56.201:5601

Tulemus

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.

Autorid:

Kristiina Liebert

Chris Liebert


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