Keskse logilahenduse rakendamine Rsyslog näitel: Difference between revisions

From ICO wiki
Jump to navigationJump to search
 
(39 intermediate revisions by 2 users not shown)
Line 20: Line 20:
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/>
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/>


Alternatiivsete logiserveri tarkvarana võib kasutada näiteks logstash'i või syslog-ng'd.<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/>
Kliendi masinates võib kasutada logitarkvarana nxlog'i või syslog-ng'd.<br/>
Line 29: Line 29:
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 40: 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 50: 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 90: Line 99:


<source lang="bash">
<source lang="bash">
/etc/init.d/rsyslog restart
service rsyslog restart
</source><br/>
</source><br/>
<source lang="bash">
<source lang="bash">
/etc/init.d/mysql restart
service mysql restart
</source><br/>
</source><br/>
<source lang="bash">
<source lang="bash">
/etc/init.d/apache2 restart
service apache2 restart
</source>
</source>


Line 107: Line 116:
Jälgime, et:<br/>
Jälgime, et:<br/>
Protsess nimega mysqld kasutab porti 3306.<br/>
Protsess nimega mysqld kasutab porti 3306.<br/>
Protsess nimega apache2 kasutab porti 3306.<br/>
Protsess nimega apache2 kasutab porti 80.<br/>


<pre>
<pre>
Line 119: Line 128:
</pre>
</pre>


Loome MySQL-serverisse andmebaasi nimega "rsyslog". Sinna hakkab toimuma logide
== 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 140: Line 149:


<source lang="bash">
<source lang="bash">
GRANT SELECT, INSERT, UPDATE, DELETE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'sinu_uus_rsyslogi_parool';
GRANT SELECT, INSERT, UPDATE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'sinu_uus_rsyslogi_parool';
</source>
</source>


Line 155: 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 181: Line 193:


<source lang="bash">
<source lang="bash">
/etc/init.d/rsyslog restart
service restart
</source>
</source>


Line 192: Line 204:
Jälgime, et:<br/>
Jälgime, et:<br/>
Protsess nimega mysqld kasutab porti 3306.<br/>
Protsess nimega mysqld kasutab porti 3306.<br/>
Protsess nimega apache2 kasutab porti 3306.<br/>
Protsess nimega apache2 kasutab porti 80.<br/>
Protsess nimega rsyslogd kasutab porti 10514.<br/>
Protsess nimega rsyslogd kasutab porti 10514.<br/>


Line 209: Line 221:
</pre>
</pre>


Laeme alla LogAnalyzer-i ja konfigureerime Apache veebiserveri logide näitamiseks.
== 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 230: Line 247:


<source lang="bash">
<source lang="bash">
cd /var/www
cd /var/www
</source>
</source>


Line 236: Line 253:


<source lang="bash">
<source lang="bash">
chown www-data:www-data .* -R
chown www-data:www-data * . -R
</source>
</source>


Line 275: 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 281: Line 298:
  </source>
  </source>


LogAnalyzeri paigaldamine jätkub veebibrauseris.
LogAnalyzeri paigaldamine jätkub veebibrauseris aadressil: http://192.168.56.201/loganalyzer/install.php
 
Mine veebibrauseriga aadressile: 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 322: Line 337:


<source lang="bash">
<source lang="bash">
/etc/init.d/rsyslog restart
service rsyslog restart
</source>
</source>


Line 339: Line 354:
tcp        0      0 192.168.56.101:49155    192.168.56.201:10514        ESTABLISHED  9180/rsyslogd   
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 16: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