Nagios

From ICO wiki
Revision as of 20:00, 12 December 2011 by Rbristol (talk | contribs)
Jump to navigationJump to search

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