Nagios 4.0.6: Difference between revisions
No edit summary |
No edit summary |
||
(13 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
A22<br/> | A22<br/> | ||
22.05.2014<br/> | 22.05.2014<br/> | ||
<br/> | |||
'''Täiendab''' (klient/server seadistus Puppetiga)<br/> | |||
Marti Reinsaar<br/> | |||
A31<br/> | |||
03.12.2014<br/> | |||
=Sissejuhatus= | =Sissejuhatus= | ||
Nagios on avatud lähtekoodiga (GNU GPL V2) | Nagios on avatud lähtekoodiga (GNU GPL V2) serverite ja võrgu monitoorimistööriist. Nagiose teeb eriliseks see,et saab monitoorida ükskõik millist võrguseadet või serverit, millele on läbi võrgu olemas ligipääs. Nagiose saab seadistada nii, et juhul, kui mõne teenusega peaks midagi juhtuma, saadab ta teate koheselt administraatori e-mailile. Samuti teavitakse, kui teenus läheb tagasi normaalrežiimi. Nagiosega saab monitoorida igasugused teenuseid, näiteks SMTP, HTTP, POP, IMAP, PROXY ja paljusid teisi. Vajadusel saab luua ka oma skriptid, millega soovitud teenust jälgida. Teenused saab administraatorite vahel jagada nii, et igal administraatoril on hallata kindlad teenused. Lisaks pakub Nagios veebiliidese tuge, millega on kerge jälgida kõiki teenuseid ja vaadata nende staatust. Lisafunktsionaalsuse pakkumiseks kasutab Nagios lisasid ehk pluginaid ning vajadusel saab neid ka ise juurde programmeerida. | ||
Selles õpetuses tehakse Nagiose esialgne paigaldus algteksti baasil ning paigaldatakse Nagiose ametlik lisade pakett. Lisakonfiguratsioone, näiteks e-maili teel teavitamine, saab igaüks seadistada vastavalt oma vajadustele. | |||
=Paigaldus= | =Paigaldus= | ||
Logime serverisse ning läheme juurkasutaja õigustesse | Logime serverisse ning läheme juurkasutaja õigustesse | ||
<pre>sudo | <pre>sudo -i</pre> | ||
Paigaldame kõik vajaminevad paketid | Paigaldame kõik vajaminevad paketid | ||
<pre>apt-get install build-essential apache2 apache2-utils php5-gd libgd2-xpm-dev libapache2-mod-php5</pre> | <pre>apt-get install build-essential apache2 apache2-utils php5-gd libgd2-xpm-dev libapache2-mod-php5</pre> | ||
Line 21: | Line 28: | ||
groupadd nagcmd</pre> | groupadd nagcmd</pre> | ||
Lisame kasutaja „nagios“ gruppi „nagcmd“ | Lisame kasutaja „nagios“ gruppi „nagcmd“ | ||
<pre>usermod | <pre>usermod -a -G nagcmd nagios</pre> | ||
Lisame Apache2 kasutaja gruppi „nagcmd“, et oleks võimalik läbi veebiliidese käsklusi saata | Lisame Apache2 kasutaja gruppi „nagcmd“, et oleks võimalik läbi veebiliidese käsklusi saata | ||
<pre>usermod | <pre>usermod -a -G nagcmd www-data</pre> | ||
Laeme alla Nagios 4.0.6 ja Nagios Plugins 2.0.2 juurkasutaja kausta | Laeme alla Nagios 4.0.6 ja Nagios Plugins 2.0.2 juurkasutaja kausta | ||
<pre>wget 'http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz'</pre> | <pre>wget 'http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz'</pre> | ||
Line 36: | Line 43: | ||
Käivitame Nagiose konfigureerimise skripti eelnevalt loodud grupi, kasutaja ja apache2 konfiguratsiooni asukoha parameetritega. Siis kompileerime ja paigaldame Nagiose. | Käivitame Nagiose konfigureerimise skripti eelnevalt loodud grupi, kasutaja ja apache2 konfiguratsiooni asukoha parameetritega. Siis kompileerime ja paigaldame Nagiose. | ||
<pre>./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/conf-available | <pre>./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/conf-available | ||
make all | |||
make install | |||
make install-init | |||
make install-config | |||
make install-commandmode</pre> | |||
Loome Nagiose konfiguratsioonifailile kausta | Loome Nagiose konfiguratsioonifailile kausta | ||
<pre>mkdir -p /etc/httpd/conf.d/nagios.conf</pre> | <pre>mkdir -p /etc/httpd/conf.d/nagios.conf</pre> | ||
Line 51: | Line 58: | ||
<pre>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</pre> | <pre>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</pre> | ||
Konfigureerime Nagiose nii, et ta pandaks käima automaatselt süsteemi alglaadimisel. | Konfigureerime Nagiose nii, et ta pandaks käima automaatselt süsteemi alglaadimisel. | ||
<pre> | <pre>ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios</pre> | ||
Läheme tagasi juurkasutaja kausta | Läheme tagasi juurkasutaja kausta | ||
<pre>cd</pre> | <pre>cd</pre> | ||
==Nagiose Pluginate | ==Nagiose Pluginate paigaldus== | ||
Läheme Nagiose Plugins kausta, mis me enne lahti pakkisime | Läheme Nagiose Plugins kausta, mis me enne lahti pakkisime | ||
<pre>cd nagios-plugins-2.0.2/</pre> | <pre>cd nagios-plugins-2.0.2/</pre> | ||
Käivitame konfigureerimise skripti eelnevalt loodud kasutaja ja grupi parameetritega. Seejärel kompileerime ja paigaldame Nagiose Pluginad. | Käivitame konfigureerimise skripti eelnevalt loodud kasutaja ja grupi parameetritega. Seejärel kompileerime ja paigaldame Nagiose Pluginad. | ||
<pre> | <pre>./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules --enable-extra-opts | ||
make | |||
make install</pre> | |||
=Apache2 seadistamine Nagiose kasutamiseks= | =Apache2 seadistamine Nagiose kasutamiseks= | ||
Line 69: | Line 76: | ||
<pre>htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin</pre> | <pre>htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin</pre> | ||
Muudame Apache2 vaikimisi lehte | Muudame Apache2 vaikimisi lehte | ||
<pre> | <pre>nano /etc/apache2/sites-enabled/000-default.conf</pre> | ||
ning lisame enne „</VirtualHost>“’i järgmise rea: | ning lisame enne „</VirtualHost>“’i järgmise rea: | ||
<pre> | <pre>include conf-available/nagios.conf</pre> | ||
Teeme Apach2-le taaskäivitamise ja käivitame Nagiose | Teeme Apach2-le taaskäivitamise ja käivitame Nagiose | ||
<pre> | <pre>service apache2 restart | ||
service nagios start</pre> | |||
=Veebiliides= | =Veebiliides= | ||
Line 80: | Line 87: | ||
<br/> | <br/> | ||
[[File:Nagios406controlpanel.png|800px|thumb|right|Nagios 4.0.6 veebiliidese näide]] | [[File:Nagios406controlpanel.png|800px|thumb|right|Nagios 4.0.6 veebiliidese näide]] | ||
=Klientide seadistamine Puppetiga= | |||
Kui enamasti on kasutusel üks või mõned Nagios core serverid siis kümnete kui mitte sadade / tuhandete klientide seadistamine ükshaaval on ebamõistlik. Selle protsessi automatiseerimiseks saame kasutada Puppetit ning seal siis vastavalt hostide kaupa või jagada erinevatesse nn host gruppidesse.<br/> | |||
Siin näites kasutame Nagiose masteri ja host'i vaheliseks suhtlemiseks NRPE'd ning seadistame selle Puppetiga.<br/> | |||
==Host'i osa seadistus== | |||
'''Samm 1:''' Seadistame puppetmasteris klassi hostide jaoks. Avame mingi sobiva nimega .pp faili, et sinna lisada sisu.<br/> | |||
<pre>nano /etc/puppet/modules/nagios/manifests/nrpe-host.pp</pre> | |||
'''Samm 2:''' Järgnevas koodis paigaldatakse kõigepealt host-masinale '''nrpe''' koos vajalike lisapakkidega nagu '''nagios-plugins''' ning '''nagios-plugins-all'''. Nagios CORE ei ole nrpe host masinas vajalik.<br/> | |||
Edasi määrame lubatud nn masterid kellel on lubatud sooritada päringuid sellelt hostilt läbi nrpe saamaks infot. Antud näites paneme sinna localhost'i ning vastava nagios core seadme IP.<br/> | |||
Järgmisena määrame need service'id mida kontrollitakse, need kõik teenused on tegelikult eelnevalt nagioses defineeritud, vajadusel saab luua ka ise uusi kontrolle.<br/> | |||
<pre> | |||
class nagios::nrpe-host { | |||
package { [ nrpe, nagios-plugins, nagios-plugins-all ]: | |||
ensure => installed, } | |||
service { nrpe: | |||
ensure => running, | |||
enable => true, | |||
require => Package[nrpe], | |||
} | |||
file_line { "allowed_hosts": | |||
line => "allowed_hosts = 127.0.0.1,192.168.56.200", | |||
path => "/etc/nagios/nrpe.cfg", | |||
match => "allowed_hosts", | |||
ensure => present, | |||
notify => Service["nrpe"], | |||
} | |||
@@nagios_service { "check_load_${hostname}": | |||
check_command => "check_nrpe!check_load", | |||
use => "generic-service", | |||
host_name => "$fqdn", | |||
service_description => "${hostname}_check_load" | |||
} | |||
@@nagios_service { "check_total_procs_${hostname}": | |||
check_command => "check_nrpe!check_total_procs", | |||
use => "generic-service", | |||
host_name => "$fqdn", | |||
service_description => "${hostname}_check_total_procs" | |||
} | |||
@@nagios_service { "check_zombie_procs_${hostname}": | |||
check_command => "check_nrpe!check_zombie_procs", | |||
use => "generic-service", | |||
host_name => "$fqdn", | |||
service_description => "${hostname}_check_zombie_procs" | |||
} | |||
@@nagios_service { "check_users_${hostname}": | |||
check_command => "check_nrpe!check_users", | |||
use => "generic-service", | |||
host_name => "$fqdn", | |||
service_description => "${hostname}_check_users" | |||
} | |||
}</pre> | |||
==Server'i osa seadistus== | |||
'''Samm 3:''' Seadistame puppetmasteris klassi serveri lisa seadete '''nrpe''' jaoks. Avame sobiva nimega .pp faili, et sinna lisada sisu.<br/><br/> | |||
<pre>nano /etc/puppet/modules/nagios/manifests/nrpe-serv.pp</pre> | |||
'''Samm 4:''' Kõigepealt kontrollitakse kas '''nagios-plugins-nrpe''' on paigaldatud. Edasi seadistatakse check_nrpe command mis on vajalik core seadmes sooritamaks päringuid. NB: $ märgiga väljad on muutujad, neid ei ole tarvis asendada. <br/> | |||
<pre> | |||
class nagios::nrpe-serv { | |||
package { "nagios-plugins-nrpe" : | |||
ensure => installed, | |||
} | |||
nagios_command { 'resource title': | |||
command_name => 'check_nrpe', | |||
ensure => 'present', | |||
command_line => '/usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$', | |||
} | |||
file_line { "nagios_command.cfg": | |||
line => "cfg_file=/etc/nagios/nagios_command.cfg", | |||
path => "/etc/nagios/nagios.cfg", | |||
ensure => present, | |||
notify => Service["nagios"], | |||
} | |||
file { "nagios_command": | |||
mode => 644, | |||
} | |||
}</pre> | |||
==Lisame uued klassid node'idele== | |||
Avame faili kus node'id on kirjeldatud.<br/> | |||
<pre>nano /etc/puppet/manifests/nodes.pp</pre> | |||
'''puppet.planet.zz''' -> Siin asub meil Nagios core server.<br/> | |||
'''client.planet.zz''' -> Siin asub meil host kust tuleb läbi nrpe info saada.<br/> | |||
<pre> | |||
node 'puppet.planet.zz' { | |||
include nagios::nrpe-serv | |||
} | |||
node 'client.planet.zz' { | |||
include nagios::nrpe-host | |||
}</pre> | |||
[[File:Nagios741.png]] | |||
=Kasutatud kirjandus= | =Kasutatud kirjandus= | ||
http://blog.jsquaredconsulting.com/ <br/> | http://blog.jsquaredconsulting.com/2014/05/installing-nagios-4-on-ubuntu-1404.html <br/> | ||
http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html <br/> | http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html <br/> | ||
https://forge.puppetlabs.com/thias/nagios <br/> | |||
http://www.linuxjournal.com/content/puppet-and-nagios-roadmap-advanced-configuration <br/> | |||
https://folgaizer.wordpress.com/2014/02/06/automate-nagios-configuration-with-puppet/ <br/> | |||
==Vanemate versioonide õpetused== | ==Vanemate versioonide õpetused== | ||
[http://wiki.itcollege.ee/index.php/Nagios_3.2 Nagios 3.2]<br/> | [http://wiki.itcollege.ee/index.php/Nagios_3.2 Nagios 3.2]<br/> | ||
[https://wiki.itcollege.ee/index.php/Nagios Nagios 3.3.1] | [https://wiki.itcollege.ee/index.php/Nagios Nagios 3.3.1] |
Latest revision as of 13:11, 3 December 2014
Versioon
Nagios Core 4.0.6
Nagios Plugins 2.0.2
Ubuntu Server 14.04
Autor
Henri Ots
A22
22.05.2014
Täiendab (klient/server seadistus Puppetiga)
Marti Reinsaar
A31
03.12.2014
Sissejuhatus
Nagios on avatud lähtekoodiga (GNU GPL V2) serverite ja võrgu monitoorimistööriist. Nagiose teeb eriliseks see,et saab monitoorida ükskõik millist võrguseadet või serverit, millele on läbi võrgu olemas ligipääs. Nagiose saab seadistada nii, et juhul, kui mõne teenusega peaks midagi juhtuma, saadab ta teate koheselt administraatori e-mailile. Samuti teavitakse, kui teenus läheb tagasi normaalrežiimi. Nagiosega saab monitoorida igasugused teenuseid, näiteks SMTP, HTTP, POP, IMAP, PROXY ja paljusid teisi. Vajadusel saab luua ka oma skriptid, millega soovitud teenust jälgida. Teenused saab administraatorite vahel jagada nii, et igal administraatoril on hallata kindlad teenused. Lisaks pakub Nagios veebiliidese tuge, millega on kerge jälgida kõiki teenuseid ja vaadata nende staatust. Lisafunktsionaalsuse pakkumiseks kasutab Nagios lisasid ehk pluginaid ning vajadusel saab neid ka ise juurde programmeerida.
Selles õpetuses tehakse Nagiose esialgne paigaldus algteksti baasil ning paigaldatakse Nagiose ametlik lisade pakett. Lisakonfiguratsioone, näiteks e-maili teel teavitamine, saab igaüks seadistada vastavalt oma vajadustele.
Paigaldus
Logime serverisse ning läheme juurkasutaja õigustesse
sudo -i
Paigaldame kõik vajaminevad paketid
apt-get install build-essential apache2 apache2-utils php5-gd libgd2-xpm-dev libapache2-mod-php5
Loome Nagiosele kasutaja „nagios“ ja grupi „nagcmd“
useradd nagios groupadd nagcmd
Lisame kasutaja „nagios“ gruppi „nagcmd“
usermod -a -G nagcmd nagios
Lisame Apache2 kasutaja gruppi „nagcmd“, et oleks võimalik läbi veebiliidese käsklusi saata
usermod -a -G nagcmd www-data
Laeme alla Nagios 4.0.6 ja Nagios Plugins 2.0.2 juurkasutaja kausta
wget 'http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz'
wget 'http://nagios-plugins.org/download/nagios-plugins-2.0.2.tar.gz'
Pakime mõlemad allalaetud failid lahti
tar xzf nagios-4.0.6.tar.gz tar xzf nagios-plugins-2.0.2.tar.gz
Nagios Core paigaldus
Liigume esialgu kausta Nagios-4.0.6
cd nagios-4.0.6
Käivitame Nagiose konfigureerimise skripti eelnevalt loodud grupi, kasutaja ja apache2 konfiguratsiooni asukoha parameetritega. Siis kompileerime ja paigaldame Nagiose.
./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/conf-available make all make install make install-init make install-config make install-commandmode
Loome Nagiose konfiguratsioonifailile kausta
mkdir -p /etc/httpd/conf.d/nagios.conf
Paigaldame Nagiose veebiliidese
make install-webconf
Kopeerime „contrib/eventhandlers/“ Nagiose „libexec“ kausta ja määrame Nagiose kasutaja faili omanikuks
cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/ chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
Kontrollime, kas Nagiose konfiguratsioonifailis on vigu ( Kui käsklus midagi ei tagasta, siis vead puuduvad)
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Konfigureerime Nagiose nii, et ta pandaks käima automaatselt süsteemi alglaadimisel.
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Läheme tagasi juurkasutaja kausta
cd
Nagiose Pluginate paigaldus
Läheme Nagiose Plugins kausta, mis me enne lahti pakkisime
cd nagios-plugins-2.0.2/
Käivitame konfigureerimise skripti eelnevalt loodud kasutaja ja grupi parameetritega. Seejärel kompileerime ja paigaldame Nagiose Pluginad.
./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules --enable-extra-opts make make install
Apache2 seadistamine Nagiose kasutamiseks
Lubame CGI mooduli
a2enmod cgi
Loome Nagiose veebiliidese jaoks kasutaja „nagiosadmin“ ja parooli
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Muudame Apache2 vaikimisi lehte
nano /etc/apache2/sites-enabled/000-default.conf
ning lisame enne „</VirtualHost>“’i järgmise rea:
include conf-available/nagios.conf
Teeme Apach2-le taaskäivitamise ja käivitame Nagiose
service apache2 restart service nagios start
Veebiliides
Selleks, et pääseda veebiliidesesse tuleb avada veebibrauser ja minna leheküljele:
http://127.0.0.1/nagios
või
http://hosti ip address/nagios
Järgnevalt tuleb sisestada eelnevalt loodud Nagiose veebiliidese kasutajanimi ja parool.
Klientide seadistamine Puppetiga
Kui enamasti on kasutusel üks või mõned Nagios core serverid siis kümnete kui mitte sadade / tuhandete klientide seadistamine ükshaaval on ebamõistlik. Selle protsessi automatiseerimiseks saame kasutada Puppetit ning seal siis vastavalt hostide kaupa või jagada erinevatesse nn host gruppidesse.
Siin näites kasutame Nagiose masteri ja host'i vaheliseks suhtlemiseks NRPE'd ning seadistame selle Puppetiga.
Host'i osa seadistus
Samm 1: Seadistame puppetmasteris klassi hostide jaoks. Avame mingi sobiva nimega .pp faili, et sinna lisada sisu.
nano /etc/puppet/modules/nagios/manifests/nrpe-host.pp
Samm 2: Järgnevas koodis paigaldatakse kõigepealt host-masinale nrpe koos vajalike lisapakkidega nagu nagios-plugins ning nagios-plugins-all. Nagios CORE ei ole nrpe host masinas vajalik.
Edasi määrame lubatud nn masterid kellel on lubatud sooritada päringuid sellelt hostilt läbi nrpe saamaks infot. Antud näites paneme sinna localhost'i ning vastava nagios core seadme IP.
Järgmisena määrame need service'id mida kontrollitakse, need kõik teenused on tegelikult eelnevalt nagioses defineeritud, vajadusel saab luua ka ise uusi kontrolle.
class nagios::nrpe-host { package { [ nrpe, nagios-plugins, nagios-plugins-all ]: ensure => installed, } service { nrpe: ensure => running, enable => true, require => Package[nrpe], } file_line { "allowed_hosts": line => "allowed_hosts = 127.0.0.1,192.168.56.200", path => "/etc/nagios/nrpe.cfg", match => "allowed_hosts", ensure => present, notify => Service["nrpe"], } @@nagios_service { "check_load_${hostname}": check_command => "check_nrpe!check_load", use => "generic-service", host_name => "$fqdn", service_description => "${hostname}_check_load" } @@nagios_service { "check_total_procs_${hostname}": check_command => "check_nrpe!check_total_procs", use => "generic-service", host_name => "$fqdn", service_description => "${hostname}_check_total_procs" } @@nagios_service { "check_zombie_procs_${hostname}": check_command => "check_nrpe!check_zombie_procs", use => "generic-service", host_name => "$fqdn", service_description => "${hostname}_check_zombie_procs" } @@nagios_service { "check_users_${hostname}": check_command => "check_nrpe!check_users", use => "generic-service", host_name => "$fqdn", service_description => "${hostname}_check_users" } }
Server'i osa seadistus
Samm 3: Seadistame puppetmasteris klassi serveri lisa seadete nrpe jaoks. Avame sobiva nimega .pp faili, et sinna lisada sisu.
nano /etc/puppet/modules/nagios/manifests/nrpe-serv.pp
Samm 4: Kõigepealt kontrollitakse kas nagios-plugins-nrpe on paigaldatud. Edasi seadistatakse check_nrpe command mis on vajalik core seadmes sooritamaks päringuid. NB: $ märgiga väljad on muutujad, neid ei ole tarvis asendada.
class nagios::nrpe-serv { package { "nagios-plugins-nrpe" : ensure => installed, } nagios_command { 'resource title': command_name => 'check_nrpe', ensure => 'present', command_line => '/usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$', } file_line { "nagios_command.cfg": line => "cfg_file=/etc/nagios/nagios_command.cfg", path => "/etc/nagios/nagios.cfg", ensure => present, notify => Service["nagios"], } file { "nagios_command": mode => 644, } }
Lisame uued klassid node'idele
Avame faili kus node'id on kirjeldatud.
nano /etc/puppet/manifests/nodes.pp
puppet.planet.zz -> Siin asub meil Nagios core server.
client.planet.zz -> Siin asub meil host kust tuleb läbi nrpe info saada.
node 'puppet.planet.zz' { include nagios::nrpe-serv } node 'client.planet.zz' { include nagios::nrpe-host }
Kasutatud kirjandus
http://blog.jsquaredconsulting.com/2014/05/installing-nagios-4-on-ubuntu-1404.html
http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html
https://forge.puppetlabs.com/thias/nagios
http://www.linuxjournal.com/content/puppet-and-nagios-roadmap-advanced-configuration
https://folgaizer.wordpress.com/2014/02/06/automate-nagios-configuration-with-puppet/