Keskse logilahenduse rakendamine Rsyslog näitel
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.
Alternatiivsete 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
Tarkvara kirjeldus
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
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:
/etc/init.d/rsyslog restart
/etc/init.d/mysql restart
/etc/init.d/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
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, DELETE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'sinu_uus_rsyslogi_parool';
Aktiveerime õigused:
FLUSH PRIVILEGES;
MySQL serverist väljumiseks:
quit
Rsyslog seadistamine
Seadistame keskse logiserveri kasutama porti 10514.
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:
/etc/init.d/rsyslog 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
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:
usermod -G adm www-data
LogAnalyzeri paigaldamine jätkub veebibrauseris.
Mine veebibrauseriga aadressile: 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.
Rsyslog klientide seadistamine
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:
/etc/init.d/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
Kokkuvõte
Lõpplahendusena valmis keskne logihaldussüsteem Rsyslog baasil, kus logisid on võimalik veebibrauseri abil vaadata ning analüüsida.
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