Nagios
Sisukord
- 1 Sissejuhatus
- 2 Nagiose tööpõhimõte
- 3 Vana sissejuhatus - vaja ümber teha
- 4 Nagios install
- 5 Gentoo
- 6 Debian
- 7 Seadistame Nagiose
- 8 Nagiose pluginad
- 9 Ipv6 aadresside monitoorimine
- 10 Katsetamine
- 11 NSCA kasutamine
- 12 Apache seadistus
- 13 Nagiose veebipõhise haldusliidese ettevalmistamine
- 14 Alternatiiv
- 15 Lingid
Sissejuhatus
Nagiose tööpõhimõte
Nagiose serveri ülesandeks on kontrollida võrgus töötavate arvutite (ingl. k. host) ja teenuste (ingl. k. service) seisukorda.
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-spetsiifilist 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 varunduse õnnestumine)
Jällegi, passiivse kontrolli korraldamiseks tuleb kontrollitavasse arvutisse paigaldada lisaks täiendavalt Nagiose tarkvara, aktiivsel kontrollimisel reeglina kontrollitavasse arvutisse ei tule midagi Nagiose-spetsiifilist lisada.
Vana sissejuhatus - vaja ümber teha
Nagios on vabavara mis võimaldab jälgida teenuste ning serverite kättesaadavust. Toetab mitmesuguseid levinud teenuseid (SMTP, IMAP, HTTP, FTP, DNS) ning võimaldab seirata ka serveri "sisemist" infot, nagu koormus, kettamaht, protsesside arv jms) ja saata välja teavitusi süsteemide probleemide korral. Võimalik siduda mitmete muude tarkvaradega nagu Munin
Nagiosele on kirjutatud mitmeid lisasid, mis teevad halduri või administraatori elu tunduvalt lihtsamaks. Sellisteks mooduliteks on näiteks serverite võrgukaartide Bonding tugi, Cisco seadmete staatuste kogumine jt. Seadistamine on tehtud lihtsamaks mallide olemasoluga. Nimelt võib defineerida ära esmalt soovitava üldmalli ja seejärel seda direktiivina kasutada teistes seadistustes. Sedasi hoiab administraator oma loodud koodi puhtana ja ülevaatlikumana ja asju lisada on mugavam.
Kui vaadata nõudeid, mis Nagios seab riistvarale, siis on ainukeseks nõudeks, et serveril oleks C kompilaator. Nagiose töötamiseks pole otseselt vaja isegi veebiliidest ja seda saab kasutada vaid teavituste saatmiseks probleemide korral ja süsteemi normaalse töörütmi taastumise korral. Veebiliides on aga hea just igasuguse informatsiooni kuvamiseks kasutades selleks CGI skripte.
Plussid Nagiose kasutamisel:
- vaba tarkvara;
- palju kontrollimismehhanisme nii teenuste kui riistvara jaoks;
- teavitamine vigadest ja teenuse taastumisest;
- võrguhierarhia määramise võimalus;
- paralleelsed kontrollid;
- lihtne lisada jälgitavaid teenuseid või seadmeid;
- hea dokumentatsioon ja palju õpetussõnu veebis;
- kiire arendus;
- paljud lisaprogrammid integreeritavad.
Nagios install
FreeBSD
FreeBSD süsteemis tuleb anda käsud
cd /usr/ports/net-mgmt/nagios && make install clean cd /usr/ports/net-mgmt/nagios-plugins && make install clean
Viimati tuli veel teha mailisaatmiseks FreeBSD's selline rats, et linkida mail /bin alla
ln -s /usr/bin/mail /bin/mail
Gentoo
TODO
Debian
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.
Täpsemat juttu hetkel leiab
Seadistame Nagiose
Nagiose tööd juhib põhiline seadistusfail 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ülesandest on reeglina praktiline jagada objektid mitmete failide vahel. Gruppide kasutamine võimaldab kirjeldada objekte abstraktsemalt, mis praktiliselt lihtsustab Nagiose seadistuste kirjutamist.
_____ Nagiose server | | |_____| | | -|---------|----------|----....---|----------| | | | | __|__ __|__ __|__ __|__ | | | | | | | | |_____| |_____| |_____| |_____| ruuter www mail dns
Meil on kolm masinat mida vaja jälgida. Ruuter, veebiserver ja mailiserver. Me soovime, et kõiki neid kolme Nagios pingiks iga viie minuti tagant ning kui üks masin juhtub maas olema siis teavitame sellest mailiaadressile kasutaja@domeen.ee
Serverite ip aadressid
- kontori ruuter 192.168.1.10
- veebiserver veebiserver.domeen.ee 192.168.1.11
- mailiserver mailiserver.domeen.ee 192.168.1.12
- nimeserver dns.domeen.ee 192.168.1.13
Vaja on tekitada kokku 3 seadistusfaili
- hosts.cfg seadmed-serverid-arvutid
- services.cfg erinevat liiki kontrollid-testid
- contacts.cfg kasutajad-kasutajagrupid
Esimesena on vaja defineerida hosts.cfg failis kõik neli seadet
hosts.cfg
# Defineerime mõned väärtused mis vaikimis seadistame kõigile masinatele define host{ name linux-server use generic-host check_period 24x7 max_check_attempts 10 check_command check-host-alive notification_period workhours notification_interval 120 notification_options d,u,r contact_groups admins register 0 } #ruuter define host{ use linux-server host_name ruuter alias ISP Ruuter address 192.168.1.10 parents localhost contact_groups Helpdesk } #veebiserver define host{ use linux-server host_name veebiserver.domeen.ee alias veebiserver asutusele address 192.168.1.11 parents localhost contact_groups Helpdesk } #mailiserver define host{ use linux-server host_name mailiserver.domeen.ee alias sisevõrgu mailiserver address 192.168.1.12 parents localhost contact_groups Helpdesk } #nimeserver define host{ use linux-server host_name dns.domeen.ee alias nimeserver address 192.168.1.13 parents localhost contact_groups Helpdesk }
contact_groups on korrektselt vajalik paika panna hostide juures kuna sinna hakatakse saatma teateid hosti maasoleku kohta
Nüüd defineerime kontrollid mida tehakse serveritele. Tekitame service kirje mis pingib kõiki kolme masinat. Ruuterit, veebiserverit ja mailiserverit ning teavitab probleemide korral kontaktgruppi helpdesk
services.cfg
define service{ use local-service host_name ruuter, veebiserver.domeen.ee, mailiserver.domeen.ee, dns.domeen.ee service_description PING check_command check_ping!100.0,20%!500.0,60% contact_groups helpdesk }
Lõpuks tekitame kolmanda faili kus kirjas kontaktid keda teavitatakse mõne seadme maasolekul.
Loome kontakti helpdesk mailiga kasutaja@domeen.ee ning lisame selle kontaktgruppi Helpdesk
Hea nipp on luua mobiilioperaatori juures endale aadress kasutaja@mail.operaator.ee millele suunatud kirjad lähevad mobiilile sms'ina, maksab see enamasti 25.- kuus ning võimaldab operatiivselt kriitilist infot saada.
contacts.cfg
define contact{ contact_name kasutaja alias Infohuviline isik service_notification_period 24x7 host_notification_period 24x7 service_notification_options u,c,r host_notification_options d,r service_notification_commands notify-by-email host_notification_commands host-notify-by-email email kasutaja@domeen.ee } define contactgroup{ contactgroup_name helpdesk alias IT Helpdesk members kasutaja }
Ja viimaks lisame faili nagios.cfg järgnevad read, et Nagios meie tekitatud konfiguratsiooni kasutaks
cfg_file=/usr/local/etc/nagios/hosts.cfg cfg_file=/usr/local/etc/nagios/services.cfg cfg_file=/usr/local/etc/nagios/contacts.cfg
Linuxi puhul on rajad /etc/nagios/
Ning võime anda käsud
/usr/local/etc/rc.d/nagios start
või linuxis
/etc/init.d/nagios start
Et suurendada Nagiose töökindlust võiks paigaldada serverile ka oma nimeserveri.
Nagiose pluginad
Mail delivery
Mailiserveri töö kontrolli korraldamine on keerukam. Nagiose kaasasolevad vahendid võimaldavad kontrollida vaid lihtsamaid portide/teenuste ülevalolekuid ja vastuseid, mailisüsteem on samas enamuses asutuses keerukas ja mitmetest serveritest koosnev süsteem.
Plugin mis järgnevalt ära toodud, saadab serverile emaili ning seejärel logib imapiga kasutajaga mailikontole test ning kontrollib kas email on saabunud.
Vaja tirida ja paigaldada vastav plugin selleks aadressilt
http://apricoti.pbwiki.com/NagiosCheckEmailDelivery
Selle sõltuvusteks on vaja installida mõned perli moodulit mis tehtavad kenasti cpani installeri abiga
cpan -i Mail::IMAPClient
Seejärel on vaja defineerida command.
define command { command_name check_delivery_mail command_line $USER1$/check_email_delivery -H mail.domeen.ee --mailto test@mail.domeen.ee --mailfrom nagios@nagios.domeen.ee / --username test --password parool --libexec $USER1$ --wait 10 --warning 600 --critical 1200 }
Ning seejärel kontrollimine.
define service{ use generic-service host_name mail.domeen.ee service_description DELIVERY_mail check_command check_delivery_mail max_check_attempts 5 contact_groups helpdesk }
check_by_ssh
check_by_ssh on mõeldud skriptide käivitamiseks eemalolevas arvutis.
Näiteks võib tekkida soov tulemüüris olles pingida vpn otspunkte, mida Nagiose serverist teha aga ei saa.
Esiteks tuleb genereerida ssh-keygeniga võti ja paigaldada see teise arvuti nagios kasutaja alla. Siis paigaldame arvutile, kus soovime skripte käivitada /usr/ports/net-mgmt/nagios-plugins/ paketi.
Defineerime konfi käsu.
define command { command_name check_ping_tunnel_ssh command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -C \ '/usr/local/libexec/nagios/check_ping -H $ARG1$ -w 500.0,20% -c 2000.0,60% -p 5' }
Testimiseks
# /usr/local/libexec/nagios/check_ping -H 192.168.2.10 -w 500.0,20% -c 2000.0,60% -p 5 PING WARNING - Packet loss = 20%, RTA = 7.56 ms|rta=7.563000ms;500.000000;2000.000000;0.000000 pl=20%;20;60;0
Tekitame teenuse
define service {
use service host_name tulemyyr service_description Current Load check_command check_http_content!"192.168.5.14"
}
PostgreSQL
Aadressil http://bucardo.org/wiki/Check_postgres jagatakse Nagiose kontrollskripti, mis võimaldab muuhulgas
- küsida suurima tabeli või indeksi suurust
$ perl check_postgres.pl -H pg.loomaaed -u postgres --db=loobdb --action=relation_size --critical='6000 MB' --warning='4000 MB' \ --showperf=0 --perflimit=1 POSTGRES_RELATION_SIZE OK: DB "loobdb" (host:pg.loomaaed) largest relation is table "koduloomad.vigastused": 3001 MB
Seejuures esitatakse andmebaasile selline päring
BEGIN;SET statement_timeout=30000;COMMIT;SELECT pg_relation_size(c.oid), pg_size_pretty(pg_relation_size(c.oid)), relkind, relname, nspname \ FROM pg_class c, pg_namespace n WHERE (relkind = 'r' OR relkind = 'i') AND n.oid = c.relnamespace ORDER BY 1 DESC LIMIT 1
Smartmontools
Kõvaketta temperatuuri jälgimiseks sobib kasutada nt sellist järgnevust
- moodustada jälgitavasse arvutisse skript
# cat /root/system/hddtemp.sh #!/bin/bash c_aeg=`date +%s` temp=`/usr/sbin/smartctl -A /dev/$1 | grep Temperature_Celsius | awk {'print $10'}` echo $temp $c_aeg > /tmp/hddtemp_$1.txt
mis kutsutakse välja arvuti juurkasutaja crontabist reaga
*/2 * * * * /root/system/hddtemp.sh sda
Tulemusena moodustatakse igal minutil uus fail /tmp/hddtemp_sda.txt sisuga
# cat /tmp/hddtemp_sda.txt 33 1280078281
kus
- 33 - temperatuur kraadides Celsiust
- 1280078281 - timestamp, mis on vajalik veendumaks, et kasutatakse uuendatud temperatuuri väärtust
- moodustada Nagiose plugin check_hddtemp
# cat /usr/lib/nagios/plugins/check_hddtemp #!/bin/bash temp=`cat /tmp/hddtemp_$1.txt | cut -d " " -f 1`; ts=`cat /tmp/hddtemp_$1.txt | cut -d " " -f 2`; c_aeg=`date +%s` aeg_kolme_minuti_eest=$(($c_aeg - 180)); if [ $temp -lt $2 -a $ts -gt $aeg_kolme_minuti_eest ]; then echo "TEMP OK - temp: $temp;| temp=$temp"; exit 0; else echo "TEMP CRITICAL - temp: $temp;| temp=$temp"; exit 2; fi
- kirjeldada monitooritava arvuti nrpe agendis seadistusfailis /etc/nagios/nrpe.cfg check_hddtemp kontrollid, nt
# riistvara command[check_hddtemp_sda]=/usr/lib/nagios/plugins/check_hddtemp sda 35 command[check_hddtemp_sdb]=/usr/lib/nagios/plugins/check_hddtemp sdb 38 command[check_hddtemp_sdc]=/usr/lib/nagios/plugins/check_hddtemp sdc 35
- kirjeldada Nagiose serveris vastavad kontrollid, nt sektsiooniga
define service { host_name failiserver.loomaaed service_description hddtemp_sda check_command check_nrpe_1arg!check_hddtemp_sda use generic-service }
Ipv6 aadresside monitoorimine
Paljudel kaasasolevatel Nagiose utiliitidel on ipv6 tugi ka juba olemas. Näiteks soovides pingida ühte ainult ipv6 aadressi omavat hosti võib teha täiesti tavalise seadmekirje millele lisada ipv6 aadressi ning siis defineerida järgnev käsk:
define command{ command_name check_ping6 command_line $USER1$/check_ping -6 -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5 }
Kasutada saab seda tavapärasel moel nagu iga teist.
Katsetamine
Võime simuleerida mingi masina maasolekut. Piisab kui vastav reegel panna selleks tulemüüri mis blokeerib liikluse serverini mida kontrollime. Logifaili /var/spool/nagios/nagios.log peaks tekkima read:
[1209129862] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;1;CRITICAL - Plugin timed out after 10 seconds [1209129872] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;2;CRITICAL - Plugin timed out after 10 seconds [1209129882] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;3;CRITICAL - Plugin timed out after 10 seconds [1209129892] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;4;CRITICAL - Plugin timed out after 10 seconds [1209129902] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;5;CRITICAL - Plugin timed out after 10 seconds [1209129912] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;6;CRITICAL - Plugin timed out after 10 seconds [1209129922] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;7;CRITICAL - Plugin timed out after 10 seconds [1209129932] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;8;CRITICAL - Plugin timed out after 10 seconds [1209129942] HOST ALERT: veebiserver.domeen.ee;DOWN;SOFT;9;CRITICAL - Plugin timed out after 10 seconds [1209129952] HOST ALERT: veebiserver.domeen.ee;DOWN;HARD;10;CRITICAL - Plugin timed out after 10 seconds [1209129952] HOST NOTIFICATION: kasutaja;veebiserver.domeen.ee;DOWN;host-notify-by-email;CRITICAL - Plugin timed out after 10 seconds [1209129952] SERVICE ALERT: veebiserver.domeen.ee;PING;CRITICAL;HARD;1;CRITICAL - Plugin timed out after 10 seconds
ning kasutaja peaks saama emaili Host DOWN alert for veebiserver.domeen.ee! sisuga
***** Nagios 2.10 ***** Notification Type: PROBLEM Host: veebiserver.domeen.ee State: DOWN Address: 192.168.1.11 Info: CRITICAL - Plugin timed out after 10 seconds Date/Time: Fri Apr 25 16:25:52 EEST 2008
Eemaldades reegli
[1209130370] HOST ALERT: veebiserver.domeen.ee;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 4.09 ms [1209130370] HOST NOTIFICATION: kasutaja;veebiserver.domeen.ee;UP;host-notify-by-email;PING OK - Packet loss = 0%, RTA = 4.09 ms [1209130370] SERVICE ALERT: veebiserver.domeen.ee;PING;OK;SOFT;1;PING OK - Packet loss = 0%, RTA = 4.92 ms
Saabub email Host UP alert for veebiserver.domeen.ee!
***** Nagios 2.10 ***** Notification Type: RECOVERY Host: veebiserver.domeen.ee State: UP Address: 192.168.1.11 Info: PING OK - Packet loss = 0%, RTA = 4.09 ms Date/Time: Fri Apr 25 16:32:50 EEST 2008
NSCA kasutamine
NSCA (Nagios Service Check Acceptor, ingl. k. Nagiose teenuse kontrolli vastuvõtja) võimaldab korraldada nn passiivseid kontrolle. Nii Nagiose serverisse kui kontrollitavasse arvutisse tuleb paigaldada nsca pakett öeldes
# apt-get install nsca
Tulemusena paigaldatakse muu hulgas
- /usr/sbin/nsca - NSCA deemon, töötab Nagiose serveris
- /etc/nsca.cfg - NSCA deemoni seadistusfail
- /usr/sbin/send_nsca - NSCA klient, millega saadetakse deemonile sõnumeid
- /etc/send_nsca.cfg - NSCA kliendi seadistusfail
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\tbackup korras" | send_nsca -c /etc/send_nsca.cfg -H nagios.loomaaed.tartu.ee -p 5667
kus
- backup.loomaaed.tartu.ee - arvuti nimi
- backup - teenuse nimi
- 0, 1, 2, 3 - Nagiose staatus, vastavalt OK, WARNING, CRITICAL või UNKNOWN
- backup korras - teate tekst, mida näidatakse nt Nagiose veebiliideses
- /etc/send_nsca.cfg - send_nsca kasutab näidatud seadistusfaili, nt sõnumi krüptimise infoks
- nagios.loomaaed.tartu.ee - Nagiose server
- -p - Nagiose serveri port
Varunduse monitooring
Olgu ülesandeks korraldada varunduse monitooring selliselt
- varundamise skript saadab teate, kui varundamine õnnestub
- varundamise skript saadab teate, kui varundamine ebaõnnestub
- Nagios annab alarmi, kui varundamise skript pole teadet saatnud kahe päeva jooksul
Passiivse kontrolli jaoks sobib kasutada sellist malli
define service{ use generic-service name passive-backup-service active_checks_enabled 0 passive_checks_enabled 1 flap_detection_enabled 0 register 0 is_volatile 0 check_period 24x7 max_check_attempts 1 normal_check_interval 1 retry_check_interval 1 check_freshness 1 freshness_threshold 169200 contact_groups admins check_command check_dummy!2 notification_interval 7200 notification_period 24x7 notification_options w,u,c,r stalking_options w,c,u }
kus
- freshness_threshold 169200 - kaks ööpäeva oodatakse varunduselt teadet
- check_command check_dummy!2 - tagastab alati CRITICAL väärtuse
Teenuse seadistamiseks sobib kasutada nt sellist sissekannet
define service{ host_name backup.loomaaed.tartu.ee service_description backup use generic-passive-service }
Nt õ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 varundamise 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 .... if test "$varundamise_tulemus" = 'OK'; then code=0 else code=2 fi echo -e "backup.loomaaed.tartu.ee\tbackup\t$code\tbackup tulemus" | send_nsca -c /etc/send_nsca.cfg -H nagios.loomaaed.tartu.ee -p 5667
Apache seadistus
<Directory /usr/local/www/nagios> Order deny,allow Deny from all Allow from 127.0.0.1 </Directory> <Directory /usr/local/www/nagios/cgi-bin> Options ExecCGI </Directory> ScriptAlias /nagios/cgi-bin/ /usr/local/www/nagios/cgi-bin/ Alias /nagios/ /usr/local/www/nagios/
Selline virtualhost toimib küll vaid bsd peal. Erinevates distrotes on rajad failideni teised. Üldiselt peale installi öeldakse kus kaustas Nagiose cgi veebiliides asub.
Nagiose veebipõhise haldusliidese ettevalmistamine
Veebiliidese kasutuselevõtuks tuleb seadistada Apache virtuaalhost ja kasutada Nagiosega ühenduseks nt seadistusnäiteid failist 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 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
Mallide kirjeldamine
Nagiose mallidele vastavad objektid on kirjeldatud kahes failis, arvutitele vastav mall:
# cat /etc/nagios3/conf.d/generic-host.cfg define host { name generic-host ; The name of this host template notifications_enabled 1 ; Host notifications are enabled event_handler_enabled 1 ; Host event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; Process performance data retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restarts check_command check-host-alive max_check_attempts 10 notification_interval 0 notification_period 24x7 notification_options d,u,r contact_groups admins register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! }
ja teenustele vastav mall:
define service { name generic-service ; The 'name' of this service template active_checks_enabled 1 ; Active service checks are enabled passive_checks_enabled 1 ; Passive service checks are enabled/accepted parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems) obsess_over_service 1 ; We should obsess over this service (if necessary) check_freshness 0 ; Default is to NOT check service 'freshness' notifications_enabled 1 ; Service notifications are enabled event_handler_enabled 1 ; Service event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; Process performance data retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restarts notification_interval 0 ; Only send notifications on status change by default. is_volatile 0 check_period 24x7 normal_check_interval 2 retry_check_interval 1 max_check_attempts 3 notification_period 24x7 notification_options w,u,c,r contact_groups admins register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! }
kus
- mallidel on nimed, mida saab teenuste kirjeldustes kasutada, vastavalt generic-host ja generic-service
- mallidega on seostatud kontaktigrupp, admins
Alternatiiv
Kui põhiline on saada teada, et mõni üksik ruuter katki, siis pole vaja alati ka Nagiose kogu enda keerukusega peale panna ja kõige lihtsam on panna järgnev käsk crontabi:
/bin/ping -nqc 4 TARTU_RUUTER > /dev/null 2>&1 || /bin/echo 'Oluline Ruuter MAAS!!!' | /usr/bin/mail -s 'Tln-Trt maas' TEHTOE_NUMBER@sms.emt.ee ADMINI_NUMBER@sms.emt.ee katk@zoo.edu.ee
See pingiks 4 korda ja saadaks teated välja, kui ping läbi ei käinud, mis ongi ju enamvähem kõik, mis vaja. Lingi üles tulekut võib juba kontrollida käsitsi või graafikutest.
Lingid
http://kuutorvaja.eenet.ee/wiki/Nagiose_kasutamine_Debian_Lenniga
https://wiki.itcollege.ee/index.php/LAMP_monitooring_Nagiose_abil