Nagiose kasutamine Debian Lenniga
Sisukord
- 1 Sissejuhatus
- 2 Nagiose tööpõhimõte
- 3 Nagiose serveri paigaldamine
- 4 Nagiose veebipõhise haldusliidese ettevalmistamine
- 5 Nagiose seadistamine
- 6 Kontrollprogrammide kasutamine
- 7 NRPE - Nagios Remote Plugin Execution
- 8 NagiosGrapher
- 9 Sissejuhatus
- 10 NRPE agendi paigaldamine
- 11 NRPE kasutamine
- 12 SSL kasutamine
- 13 Sissejuhatus
- 14 NSCA paigaldamine
- 15 Kasulikud lisamaterjalid
Sissejuhatus
Nagios http://www.nagios.org/ on monitooringutarkvara.
Nagiose tööpõhimõte
Nagiose serveri ülesandeks on kontrollida võrgus töötavate arvutite (ingl. k. host) ja teenuste (ingl. k. service) seisukorda.
_____ Nagiose server | | |_____| | | -|---------|----------|----....---|-- | | | __|__ __|__ __|__ | | | | | | |_____| |_____| |_____| smtp www dns raid raid raid
Arvutite ja teenuste seisukorda iseloomustavaid parameetreid võib jaotada lähtudes erinevatelt alustelt. Nt selle järgi, kas parameetrit kontrollitakse üle võrgu või lokaalsest arvutist
- kontrollitakse üle võrgu - veebileht, nimeserver
- kontrollitakse lokaalselt - arvutis töötavate protsesside arv, arvuti koormus (ingl. load), failisüsteemi täituvus, raid lülituse korrasolek
Lokaalse kontrolli korraldamiseks tuleb kontrollitavasse arvutisse paigaldada lisaks täiendavalt Nagiose tarkvara, üle võrgu kontrollimisel reeglina kontrollitavasse arvutisse ei tule midagi Nagiose-spetsiivilist lisada.
Teine võimalus on jaotus teha selle järgi, kes küsib või kes ütleb
- aktiivne kontroll - Nagiose server esitab teenustele kontrollpäringuid (nt veebileht, nimeserver)
- passiivne kontroll - Nagiose server kuulab teenuste raporteerimisi (nt backupi õnnestumine)
Jällegi, passiivse kontrolli korraldamiseks tuleb kontrollitavasse arvutisse paigaldada lisaks täiendavalt Nagiose tarkvara, aktiivsel kontrollimisel reeglina kontrollitavasse arvutisse ei tule midagi Nagiose-spetsiivilist lisada.
Nagiose serveri paigaldamine
Debiani paketihaldus sisaldab Nagios http://www.nagios.org/ versioon 3.0.x tarkvara, paigaldamiseks sobib öelda
# apt-get install nagios3 nagios3-doc
nagios3-doc sisaldab muu seas HTML kujul dokumentatsiooni kataloogis /usr/share/nagios3/htdocs.
Veebipõhise haldusliidese kasutaja ligipääsu tekitamiseks sobib öelda
# dpkg-reconfigure nagios3-common
ja dialoogides jääda vaikeväärtuste juurde, näidata parool.
Nagiose veebipõhise haldusliidese ettevalmistamine
Veebiliidese kasutuselevõtuks tuleb seadistada suhteliselt nn vanilla Apache virtuaalhost ja kasutada Nagiosega ühenduseks nt seadistusnäiteid failist /etc/nagios3/apache.conf.
Tulemusena saab kasutajana nagiosadmin ja näidatud parooliga haldusliidesesse logida
kust on näha, et
- jälgitakse kahte arvutit, vaikelüüsi ja seda arvutit ennast, kus Nagios töötab
- arvutis jälgitakse kuut parameetrit
Haldusliidesest Nagiose juhtimiseks tuleb Nagios seadistada kuulama nn väliseid korraldusi. Selleks peab /etc/nagios3/nagios.cfg failis sisalduma rida
check_external_commands=1
Failisüsteemis on enne
# ls -ld /var/lib/nagios3/rw /var/lib/nagios3 drwxr-x--- 4 nagios nagios 4096 Oct 22 00:19 /var/lib/nagios3 drwx------ 2 nagios www-data 4096 Jul 2 12:37 /var/lib/nagios3/rw
Korraldused
# dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw # dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
Pärast
# ls -ld /var/lib/nagios3/rw /var/lib/nagios3 drwxr-x--x 4 nagios nagios 4096 Oct 22 00:19 /var/lib/nagios3 drwx--s--- 2 nagios www-data 4096 Jul 2 12:37 /var/lib/nagios3/rw
Nagiose seadistamine
Nagios tööd juhib põhiline seadistusfail /etc/nagios3/nagios.cfg ning sellest failis viidatud muud seadistusfailid. Nagiose seadistamisel kirjeldatakse ära hulk erinevaid objekte
- host - jälgitav arvuti või võrguseade (nt vaikelüüs)
- service - jälgitav teenus (nt veebileht)
- command - kontrollkäsk, mis jälgib teenust
- hostgroup - hulk jälgitavaid arvuteid
- servicegroup - hulk jälgitavaid teenuseid
- contact - kontakt, kellele saadetakse teatud sündmuse toimumise kohta teade
- contactgroup - hulk kontakte
Seejuures tehniliselt ei ole oluline, kas objektide kirjeldused asuvad ühes failis või mitmes failis, mis omakorda võivad asuda mitmes kataloogis. Siiski, sõltuvalt monitooringuülesandes on reeglina praktiline jagada objektid mitmete failide vahel. Gruppide kasutamine võimaldab kirjeldada objekte abstraktsemalt, mis praktiliselt lihtsustab Nagiose seadistuste kirjutamist.
Tavalisel juhtumil võiks olla kasutuses nt sellised seadistusfailid, kusjuures vaikimisi Debian Lenny failide nimesid on kohendatud
# find /etc/nagios3 -type f | grep -v stylesheets | grep -v index /etc/nagios3/htpasswd.users /etc/nagios3/cgi.cfg /etc/nagios3/apache2.conf /etc/nagios3/commands.cfg /etc/nagios3/conf.d/generic-passive-service.cfg /etc/nagios3/conf.d/hostgroups.cfg /etc/nagios3/conf.d/timeperiods.cfg /etc/nagios3/conf.d/generic-host.cfg /etc/nagios3/conf.d/services.cfg /etc/nagios3/conf.d/generic-service.cfg /etc/nagios3/conf.d/hosts.cfg /etc/nagios3/conf.d/contacts.cfg /etc/nagios3/nagios.cfg /etc/nagios3/resource.cfg
kus
- generic-* - mallid (ingl. k. template), mis aitavad lühemalt välja kirjutada objektide kirjeldusi
Kontrollprogrammide kasutamine
Nagiosega tuleb kaasa suur hulk kontrollprogramme pakettidena nagios-plugins-standard ja nagios-plugins-basic mida kasutavad kontrollkäsud, nt
# find /usr/lib/nagios/plugins -type f | head -n 5 /usr/lib/nagios/plugins/check_dig /usr/lib/nagios/plugins/check_overcr /usr/lib/nagios/plugins/check_ntp_time /usr/lib/nagios/plugins/check_disk /usr/lib/nagios/plugins/check_hpjd
Kontrollkäsud on vaikimisi kirjeldatud kataloogis /etc/nagios-plugins/config olevates failides, nt
# find /etc/nagios-plugins/config -type f | head -n 5 /etc/nagios-plugins/config/news.cfg /etc/nagios-plugins/config/mail.cfg /etc/nagios-plugins/config/load.cfg /etc/nagios-plugins/config/games.cfg /etc/nagios-plugins/config/disk-smb.cfg
Praktiliselt alati on tarvis lisaks ise juurde kirjeldada antud kasutusjuhtumile iseloomulikke kontrollkäske, neid võiks teha nt failis /etc/nagios-plugins/config-custom/commands.cfg
define command { command_name check_dig_soa_norecurse command_line /usr/lib/nagios/plugins/check_dig -l '$ARG1$' -T SOA -H '$ARG2$' -a '$ARG3$' -A "+norecurse" } define command { command_name check_dig_soa_recurse command_line /usr/lib/nagios/plugins/check_dig -l '$ARG1$' -T SOA -H '$ARG2$' -a '$ARG3$' -A "+recurse" } define command { command_name check_ldap_3 command_line /usr/lib/nagios/plugins/check_ldap -H '$HOSTADDRESS$' -b '$ARG1$' -3 } define command { command_name check_pgsql_auul command_line /usr/lib/nagios/plugins/check_pgsql -H '$HOSTADDRESS$' -d $ARG1$ -l $ARG2$ -p $USER3$ } define command { command_name check_http_string command_line /usr/lib/nagios/plugins/check_http -H $ARG1$ -u $ARG2$ -w $ARG3$ -c $ARG4$ \ -t $ARG5$ -s $ARG6$ -p $ARG7$ } define command { command_name check_https_string command_line /usr/lib/nagios/plugins/check_http -H $ARG1$ -u $ARG2$ -w $ARG3$ -c $ARG4$ \ -t $ARG5$ -s $ARG6$ -p $ARG7$ -S }
define command { # /usr/lib/nagios/plugins/check_mysql_query -d nagios -H 192.168.1.4 -u nagios -p parool -q "select number from ncheck where number = 10;" command_name check_mysql_query command_line /usr/lib/nagios/plugins/check_mysql_query -H $HOSTADDRESS$ -d $ARG1$ -u $ARG2$ -p $USER4$ \ -q "select number from ncheck where number = 10;" }
NRPE - Nagios Remote Plugin Execution
NRPE juhtimiseks tuleb Nagiose arvutisse paigutada nrpe lisa
# apt-get install nagios-nrpe-plugin
NRPE abil jälgitavate arvutite seadistamise on kirjeldatud tekstis Debiani NRPE agendi kasutamine.
NagiosGrapher
NagiosGrapher https://www.netways.org/wiki/grapher
TODO
Sissejuhatus
NRPE (Nagios Remote Plugin Executor) tehnika võimaldab Nagiose monitooringu serveril käivitada üle võrgu jälgitavates serverites Nagiose NRPE agendi vahendusel Nagiose lisasid (ingl. k plugin). See on üks võimalus koguda andmeid teiste arvutite kohta ja sobiv just operatsioonisüsteemi omaduste (nt failisüsteemi täituvus, arvuti load jms) jälgimiseks mitte niivõrd teenuste jälgimiseks.
NRPE agendi paigaldamine
NRPE agendi paigaldamiseks tuleb öelda
# apt-get install nagios-nrpe-server nagios-plugins nagios-plugins-basic nagios-plugins-standard
Seejärel tuleb muuta sobivalt seadistusfailide /etc/default/nagios-nrpe-server ja /etc/nagios/nrpe.cfg sisu.
NRPE kasutamine
NRPE kasutamiseks peab seadistusfailis muutma tavaliselt vähemalt kahte parameetrit
- kirjeldama monitooringualused objektid
- lubama Nagiose monitooringuserveri aadressilt NRPE agendi poole pöörduda
Selleks tuleb leida üles sarnased kohad ja muuta sobivaks, nt
allowed_hosts=127.0.0.1,192.168.5.10 .. command[check_disk1]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda1
Käivitamiseks tuleb öelda
# /etc/init.d/nagios-nrpe-server
NRPE agendi käivitumise üheks tunnuseks on, et kuulataks pordil 5666
# netstat -an | grep 5666 *.5666 *.* 0 0 49152 0 LISTEN
Tulemusena peab saama Nagiose monitooringu arvutist pöördudes saama sarnase vastuse
# /usr/lib/nagios/plugins/check_nrpe -H 192.168.5.89 -c check_disk1 DISK OK - free space: / 4387 MB (13% inode=85%);| /=27564MB;;29046;0;32274
Seejärel saab Nagiose monitooringuarvutisse seadistada tavapärasel viisil teenuse kontrolli
define service{ use generic-service host_name loomdb service_description / usage check_command check_nrpe_1arg!check_disk1 }
SSL kasutamine
Vaikimisi kasutab Debian Lenny NRPE andmevahetuse turvamiseks SSL'i, mida saab kontrollida seadistusfailist /etc/default/nagios-nrpe-server parameetriga
#DAEMON_OPTS="--no-ssl"
Sissejuhatus
NSCA (Nagios Service Check Acceptor, ingl. k. Nagiose teenuse kontrolli vastuvõtja) võimadab korraldada nn passiivsed kontrolle.
NSCA paigaldamine
Nii Nagiose serverisse kui kontrollitavasse arvutisse tuleb paigaldada nsca pakett öeldes
# apt-get install nsca
Nagiose serveri arvutis tuleb käivitada nsca deemon, mida juhib seadistusfail /etc/nsca.cfg kus on oluline veenduda, et sisaldub sobiva väärtusega command_file parameeter ja vajadusel ka debug seada, nt nii
debug=1 command_file=/var/lib/nagios3/rw/nagios.cmd
Kontrollitavast arvutist saadetakse programmiga send_nsca teated Nagiose NSCA deemonile
$ echo -e "backup.loomaaed.tartu.ee\tbackup\t0\backup" | send_nsca -H nagios.loomaaed.tartu.ee -p 5667
Lisaks tuleb Nagiose serveris kirjeldada passiivsed kontrollid, nt failis /etc/nagios3/conf.d/services_nagios2.cfg võiks sisaldud sektsioon
define service{ hostgroup_name backup-serverid service_description backup check_command check_dummy!0 use generic-service notification_interval 0 ; set > 0 if you want to be renotified }
ning check_dummy kontrolli kirjeldamiseks sobib kasutada failis /etc/nagios3/commands.cfg
define command{ command_name check_dummy command_line $USER1$/check_dummy $ARG1$ }
Õnnestumisel võiks Nagiose /var/log/syslog'i tekkida
Oct 22 19:51:41 fs nsca[15318]: Connection from 192.168.206.3 port 52141 Oct 22 19:51:41 fs nsca[15318]: Handling the connection... Oct 22 19:51:42 fs nsca[15318]: SERVICE CHECK -> Host Name: 'backup.loomaaed.tartu.ee', Service Description: 'backup', Return Code: '0', Output: 'backup' Oct 22 19:51:42 fs nsca[15318]: End of connection... Oct 22 19:51:42 fs nagios3: EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;backup.loomaaed.tartu.ee;backup;0;backup Oct 22 19:51:48 fs nagios3: PASSIVE SERVICE CHECK: backup.loomaaed.tartu.ee;backup;0;backup
nsca_send jaoks võiks sisendi konstrueerida mingit protseduuri sooritav skript oma töö lõpus ise, aga kui kasutatakse nagiose lisasid (mis tuleb siis paigaldada paigaldades paketi nagios-plugins-basic), siis võiks teisendada lisa väljundi nt selline skript
#!/bin/bash CDISK=`/usr/lib/nagios/plugins/check_disk -c 15% -p / -c 15% -p /data/backup -c 15% -p /data/postgresql`; CDISK=`echo $CDISK | awk {' print $2'}` if test "$CDISK" = 'OK'; then code=0 else code=2 fi echo -e "backup.loomaaed.tartu.ee\tdisk\t$code\tdisk" | send_nsca -H nagios.loomaaed.tartu.ee -p 5667