Keskse logilahenduse rakendamine Rsyslog näitel: Difference between revisions
No edit summary |
|||
(45 intermediate revisions by 2 users not shown) | |||
Line 18: | Line 18: | ||
= Tarkvara valik = | = Tarkvara valik = | ||
Nõuetele vastab Rsyslog ja LogAnalyzer. Valiku langetasime tuginedes Sander Arnuse [http://enos.itcollege.ee/~mernits/Linux%20administreerimine/Arnus%20-%20keskne%20logilahendus.pdf lõputööle]. | Nõuetele vastab Rsyslog ja LogAnalyzer. Valiku langetasime tuginedes Sander Arnuse [http://enos.itcollege.ee/~mernits/Linux%20administreerimine/Arnus%20-%20keskne%20logilahendus.pdf lõputööle].<br/> | ||
Alternatiivse logiserveri tarkvarana võib kasutada näiteks logstash'i või syslog-ng'd.<br/> | |||
Kliendi masinates võib kasutada logitarkvarana nxlog'i või syslog-ng'd.<br/> | |||
LogAnalyzer'i asemel võib kasutada Kibana't.<br/> | |||
= Virtuaalmasinate seadistused = | = Virtuaalmasinate seadistused = | ||
Selle konkreetse lahenduskäigu puhul on kasutusel kolm virtuaalmasinat: | Selle konkreetse lahenduskäigu puhul on kasutusel kolm virtuaalmasinat: | ||
1) Puppet server: Ubuntu Server 64bit versioon 12.04.3 LTS. | 1) [https://wiki.itcollege.ee/index.php/Puppet Puppet server]: Ubuntu Server 64bit versioon 12.04.3 LTS. | ||
puppet.planet.zz 192.168.56.200 | puppet.planet.zz 192.168.56.200 | ||
Line 34: | Line 40: | ||
client.planet.zz 192.168.56.101 | client.planet.zz 192.168.56.101 | ||
<br/> | |||
[[File:skeem1.png]] | |||
<br/> | |||
Joonis 1: Virtuaalmasinate topoloogia | |||
= Tarkvara kirjeldus = | = Tarkvara kirjeldus = | ||
Lahendus on testitud ja töötab kasutades järgnevaid tarkvara versioone. | |||
<br/> | |||
Rsyslog versioon 5.8.6 - logiserver, mis saadab ja võtab vastu klientide poolt saadetud logid | Rsyslog versioon 5.8.6 - logiserver, mis saadab ja võtab vastu klientide poolt saadetud logid | ||
Line 44: | Line 57: | ||
LogAnalyzer versioon 3.6.5 - veebipõhine kasutajaliides logide otsimiseks ja analüüsimiseks reaalajas | LogAnalyzer versioon 3.6.5 - veebipõhine kasutajaliides logide otsimiseks ja analüüsimiseks reaalajas | ||
= Tarkvara paigaldamine = | = Logiserveri seadistamine = | ||
== Tarkvara paigaldamine [http://www.slsmk.com/setup-syslog-with-loganalyzer-on-ubuntu-server/][http://www.howtoforge.com/centralized-rsyslog-server-monitoring]== | |||
NB! Kõik juhendis kirjutatud käsud käivitatakse root kasutaja õigustes. | NB! Kõik juhendis kirjutatud käsud käivitatakse root kasutaja õigustes. | ||
Line 84: | Line 99: | ||
<source lang="bash"> | <source lang="bash"> | ||
service rsyslog restart | |||
</source><br/> | </source><br/> | ||
<source lang="bash"> | <source lang="bash"> | ||
service mysql restart | |||
</source><br/> | </source><br/> | ||
<source lang="bash"> | <source lang="bash"> | ||
service apache2 restart | |||
</source> | </source> | ||
Line 99: | Line 114: | ||
</source> | </source> | ||
Jälgime, et:<br/> | |||
Protsess nimega mysqld kasutab porti 3306.<br/> | |||
Protsess nimega apache2 kasutab porti 80.<br/> | |||
<pre> | <pre> | ||
Line 110: | Line 128: | ||
</pre> | </pre> | ||
== MySQL-serveri seadistamine [http://www.howtoforge.com/centralized-rsyslog-server-monitoring]== | |||
salvestamine: | Loome MySQL-serverisse andmebaasi nimega "rsyslog". Sinna hakkab toimuma logide salvestamine: | ||
<source lang="bash"> | <source lang="bash"> | ||
Line 131: | Line 149: | ||
<source lang="bash"> | <source lang="bash"> | ||
GRANT SELECT, INSERT, UPDATE | GRANT SELECT, INSERT, UPDATE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'sinu_uus_rsyslogi_parool'; | ||
</source> | </source> | ||
Line 146: | Line 164: | ||
</source> | </source> | ||
Seadistame keskse logiserveri kasutama porti 10514. | == Rsyslog seadistamine [http://www.howtoforge.com/centralized-rsyslog-server-monitoring]== | ||
Seadistame keskse logiserveri kasutama porti 10514. Näiteks ei kasuta me porti 514, sest Rsyslogi puhul on teada programmiviga, mille tõttu võetakse kasutajalt õigused ennem kui avatakse uus port. Seetõttu kuvatakse veateadet. Kasutama peaks porte, mis on suuremad kui 1024. | |||
<br/> | |||
Täpsemalt saab selle kohta lugeda järgnevalt lingilt: [http://www.rudder-project.org/redmine/issues/2768 veakirjeldus] | |||
Avame nano või mõne muu tekstiredaktoriga rsyslog.conf faili: | Avame nano või mõne muu tekstiredaktoriga rsyslog.conf faili: | ||
Line 172: | Line 193: | ||
<source lang="bash"> | <source lang="bash"> | ||
service restart | |||
</source> | </source> | ||
Line 181: | Line 202: | ||
</source> | </source> | ||
Jälgime, et:<br/> | |||
Protsess nimega mysqld kasutab porti 3306.<br/> | |||
Protsess nimega apache2 kasutab porti 80.<br/> | |||
Protsess nimega rsyslogd kasutab porti 10514.<br/> | |||
<pre> | <pre> | ||
Line 196: | Line 221: | ||
</pre> | </pre> | ||
== LogAnalyzer paigaldamine [http://www.howtoforge.com/centralized-rsyslog-server-monitoring]== | |||
Liigume /tmp kausta: | |||
<source lang="bash"> | |||
cd /tmp | |||
</source> | |||
Laeme alla LogAnalyzer-i ja konfigureerime Apache veebiserveri logide näitamiseks: | |||
<source lang="bash"> | <source lang="bash"> | ||
wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz | wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz | ||
Line 217: | Line 247: | ||
<source lang="bash"> | <source lang="bash"> | ||
cd /var/www | |||
</source> | </source> | ||
Line 223: | Line 253: | ||
<source lang="bash"> | <source lang="bash"> | ||
chown www-data:www-data . | chown www-data:www-data * . -R | ||
</source> | </source> | ||
Line 262: | Line 292: | ||
</source> | </source> | ||
Anname Apachele õigused kasutada syslogi: | Anname Apachele õigused kasutada syslogi: [http://www.slsmk.com/setup-syslog-with-loganalyzer-on-ubuntu-server/] | ||
<source lang="bash"> | <source lang="bash"> | ||
Line 268: | Line 298: | ||
</source> | </source> | ||
LogAnalyzeri paigaldamine jätkub veebibrauseris | LogAnalyzeri paigaldamine jätkub veebibrauseris aadressil: http://192.168.56.201/loganalyzer/install.php | ||
Kui tuleb ette paigaldamise juhend, siis võib jätkata paigaldamist vaikesätetega. | Kui tuleb ette paigaldamise juhend, siis võib jätkata paigaldamist vaikesätetega. | ||
Nüüd peaks rsyslogi server töötama koos LogAnalyzeriga. | Nüüd peaks rsyslogi server töötama koos LogAnalyzeriga. Logisid saab vaadata aadressil http://192.168.56.201/loganalyzer/src/ | ||
= Rsyslog klientide seadistamine = | = Rsyslog klientide seadistamine [http://www.howtoforge.com/centralized-rsyslog-server-monitoring]= | ||
NB! Kõik juhendis kirjutatud käsud käivitatakse root kasutaja õigustes. | NB! Kõik juhendis kirjutatud käsud käivitatakse root kasutaja õigustes. | ||
Line 309: | Line 337: | ||
<source lang="bash"> | <source lang="bash"> | ||
service rsyslog restart | |||
</source> | </source> | ||
Line 317: | Line 345: | ||
netstat -tapn | netstat -tapn | ||
</source><br/> | </source><br/> | ||
Jälgime, et:<br/> | |||
Protsess nimega rsyslogd kasutab porti 10514 (Foreign Address).<br/> | |||
Antud väljund on client.planet.zz klientmasinast.<br/> | |||
<pre> | <pre> | ||
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name | Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name | ||
tcp 0 0 192.168.56.101:49155 192.168.56.201:10514 | tcp 0 0 192.168.56.101:49155 192.168.56.201:10514 ESTABLISHED 9180/rsyslogd | ||
</pre> | </pre> | ||
== Rsyslog klientide seadistamine puppeti abil== | |||
Alternatiivse lahendusena saab kliente seadistada puppeti abil. | |||
Järgnevad muudatused tehakse puppetserveris root kasutaja õigustes. | |||
Luua kaks erinevat klassi klientmasinate konfigureerimiseks /etc/puppet/manifest/classes/ kausta. | |||
Loo nano või mõne muu tekstiredaktoriga puppeti retsept "rsyslog.pp", mille abil paigaldatakse rsyslog tarkvara. | |||
<source lang="bash"> | |||
nano /etc/puppet/manifests/classes/rsyslog.pp | |||
</source><br/> | |||
rsyslog.pp sisu | |||
<source lang="bash"> | |||
class rsyslog { | |||
package { 'rsyslog': ensure=> latest } | |||
} | |||
</source><br/> | |||
Loo nano või mõne muu tekstiredaktoriga puppeti retsept "rsyslog_conf.pp", mille abil tehakse vajalikud muudatused klientmasinate /etc/rsyslog.conf failis. | |||
<source lang="bash"> | |||
nano /etc/puppet/manifests/classes/rsyslog_conf.pp | |||
</source><br/> | |||
rsyslog_conf.pp sisu | |||
<source lang="bash"> | |||
class rsyslog_conf { | |||
file_line { 'rsyslog': | |||
ensure => present, | |||
line => '*.* @@192.168.56.201:10514', | |||
path => '/etc/rsyslog.conf', | |||
} | |||
} | |||
</source><br/> | |||
Järgnevalt tuleb vastavad klassid lisada /etc/puppet/manifest/site.pp faili. | |||
<source lang="bash"> | |||
import "classes/*" | |||
node 'basenode' { | |||
include rsyslog | |||
include rsyslog_conf | |||
} | |||
</source><br/> | |||
= Kokkuvõte = | |||
Lõpplahendusena valmis keskne logihaldussüsteem Rsyslog baasil, et oleks võimalik vaadata ning analüüsida logisid veebibrauseri abil. | |||
= Kasutatud kirjandus = | = Kasutatud kirjandus = |
Latest revision as of 15:34, 2 January 2014
Eesmärk
Juhendi eesmärgiks on keskse logilahenduse rakendamine virtualiseeritud testkeskkonnas.
Eeldused
Testkeskkonnas on virtuaalmasinate võrguparameetrid eelnevalt seadistatud.
Võrguparameetrite seadistamiseks loe juhendit Ubuntu server võrgu seadistamine ja VirtualBoxi võrgud.
Nõuded tarkvarale
Töötab Linux/Unix keskkonnas;
Võimaldab TCP protokolli kasutada;
Avatud lähtekoodiga või vaba tarkvara;
Logide jälgimine veebikeskkonnas.
Tarkvara valik
Nõuetele vastab Rsyslog ja LogAnalyzer. Valiku langetasime tuginedes Sander Arnuse lõputööle.
Alternatiivse logiserveri tarkvarana võib kasutada näiteks logstash'i või syslog-ng'd.
Kliendi masinates võib kasutada logitarkvarana nxlog'i või syslog-ng'd.
LogAnalyzer'i asemel võib kasutada Kibana't.
Virtuaalmasinate seadistused
Selle konkreetse lahenduskäigu puhul on kasutusel kolm virtuaalmasinat:
1) Puppet server: Ubuntu Server 64bit versioon 12.04.3 LTS.
puppet.planet.zz 192.168.56.200
2) Keskne logiserver: Ubuntu Server 64bit versioon 12.04.3 LTS.
rsyslog.planet.zz 192.168.56.201
3) Klient: Ubuntu Desktop 64bit versioon 13.
client.planet.zz 192.168.56.101
Joonis 1: Virtuaalmasinate topoloogia
Tarkvara kirjeldus
Lahendus on testitud ja töötab kasutades järgnevaid tarkvara versioone.
Rsyslog versioon 5.8.6 - logiserver, mis saadab ja võtab vastu klientide poolt saadetud logid
Apache2 versioon 2.2.22 - veebiserver, mis seadistatakse hilisemaks logide veebipõhiseks vaatamiseks
MySQL server versioon 5.5 - andmebaasiserver, kuhu salvestatakse logid nende hilisemaks analüüsiks
LogAnalyzer versioon 3.6.5 - veebipõhine kasutajaliides logide otsimiseks ja analüüsimiseks reaalajas
Logiserveri seadistamine
Tarkvara paigaldamine [1][2]
NB! Kõik juhendis kirjutatud käsud käivitatakse root kasutaja õigustes.
Paigaldame keskses logiserveris (rsyslog.planet.zz) vajalikud pakid.
Esmalt uuendame tarkvararepositooriumit:
apt-get update && apt-get upgrade -y
Paigaldame rsyslog'i:
apt-get install rsyslog
Paigaldame apache veebiserveri:
apt-get install apache2
Paigaldame MySQL andmebaasiserveri:
(MySQL-serveri paigaldamisel tuleb määrata root kasutaja parool)
apt-get install mysql-server
Paigaldame php5 ja vajalikud moodulid:
apt-get install php5 php5-gd libapache2-mod-php5 php5-mysql
Taaskäivitame teenused:
service rsyslog restart
service mysql restart
service apache2 restart
Kontrollime, kas veebiserver ja andmebaasiserver kasutavad õigeid TCP/IP porte (80, 3306):
netstat -tapn
Jälgime, et:
Protsess nimega mysqld kasutab porti 3306.
Protsess nimega apache2 kasutab porti 80.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 18595/mysqld tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18766/apache2
MySQL-serveri seadistamine [3]
Loome MySQL-serverisse andmebaasi nimega "rsyslog". Sinna hakkab toimuma logide salvestamine:
mysqladmin -u root -p create rsyslog
Käivitame MySQL käsurea ning loome andmebaasi "rsyslog" uue kasutaja.
Siseneme andmebaasi:
mysql -u root -p
Loome andmebaasi "rsyslog" kasutaja nimega rsyslog:
NB: 'sinu_uus_rsyslogi_parool' asemele kirjuta meelepärane parool.
GRANT SELECT, INSERT, UPDATE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'sinu_uus_rsyslogi_parool';
Aktiveerime õigused:
FLUSH PRIVILEGES;
MySQL serverist väljumiseks:
quit
Rsyslog seadistamine [4]
Seadistame keskse logiserveri kasutama porti 10514. Näiteks ei kasuta me porti 514, sest Rsyslogi puhul on teada programmiviga, mille tõttu võetakse kasutajalt õigused ennem kui avatakse uus port. Seetõttu kuvatakse veateadet. Kasutama peaks porte, mis on suuremad kui 1024.
Täpsemalt saab selle kohta lugeda järgnevalt lingilt: veakirjeldus
Avame nano või mõne muu tekstiredaktoriga rsyslog.conf faili:
nano /etc/rsyslog.conf
Lisame rsyslog.conf faili lõppu järgnevad read:
$ModLoad MySQL
*.* >127.0.0.1,rsyslog,rsyslog,sinu_uus_rsyslogi_parool
Eemaldame kommentaari sümboli ‘#’ järgnevatelt ridadelt:
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 10514
Seejärel taaskäivitame rsyslog teenuse:
service restart
Kontrollime, kas serverid kuulavad õigeid TCP/IP porte (80, 10514 & 3306):
netstat -tapn
Jälgime, et:
Protsess nimega mysqld kasutab porti 3306.
Protsess nimega apache2 kasutab porti 80.
Protsess nimega rsyslogd kasutab porti 10514.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 14689/mysqld tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14881/apache2 tcp 0 0 0.0.0.0:10514 0.0.0.0:* LISTEN 14923/rsyslogd tcp6 0 0 :::10514 :::* LISTEN 14923/rsyslogd
LogAnalyzer paigaldamine [5]
Liigume /tmp kausta:
cd /tmp
Laeme alla LogAnalyzer-i ja konfigureerime Apache veebiserveri logide näitamiseks:
wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz
Pakime lahti alla laetud tarkvara:
tar xvzf loganalyzer-3.6.5.tar.gz
Kopeerime loganalyzer'i /var/www/ kausta:
mv loganalyzer-3.6.5/ /var/www/
Liigume /var/www kausta:
cd /var/www
Muudame /var/www/ kataloogis olevate failide ja kaustade omanikku ja gruppi:
chown www-data:www-data * . -R
Loome uue kausta:
mkdir /var/www/loganalyzer
Kopeerime /src/ kaustast kõik failid /var/www/loganalyzer kausta:
cp loganalyzer-3.6.5/src/* /var/www/loganalyzer -R
Kopeerime /contrib/ kaustast kõik skriptifailid /var/www/loganalyzer kausta:
cp loganalyzer-3.6.5/contrib/*.sh /var/www/loganalyzer -R
Anname skriptidele käivitusõigused:
chmod +x /var/www/loganalyzer/*.sh
Liigume kausta:
cd loganalyzer/
Käivitame skripti:
sh ./configure.sh
Anname Apachele õigused kasutada syslogi: [6]
usermod -G adm www-data
LogAnalyzeri paigaldamine jätkub veebibrauseris aadressil: http://192.168.56.201/loganalyzer/install.php
Kui tuleb ette paigaldamise juhend, siis võib jätkata paigaldamist vaikesätetega.
Nüüd peaks rsyslogi server töötama koos LogAnalyzeriga. Logisid saab vaadata aadressil http://192.168.56.201/loganalyzer/src/
Rsyslog klientide seadistamine [7]
NB! Kõik juhendis kirjutatud käsud käivitatakse root kasutaja õigustes.
Paigaldame klientidele (client.planet.zz ja puppet.planet.zz) rsyslog paki:
Esmalt uuendame tarkvararepositooriumit:
apt-get update && apt-get upgrade -y
Paigaldame rsyslog'i:
apt-get install rsyslog
Avame nano või mõne muu tekstiredaktoriga rsyslog.conf faili:
nano /etc/rsyslog.conf
Lisame rsyslog.conf faili lõppu järgnevad read:
*.* @@192.168.56.201:10514
Taaskäivita rsyslogi teenus:
service rsyslog restart
Kontrolli, kas server kuulab õiget TCP IP porti (10514).
netstat -tapn
Jälgime, et:
Protsess nimega rsyslogd kasutab porti 10514 (Foreign Address).
Antud väljund on client.planet.zz klientmasinast.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.56.101:49155 192.168.56.201:10514 ESTABLISHED 9180/rsyslogd
Rsyslog klientide seadistamine puppeti abil
Alternatiivse lahendusena saab kliente seadistada puppeti abil.
Järgnevad muudatused tehakse puppetserveris root kasutaja õigustes.
Luua kaks erinevat klassi klientmasinate konfigureerimiseks /etc/puppet/manifest/classes/ kausta.
Loo nano või mõne muu tekstiredaktoriga puppeti retsept "rsyslog.pp", mille abil paigaldatakse rsyslog tarkvara.
nano /etc/puppet/manifests/classes/rsyslog.pp
rsyslog.pp sisu
class rsyslog {
package { 'rsyslog': ensure=> latest }
}
Loo nano või mõne muu tekstiredaktoriga puppeti retsept "rsyslog_conf.pp", mille abil tehakse vajalikud muudatused klientmasinate /etc/rsyslog.conf failis.
nano /etc/puppet/manifests/classes/rsyslog_conf.pp
rsyslog_conf.pp sisu
class rsyslog_conf {
file_line { 'rsyslog':
ensure => present,
line => '*.* @@192.168.56.201:10514',
path => '/etc/rsyslog.conf',
}
}
Järgnevalt tuleb vastavad klassid lisada /etc/puppet/manifest/site.pp faili.
import "classes/*"
node 'basenode' {
include rsyslog
include rsyslog_conf
}
Kokkuvõte
Lõpplahendusena valmis keskne logihaldussüsteem Rsyslog baasil, et oleks võimalik vaadata ning analüüsida logisid veebibrauseri abil.
Kasutatud kirjandus
http://www.howtoforge.com/centralized-rsyslog-server-monitoring
http://www.slsmk.com/setup-syslog-with-loganalyzer-on-ubuntu-server/
http://badsimplicity.com/rsyslog-not-listening-tcp-on-port-514/
http://enos.itcollege.ee/~mernits/Linux%20administreerimine/Arnus%20-%20keskne%20logilahendus.pdf