Nagios

From ICO wiki
Revision as of 22:10, 12 December 2011 by Rbristol (talk | contribs) (→‎Lõppsõna)
Jump to navigationJump to search

Varasem artikkel samal teemal Nagios 3.2

Risto Bristol AK31

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 ja Nagiose pluginad

  • 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 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.

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