Nagios
Varasem artikkel samal teemal Nagios 3.2
Risto Bristol AK31
Nagios Core ja NRPE
loodud 12.12.2011
muudetud 05.01.2011, sissejuhatusse lisatud NRPE lühikirjeldus.
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.
NRPE on Nagiose plugin. NRPE võimaldab jälgida teiste masinate ressursse, mis muidu on kättesaadavad vaid sellesse konkreetsesse masinasse sisse logides (näiteks CPU, mälu ja ketta kasutus). NRPE alternatiiv on "check_by_ssh" plugin, kuid viimane võtab rohkem ressursse.
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 ja Nagiose pluginad
- Eeldused: töötav e-posti server, mis suudab kirju saata.
1. Siseneme monitooringu serverisse root kasutaja õigustega.
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 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 lisame 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
NRPE pluginate häälestamine
Tõenäoliselt soovime jälgida veel muidki teenuseid. Käesolev lõik annab põgusa ülevaate sellest, kuidas meile meelepäraseid pluginaid seadistada.
Uue teenuse jälgimiseks tuleb NRPE abil tuleb teha kahte asja:
- Lisa jälgitava masina nrpe.cfg faili uus command definition
- Lisa monitooringu serveri Nagiose konfiguratsioonifaili uus service definition
Näiteks swapi kasutuse jälgimiseks tuleb teha järgmised sammud.
Jälgitava masina seadistamine
Seadista check_swap plugin
1. Logi masinasse kasutajaga "nagios"
2. Koosta proovipäring näiteks nii:
/usr/local/nagios/libexec/check_swap -w 20% -c 10%
- Selle näite järgi lülitab plugin sisse hoiatuse kui swap-is on vaba ruumi vähem kui 20% ja annab kriitilise hoiatuse kui ruumi on vähem kui 10%.
3. Lisame command-i nrpe.cfg faili.
nano /usr/local/nagios/etc/nrpe.cfg
- Lisa faili rida:
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
- Kui NRPE töötab inetd/xinetd all, siis on jälgitav masin valmis.
- Kui NRPE daemon käib eraldi teenusena, siis tuleb see nüüd restartida.
Monitooringu serveri seadistamine
Seadistame swapi jälgimiseks uue service
1. Sisesta object configuration faili järgmised read:
define service{ use generic-service host_name remotehost service_description Swap Usage check_command check_nrpe!check_swap }
- Kontrollime, ega konfiguratsioonis vigu pole.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
- laeme konfiguratsioonifailid
service nagios reload
- Voila! Jälgimegi NRPE addon-i kaudu uut teenust.
Nagios Core 3.2.3 paigaldamine APT-iga
- Kui me eelnevate osadega valmis saime, siis jäta see peatükk vahele.
- Eeldused: töötav e-posti server, mis suudaks kirju saata või algteadmised põhikonfiguratsiooni tegemiseks.
- juurkasutajaga võrdsed õigused
1. Sisene süsteemi root õigustega.
2. Paigalda Nagios v3 (hetkel pakutakse v 3.2.3-3)
apt-get install nagios3
- Kui postfix pole veel installitud, siis see tehakse nüüd ära.
- Järgmise sammuna määrame veebiliidese admin-kasutaja "nagiosadmin" parooli (nagios3-cgi teenus).
3. Määra meiliaadress, kuhu nagios teateid saatma hakkab.
nano /usr/share/doc/nagios3-common/examples/template-object/contacts.cfg
- Leia selleks rida, mis algab väärtusega "email", vaikimisi on see väärtustatud aadressiga nagios@localhost
4. Seadista võimalus saata käske veebiliidese kaudu.
nano /etc/nagios3/nagios.cfg
- leia rida "check_external_commands" ja vaata, et see võrduks ühega:
check_external_commands=1
5. Loe konfiguratsioonifail uuesti sisse
service nagios3 reload
6. Avame Nagiose veebiliidese.
http://localhost/nagios3 või http://"masina ip"/nagios3
- kasutajanimi on nagiosadmin ja parool sai installimise käigus määratud.
7. Logime sisse ja proovime mõnd käsku nagiosele saata.
- Võimalik, et saame järgmise veateate: "Error: Could not stat() command file '/var/lib/nagios3/rw/nagios.cmd'!"
- Proovime seda parandada nii:
service nagios3 stop dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3 service nagios3 start
- Olemegi valmis saanud Nagios monitooringu serveri, mis monitoorib iseennast ja oma teenuseid ning tõrke korral teavitab meid e-kirjaga.
Teenuse varundamine ja taastamine
See teema on kaetud siin Nagios 3.2 ja käesolev kirjutis on juba ilma selletagi piisavalt pikk.
Lõppsõna
Nagios Core paigaldus on algajale raske ülesanne ja aega kulub selleks palju. Peale paigalduse on Nagios Core kasulik ja võimalusterohke tarkvara. Kindlasti julgen Nagiost soovitada kui head monitooringu vahendit. Nagios Core alternatiiv on kasutada tasulist Nagios XI, mis peaks (uuematel Linuxi distributsioonidel) vähesema vaevaga installeeruma. Hetkel jääb mulje, et Nagios Enterprises on suures "raha tegemise" tuhinas unustanud Open Source versioonile ajakohaste kasutusjuhendite ja toe pakkumise.
Kasutatud kirjandus
- http://www.nagios.org
- Kuidas Nagios töötab - http://www.the-tech-tutorial.com/wp-content/uploads/2011/07/nagios-config.png
- Nagios Core manualid - http://library.nagios.com/library/products/nagioscore/manuals
- external commands ei tööta - http://www.techmaxi.com/nagios-enable-external-commands-7303/
- external commands ikka ei tööta - http://www.pc-freak.net/blog/fix-to-nagios-is-currently-not-checking-for-external-commands/
- teeme 3.3.1 upgrade - http://nagios.sourceforge.net/docs/nagioscore/3/en/upgrading.html
- NRPE info - http://nagios.sourceforge.net/docs/nagioscore/3/en/addons.html#nrpe
- NRPE paigaldusjuhend - http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf
- Miks me NRPE-ga SSLi ei paigaldanud http://www.mail-archive.com/nagios-users@lists.sourceforge.net/msg22866.html
- Lisaks lugematu arv foorumeid, miks me installeerimise käigus ühe või teise veateate saime.