Nagios
vana artikkel on teise nime all Nagios 3.2 Risto Bristol AK31
See artikkel on pooleli
Nagios Core ja NRPE
viimati muudetud 12.12.2011
Autor
Risto Bristol
Varem samal teemal
Kaks aastat tagasi kirjutas samal teemal referaadi Martin Kiigemaa. Tema töö asub siin Nagios 3.2. Soovitan sellega vähemalt põgusalt tutvuda, enne kui minu tööga edasi lähete.
Sissejuhatus
Nagios on serverite ja teiste võrguseadmete jälgimise tarkvara, mis saadab administraatoritele tõrgetest automaatteateid. Nagiosega saab jälgida teenuste olekut ja koormust (näiteks SSH, HTTP, sisselogitud kasutajate arv, ketta kasutus, CPU koormus, andmebaaside seisukord jne). Nagios kasutab pluginate ja lisade süsteemi, mis võimaldab vajadusel funktsioone juurde programmeerida. Vabalt saadavate lisade hulk on märkimisväärne. Kui mõnest võimalusest puudust tunnete, siis tasub sellekohast pluginat kõigepealt internetist otsida.
Nagiose ajalugu
1996 loob Ethan Galstad MS-DOS programmi Novell Netware serverite jälgimiseks.
1998 alustab Galstad uue süsteemi loomist, mis töötab Linuxi peal.
1999 avaldab ta Open Source projekti "NetSaint".
2002 annab Galstad projektile uue nime "Nagios", et vältida võimalikke vaidlusi seoses kaubamärgiga.
2007 loob Galstad ettevõtte Nagios Enterprises LLC, et pakkuda Nagiosega seotud konsultatsiooni ja spetsiaalseid arendusi. Vahepealsetel aastatel saadakse ka mitmeid auhindu ja järjepidevat tunnustust.
2009 Nagios Enterprises annab välja esimese Nagiosel baseeruva tasulise toote. Hiljem samal aastal nimetatakse Nagios ümber Nagios Core-ks.
Täpsem ajalugu http://www.nagios.org/about/history
Versioonid
Juhendi kirjutamisel on kasutatud versioone:
Nagios Core 3.3.1
Nagios Plugins 1.4.15
NRPE 2.13
Ubuntu Server 11.10 64bit
Nagios Core muudatused http://www.nagios.org/projects/nagioscore/history/core-3x
Ülesande püstitus
Paigaldada Ubuntu serverisse Nagios Core monitooringu server ja jälgida teist Ubuntu serverit kasutades NRPE-d.
Ülesande täitmise eeldused
- Linux või Unix OS, millel on C kompilaatori tugi
- Juurkasutaja õigused serverites
- TCP/IP protokollide tugi – enamiku rakenduste kontroll käib läbi TCP/IP
- Veebiserver (soovituslik Apache)
- Thomas Boutell’s gd library versioon 1.6.3 või uuem, mis on vajalik „statusmap” ja „trends CGI” liideste tööks
- Algteadmised Linux-ist
- Oskus töötada käsurealt
- Installitud postfix
Nagiose paigaldamine
Paigaldamiseks proovisin kahte erinevat viisi:
- Apt-get
- Ise kompileeritud
Minu arvamuse kohaselt on "production" versiooniks mõistlik Nagios Core ise kokku kompileerida. Apt-iga paigaldatakse täna versioon 3.2.3-3. Lisaks installeerub Nagiose Core pakk soovituslikest erinevate seadistustega (näiteks installatsiooni kaustad, command grupp, kaustaõigused, teenuse nimi). Selleks, et uuendada tarkvara versioonile 3.3.1 tuleb muuta ./configure skripti parameetreid nii, et need vastaksid meie seadistustele. See osutub aga küllalt keeruliseks ja aeganõudvaks. Samuti tuleb ebastandardseid seadistusi arvestada pluginate ja lisade paigaldamisel. Nagios Core põhifunktsioonidega tutvumiseks sobib Apt-get paigaldus paremini, sest seda on mõnevõrra lihtsam ellu viia.
Hetkel jätkame ise kompileeritud versiooni paigaldamisega ja hiljem jõuame ka apt-get paigaldusjuhendini.
Paigaldame Monitooringu serverisse Nagios Core
- Eeldused: töötav e-posti server, mis suudab kirju saata.
1. Siseneme monitooringu serverisse root kasutaja õigustega.</ br> 2. Paigaldame paketid apache2, build-essential, libapache2-mod-php5, libgd2-xpm-dev
apt-get -y install apache2 apt-get -y install build-essential apt-get -y install libapache2-mod-php5 apt-get -y install libgd2-xpm-dev
3. Loome nagiose teenuse jaoks kasutaja ja määrame talle parooli.
useradd -m -s /bin/bash nagios passwd nagios
4. Loome uue grupi, et veebiliidese kaudu saaks ka käsklusi saata.
groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd www-data
5. Laeme alla Nagios Core 3.3.1 ja pakime lahti.
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz tar xzf nagios-3.3.1.tar.gz
6. Käivitame paigaldusskripti, nii et command group oleks varem loodud nagcmd.
cd nagios ./configure --with-command-group=nagcmd make all make install
- Võimalik, et make install lõppeb järgmiste vigadega (hetkel ignoreerime neid): make[1]: *** [install] Error 1
make: *** [install] Error 2 ...ja jätkame
make install-init make install-config make install-commandmode
7. Muudame konfiguratsiooni selliselt, et teated hakkaksid tulema soovitud aadressile.
nano /usr/local/nagios/etc/objects/contacts.cfg
- sisestame nagiosadmin kontakt-aadressiks oma e-posti aadressi, näiteks: username@localhost
8. Seadistame veebiserveri nii, et saaksime Nagiose veebiliidesele ligi. Teeme veebiliidese admin-kasutaja ja määrame talle parooli. Loeme veebiserveri konfiguratsioonifaili uuesti sisse.
make install-webconf htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin service apache2 reload
9. Tõmbame ja paigaldame pluginad. Kõigepealt väljume kaustast "nagios"
cd .. wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz tar xzf nagios-plugins-1.4.15.tar.gz cd nagios-plugins-1.4.15/ ./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install
10. Testime konfiguratsioonifaili.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
- Võimalik, et saame sellise vea: Error in configuration file '/usr/local/nagios/etc/nagios.cfg' - Line 465 (Check result path is not a valid directory) Error processing main config file!
- Siit selgub, et millegipärast puuduvad kataloogis /usr/local/nagios/var/ kataloogid spool/checkresults
- Loome puuduvad kataloogid ja määrame omaniku ja grupi
cd /usr/local/nagios/var/ mkdir -p spool/checkresults chown -R nagiso:nagcmd spool
11. Käivitame Nagiose ja muudame ta automaatselt käivitatavaks serveri startimisel.
service nagios start
- Võimalik, et saame järgmise vea: Starting nagios:touch: cannot touch `/usr/local/nagios/var/nagios.log': Permission denied touch: cannot touch `/usr/local/nagios/var/retention.dat': Permission denied done.
- Seega paneme õigused paika.
cd /usr/local/ chown -R nagios:nagcmd nagios
- ja jätkame sealt kus pooleli jäime.
service nagios start ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
12. Avame veebiliidese http://localhost/nagios või http://"ip-aadress"/nagios ja sisestame kasutaja nagiosadmin ning vastava parooli. Proovime veebiliidese kaudu saata Nagiose poole mõne käsu.
- Kui me me saame järgmise veateate: Error: Could not stat() command file '/usr/local/nagios/var/rw/nagios.cmd'!
- Siis selle parandamiseks proovime järgmist:
cd /usr/local/ chgrp -R nagcmd nagios dpkg-statoverride --update --add nagios www-data 2710 /usr/local/nagios/var/rw dpkg-statoverride --update --add nagios nagios 751 /usr/local/nagios service nagios restart
Paigaldame jälgitavasse serverisse Nagiose pluginad ja NRPE
Paigaldame jälgitavasse serverisse Nagiose pluginad ja NRPE teenuse.
1. Siseneme juurkasutaja õigustes. Loome nagiose jaoks kasutaja.
useradd nagios passwd nagios
2. Kui kompileerimiseks vajalikud vidinad puuduvad, siis paigaldame need.
apt-get -y install build-essential apt-get -y install libapache2-mod-php5 apt-get -y install libgd2-xpm-dev apt-get -y install libssl-dev
3. Paigaldame Nagiose pluginad.
cd wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz tar xzf nagios-plugins-1.4.15.tar.gz cd nagios-plugins-1.4.15/ ./configure make make install
4. Paneme paika õigused.
chown nagios:nagios /usr/local/nagios chown -R nagios:nagios /usr/local/nagios/libexec
5. Paigaldame xinetd (kui seda pole).
apt-get install xinetd
6. Paigaldame NRPE, ilma ssl toeta.
cd wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz tar xzf nrpe-2.13.tar.gz cd nrpe-2.13/ ./configure -disable-ssl make
7. Paigaldame NRPE plugina (testimiseks), daemoni ja konfiguratsioonifailide näidised ja muudame ta xinetd teenuseks.
make install-plugin make install-daemon make install-daemon-config make install-xinetd
8. Lisame monitooringuserveri ip aadressi lubatud ip-de nimekirja.
nano /etc/xinetd.d/nrpe
- lisame reale:
only_from = 127.0.0.1 <minu_monitooringuserveri_ip_address>
9. Lisame NRPE teenuse services faili:
nano /etc/services
- Sisestame rea:
nrpe 5666/tcp # NRPE
10. Restardime xinetd teenuse.
service xinetd stop service xinetd start xinetd
11. Kontrollime, kas daemon töötab xinetd all.
netstat -at | grep nrpe
- väljund peaks välja nägema umbes selline:
tcp 0 0 *:nrpe *:* LISTEN
12. Kontrollime, kas NRPE daemon töötab
/usr/local/nagios/libexec/check_nrpe -H localhost
- Kui töötab, siis peaks vastus olema selline:
NRPE v2.13
14. Lisame iptables-isse vastava rea, et NRPE daemon pääseks masinale ligi ja salvestame selle faili.
iptables -A INPUT -p tcp -d 0/0 -s 0/0 --dport 5666 -j ACCEPT iptables-save
Paigaldame monitooringu serverisse Nagiose pluginad ja NRPE
1. Sikutame NRPE alla ja paigaldame.
cd wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz tar xzf nrpe-2.13.tar.gz cd nrpe-2.13/ ./configure -disable-ssl make all make install-plugin
2. Testime, kas saame monitooritava serveriga ühendust.
- aadress 192.168.0.1 asenda oma ip-ga.
/usr/local/nagios/libexec/check_nrpe -H 192.168.0.1
- Kui vastus on "NRPE v2.13", siis ühendus toimib.
3. NRPE plugina aktiveerimiseks muudame commands.cfg faili.
nano /usr/local/nagios/etc/objects/commands.cfg
- Lisame read:
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
4. Defineerime hosti ja teenused, mida jälgima hakkame.
- Selleks oleks mõistlik luua eraldi *.cfg fail
touch /usr/local/nagios/etc/objects/meie_host.cfg chown nagios:nagcmd /usr/local/nagios/etc/objects/meie_host.cfg nano /usr/local/nagios/etc/objects/meie_host.cfg
5. Lisame hosti defineerivad read:
define host{ use linux-servers ; Kasutame vaikimisi paigaldatud template-i host_name remotehost ; The name we're giving to this server alias Fedora Core 6 ; A longer name for the server address 192.168.0.1 ; IP address of the server }
6. Lisame uue hostgrupi:
define hostgroup{ hostgroup_name linux-nrpe ; The name of the hostgroup alias Linux Servers NRPE ; Long name of the group members nagclient ; Comma separated list of hosts that belo$ }
- NB! Kui me tahame lisada hosti juba olemasolevasse gruppi, näiteks linux-servers, siis me peame avama konf faili, kus antud grupp defineeritud on (linux-servers on meil localhost.cfg failis) ja lisama members reale oma hosti.
members localhost, nagclient
6. Lisame teenuseid defineerivad read:
- Tegemist on nö hard-coded näidetega, reaalses monitooringu masinas tahame me tõenäoliselt kasutada täiendavaid ja spetsiaalselt meie nõuetele vastavaid teenuseid.
define service{ use generic-service host_name remotehost service_description CPU Load check_command check_nrpe!check_load } define service{ use generic-service host_name remotehost service_description Current Users check_command check_nrpe!check_users } define service{ use generic-service host_name remotehost service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use generic-service host_name remotehost service_description Zombie Processes check_command check_nrpe!check_zombie_procs }
- salvestame ja väljume failist
7. Kontrollime, kas konfiguratsioonifail sisaldab vigu. Kui vigu ei ilmnenud, siis loeme konfifailid uuesti sisse
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg service nagios reload