Erinevus lehekülje "Nagiose kasutamine Debian Lenniga" redaktsioonide vahel

Allikas: Kuutõrvaja
(Kontrollprogrammide kasutamine)
(Smartmontools)
 
(ei näidata 2 kasutaja 35 vahepealset redaktsiooni)
24. rida: 24. rida:
  
 
* kontrollitakse üle võrgu - veebileht, nimeserver
 
* 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
+
* kontrollitakse lokaalselt - arvutis töötavate protsesside arv, arvuti koormus (ingl. load), failisüsteemi täituvus, raid lülituse korrasolek, paketiuuendused
  
 
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.
 
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.
119. rida: 119. rida:
 
* generic-* - mallid (ingl. k. template), mis aitavad lühemalt välja kirjutada objektide kirjeldusi
 
* generic-* - mallid (ingl. k. template), mis aitavad lühemalt välja kirjutada objektide kirjeldusi
  
===Kontrollprogrammide kasutamine===
+
====Kontrollkäskude kirjeldamine====
  
 
Nagiosega tuleb kaasa suur hulk kontrollprogramme pakettidena nagios-plugins-standard ja nagios-plugins-basic mida kasutavad kontrollkäsud, nt  
 
Nagiosega tuleb kaasa suur hulk kontrollprogramme pakettidena nagios-plugins-standard ja nagios-plugins-basic mida kasutavad kontrollkäsud, nt  
142. rida: 142. rida:
  
 
  define command {
 
  define command {
 +
  # /usr/lib/nagios/plugins/check_dig -l loomaaed.tartu.ee -T SOA -H '10.193.0.53' -a loomaaed.tartu.ee -A "+norecurse"
 +
  # DNS OK - 0.009 seconds response time (loomaaed.tartu.ee.  300 IN SOA ns.loomaaed.tartu.ee. hostmaster.loomaaed.tartu.ee. \
 +
  #  2010053100 10800 3600 1814400 300)|time=0.009477s;;;0.000000
 
   command_name    check_dig_soa_norecurse
 
   command_name    check_dig_soa_norecurse
 
   command_line    /usr/lib/nagios/plugins/check_dig -l '$ARG1$' -T SOA -H '$ARG2$' -a '$ARG3$' -A "+norecurse"
 
   command_line    /usr/lib/nagios/plugins/check_dig -l '$ARG1$' -T SOA -H '$ARG2$' -a '$ARG3$' -A "+norecurse"
147. rida: 150. rida:
 
   
 
   
 
  define command {
 
  define command {
 +
  # /usr/lib/nagios/plugins/check_dig -l loomaaed.tartu.ee -T SOA -H '10.192.0.53' -a loomaaed.tartu.ee -A "+recurse"
 +
  # DNS OK - 0.009 seconds response time (loomaaed.tartu.ee.  210 IN SOA ns.loomaaed.tartu.ee. hostmaster.loomaaed.tartu.ee. \
 +
  #  2010053100 10800 3600 1814400 300)|time=0.009466s;;;0.00000
 
   command_name    check_dig_soa_recurse
 
   command_name    check_dig_soa_recurse
 
   command_line    /usr/lib/nagios/plugins/check_dig -l '$ARG1$' -T SOA -H '$ARG2$' -a '$ARG3$' -A "+recurse"
 
   command_line    /usr/lib/nagios/plugins/check_dig -l '$ARG1$' -T SOA -H '$ARG2$' -a '$ARG3$' -A "+recurse"
152. rida: 158. rida:
 
   
 
   
 
  define command {
 
  define command {
   command_name    check_ldap_3
+
  # /usr/lib/nagios/plugins/check_ldap -H 192.168.1.247 -b "dc=loomaaed,dc=tartu,dc=ee" -3
 +
  # LDAP OK - 0.005 seconds response time|time=0.005144s;;;0.000000
 +
   command_name    check_ldap_v3
 
   command_line    /usr/lib/nagios/plugins/check_ldap -H '$HOSTADDRESS$' -b '$ARG1$' -3
 
   command_line    /usr/lib/nagios/plugins/check_ldap -H '$HOSTADDRESS$' -b '$ARG1$' -3
 
         }
 
         }
 
   
 
   
 
  define command {
 
  define command {
   command_name    check_pgsql_auul
+
  # /usr/lib/nagios/plugins/check_pgsql -H pgsql.loomaaed -d nagios -l nagios -p parool
 +
  # OK - database nagios (0 sec.)|time=0.000000s;2.000000;8.000000;0.000000
 +
   command_name    check_pgsql_loomaaed
 
   command_line    /usr/lib/nagios/plugins/check_pgsql -H '$HOSTADDRESS$' -d $ARG1$ -l $ARG2$ -p $USER3$
 
   command_line    /usr/lib/nagios/plugins/check_pgsql -H '$HOSTADDRESS$' -d $ARG1$ -l $ARG2$ -p $USER3$
 
  }
 
  }
 
   
 
   
 
  define command {
 
  define command {
 +
  # /usr/lib/nagios/plugins/check_http -H www.loomaaed.tartu.ee -u "/index.php" -w 30 -c 50 -t 60 -s "unique" -p 80
 +
  # HTTP OK HTTP/1.0 200 OK - 0.296 second response time |time=0.296338s;30.000000;50.000000;0.000000 size=35081B;;;0
 
   command_name    check_http_string
 
   command_name    check_http_string
 
   command_line    /usr/lib/nagios/plugins/check_http -H $ARG1$ -u $ARG2$ -w $ARG3$ -c $ARG4$ \
 
   command_line    /usr/lib/nagios/plugins/check_http -H $ARG1$ -u $ARG2$ -w $ARG3$ -c $ARG4$ \
167. rida: 179. rida:
 
  }
 
  }
 
   
 
   
 +
# /usr/lib/nagios/plugins/check_http -H www.loomaaed.tartu.ee -u "/index.php" -w 30 -c 50 -t 60 -s "unique" -p 80 -S 
 +
# HTTP OK HTTP/1.0 200 OK - 0.296 second response time |time=0.296338s;30.000000;50.000000;0.000000 size=35081B;;;0
 
  define command {
 
  define command {
 
   command_name    check_https_string
 
   command_name    check_https_string
178. rida: 192. rida:
 
   command_line  /usr/lib/nagios/plugins/check_mysql_query -H $HOSTADDRESS$ -d $ARG1$ -u $ARG2$ -p $USER4$ \
 
   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;"
 
     -q "select number from ncheck where number = 10;"
 +
}
 +
 +
define command {
 +
  # /usr/lib/nagios/plugins/check_dhcp -s 192.168.10.210 -r 192.168.10.102
 +
  # dpkg-statoverride --update --add root nagios 4750 /usr/lib/nagios/plugins/check_dhcp
 +
  command_name  check_dhcp_response
 +
  command_line  /usr/lib/nagios/plugins/check_dhcp -s $ARG1$ -r $ARG2$
 
  }
 
  }
  
===NRPE - Nagios Remote Plugin Execution===
+
====Arvutite kirjeldamine====
 +
 
 +
Seadistusfailis /etc/nagios3/conf.d/hosts.cfg on kirjeldatud arvutitele vastavad Nagiose objektid, nt
 +
 
 +
define host {
 +
  host_name  ns.loomaaed
 +
  alias      ns.loomaaed
 +
  address    ns.loomaaed
 +
  use        generic-host
 +
}
 +
 +
define host {
 +
  host_name  fs.loomaaed
 +
  alias      fs.loomaaed
 +
  address    fs.loomaaed
 +
  use        generic-host
 +
}
 +
 
 +
====Teenuste kirjeldamine====
 +
 
 +
Seadistusfailis /etc/nagios3/conf.d/services.cfg on kirjeldatud teenustele vastavad Nagiose objektid, nt
 +
 +
define service {
 +
  host_name                      fs.auul 
 +
  service_description            check_apt     
 +
  check_command                  check_nrpe_1arg!check_apt                       
 +
  use                            generic-service
 +
  notification_interval          0 ; set > 0 if you want to be renotified
 +
}
 +
 +
# /usr/lib/nagios/plugins/check_ntp_time -H ntp.loomaaed.tartu.ee -w 15 -c 20
 +
define service {
 +
  host_name                      fs.auul
 +
  service_description            check_ntp_time
 +
  check_command                  check_nrpe_1arg!check_ntp_time
 +
  use                            generic-service
 +
  notification_interval          0 ; set > 0 if you want to be renotified
 +
}
 +
 
 +
====Kontaktide kirjeldamine====
 +
 
 +
Seadistusfailis /etc/nagios3/conf.d/contacts.cfg on kirjeldatud kontaktidele vastavad Nagiose objektid, nt
 +
 
 +
# cat /etc/nagios3/conf.d/contacts.cfg
 +
define contact{
 +
  contact_name                    priit
 +
  alias                          Priit
 +
  service_notification_period    24x7
 +
  host_notification_period        24x7
 +
  service_notification_options    w,u,c,r
 +
  host_notification_options      d,r
 +
  service_notification_commands  notify-service-by-email
 +
  host_notification_commands      notify-host-by-email
 +
  email                          priit.kask@loomaaed.tartu.ee
 +
}
 +
 +
define contactgroup {
 +
  contactgroup_name      admins
 +
  alias                  Administrators
 +
  members                priit
 +
}
 +
 
 +
====Mallide kirjeldamine====
  
NRPE juhtimiseks tuleb Nagiose arvutisse paigutada nrpe lisa
+
Nagiose mallidele vatavad objektid on kirjeldatud kahes failis, arvutitele vastav mall
  
  # apt-get install nagios-nrpe-plugin
+
  # 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!
 +
}
  
NRPE abil jälgitavate arvutite seadistamise on kirjeldatud tekstis [[:Debiani NRPE agendi kasutamine]].
+
ja teenustele vastav mall
  
===NagiosGrapher===
+
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!
 +
}
  
NagiosGrapher https://www.netways.org/wiki/grapher
+
kus
  
TODO
+
* mallidel on nimed, mida saab teenuste kirjeldustes kasutada, vastavalt generic-host ja generic-service
 +
* mallidega on seostatud kontaktigrupp, admins
  
===Sissejuhatus===
+
===NRPE - Nagios Remote Plugin Execution===
  
 
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 (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 Nagiose serveri juures====
 +
 
 +
NRPE juhtimiseks tuleb Nagiose arvutisse paigutada nrpe lisa
 +
 
 +
# apt-get install nagios-nrpe-plugin
 +
 
 +
====NRPE agendi paigaldamine====
  
 
NRPE agendi paigaldamiseks tuleb öelda
 
NRPE agendi paigaldamiseks tuleb öelda
206. rida: 337. rida:
 
Seejärel tuleb muuta sobivalt seadistusfailide /etc/default/nagios-nrpe-server ja /etc/nagios/nrpe.cfg sisu.
 
Seejärel tuleb muuta sobivalt seadistusfailide /etc/default/nagios-nrpe-server ja /etc/nagios/nrpe.cfg sisu.
  
===NRPE kasutamine===
+
====NRPE kasutamine====
  
 
NRPE kasutamiseks peab seadistusfailis muutma tavaliselt vähemalt kahte parameetrit
 
NRPE kasutamiseks peab seadistusfailis muutma tavaliselt vähemalt kahte parameetrit
248. rida: 379. rida:
 
  #DAEMON_OPTS="--no-ssl"
 
  #DAEMON_OPTS="--no-ssl"
  
===Sissejuhatus===
+
===NSCA kasutamine===
  
NSCA (Nagios Service Check Acceptor, ingl. k. Nagiose teenuse kontrolli vastuvõtja) võimadab korraldada nn passiivsed kontrolle.
+
NSCA (Nagios Service Check Acceptor, ingl. k. Nagiose teenuse kontrolli vastuvõtja) võimadab korraldada nn passiivsed kontrolle. Nii Nagiose serverisse kui kontrollitavasse arvutisse tuleb paigaldada nsca pakett öeldes
  
===NSCA paigaldamine===
+
  # apt-get install nsca
  
Nii Nagiose serverisse kui kontrollitavasse arvutisse tuleb paigaldada nsca pakett öeldes
+
Tulemusena paigaldatakse muu hulgas
  
  # apt-get install nsca
+
* /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 kliedi 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
 
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
265. rida: 399. rida:
 
Kontrollitavast arvutist saadetakse programmiga send_nsca teated Nagiose NSCA deemonile
 
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
+
   $ 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
  
Lisaks tuleb Nagiose serveris kirjeldada passiivsed kontrollid, nt failis /etc/nagios3/conf.d/services_nagios2.cfg võiks sisaldud sektsioon
+
* 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
  
  define service{
+
Passiivse kontrolli jaoks sobib kasutada sellist malli
        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 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
 +
}
  
  define command{
+
kus
        command_name check_dummy
 
        command_line $USER1$/check_dummy $ARG1$
 
  }
 
  
Õnnestumisel võiks Nagiose /var/log/syslog'i tekkida
+
* freshness_threshold  169200 - kaks ööpäeva oodatakse backupilt teadet
 +
* check_command  check_dummy!2 - tagastab alati CRITICAL väärtuse
  
  Oct 22 19:51:41 fs nsca[15318]: Connection from 192.168.206.3 port 52141
+
Teenuse seadistamiseks sobib kasutada nt sellist sissekannet
  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
+
define service{
 +
  host_name                      backup.loomaaed.tartu.ee
 +
  service_description            backup
 +
  use                            generic-passive-service
 +
}
  
  #!/bin/bash
+
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
 
    
 
    
  CDISK=`/usr/lib/nagios/plugins/check_disk -c 15% -p / -c 15% -p /data/backup -c 15% -p /data/postgresql`;
+
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
  CDISK=`echo $CDISK | awk {' print $2'}`
+
 
 +
====Logi sissekannetel põhinev monitooring====
 +
 
 +
TODO
 +
 
 +
===Kontrollprogrammide lisamine===
 +
 
 +
Nagiose modulaarne ülesehitus võimaldab kasutajal suhteliselt hõlpsasti juurutada talle vajalikke kontrolle lisades süsteemile isekirjutatud skripte või kasutada nn kolmandatest allikatest pärinevaid skripte. Nt üks populaarne veebikoht kus jagatakse selliseid skripte asub aadressil http://exchange.nagios.org/.
 +
 
 +
Järgnevalt on kirjeldatud selliste kontrollide korraldamist, mida Nagiose standardkomplekt 2010 aasta kevadel ei võimalda.
 +
 
 +
====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.vigatused": 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 test "$CDISK" = 'OK'; then
+
if [ $temp -lt $2 -a $ts -gt $aeg_kolme_minuti_eest ]; then
          code=0
+
  echo "TEMP OK - temp: $temp;| temp=$temp";
  else
+
  exit 0;
          code=2
+
else
 
+
  echo "TEMP CRITICAL - temp: $temp;| temp=$temp";
  fi
+
  exit 2;
 
+
fi
  echo -e "backup.loomaaed.tartu.ee\tdisk\t$code\tdisk" | send_nsca -H nagios.loomaaed.tartu.ee -p 5667
+
 
 +
* 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 vastavat kontrollid, nt sektsiooniga
 +
 
 +
define service {
 +
  host_name                      failiserver.loomaaed
 +
  service_description            hddtemp_sda
 +
  check_command                  check_nrpe_1arg!check_hddtemp_sda
 +
  use                            generic-service
 +
}
 +
 
 +
===NagiosGrapher===
 +
 
 +
NagiosGrapher https://www.netways.org/wiki/grapher
 +
 
 +
TODO
 +
 
 +
===Misc===
 +
 
 +
* http://www.monitoringexchange.org/inventory/Check-Plugins/Network/Check-Number-Of-Connections
  
 
===Kasulikud lisamaterjalid===
 
===Kasulikud lisamaterjalid===
  
 +
* http://kuutorvaja.eenet.ee/wiki/Nagios
 
* http://www.nagios.org/
 
* http://www.nagios.org/
 +
* http://www.monitoringexchange.org/
 +
* http://exchange.nagios.org/

Viimane redaktsioon: 1. september 2010, kell 19:32

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, paketiuuendused

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

Debian-nagios-1.gif

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

Kontrollkäskude kirjeldamine

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 {
  # /usr/lib/nagios/plugins/check_dig -l loomaaed.tartu.ee -T SOA -H '10.193.0.53' -a loomaaed.tartu.ee -A "+norecurse"
  # DNS OK - 0.009 seconds response time (loomaaed.tartu.ee.  300 IN SOA ns.loomaaed.tartu.ee. hostmaster.loomaaed.tartu.ee. \
  #   2010053100 10800 3600 1814400 300)|time=0.009477s;;;0.000000
  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 {
  # /usr/lib/nagios/plugins/check_dig -l loomaaed.tartu.ee -T SOA -H '10.192.0.53' -a loomaaed.tartu.ee -A "+recurse"
  # DNS OK - 0.009 seconds response time (loomaaed.tartu.ee.  210 IN SOA ns.loomaaed.tartu.ee. hostmaster.loomaaed.tartu.ee. \
  #  2010053100 10800 3600 1814400 300)|time=0.009466s;;;0.00000
  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 {
  # /usr/lib/nagios/plugins/check_ldap -H 192.168.1.247 -b "dc=loomaaed,dc=tartu,dc=ee" -3
  # LDAP OK - 0.005 seconds response time|time=0.005144s;;;0.000000
  command_name    check_ldap_v3
  command_line    /usr/lib/nagios/plugins/check_ldap -H '$HOSTADDRESS$' -b '$ARG1$' -3
       }

define command {
  # /usr/lib/nagios/plugins/check_pgsql -H pgsql.loomaaed -d nagios -l nagios -p parool
  # OK - database nagios (0 sec.)|time=0.000000s;2.000000;8.000000;0.000000
  command_name    check_pgsql_loomaaed
  command_line    /usr/lib/nagios/plugins/check_pgsql -H '$HOSTADDRESS$' -d $ARG1$ -l $ARG2$ -p $USER3$
}

define command {
  # /usr/lib/nagios/plugins/check_http -H www.loomaaed.tartu.ee -u "/index.php" -w 30 -c 50 -t 60 -s "unique" -p 80
  # HTTP OK HTTP/1.0 200 OK - 0.296 second response time |time=0.296338s;30.000000;50.000000;0.000000 size=35081B;;;0
  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$
}

# /usr/lib/nagios/plugins/check_http -H www.loomaaed.tartu.ee -u "/index.php" -w 30 -c 50 -t 60 -s "unique" -p 80 -S  
# HTTP OK HTTP/1.0 200 OK - 0.296 second response time |time=0.296338s;30.000000;50.000000;0.000000 size=35081B;;;0
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;"
}

define command {
  # /usr/lib/nagios/plugins/check_dhcp -s 192.168.10.210 -r 192.168.10.102
  # dpkg-statoverride --update --add root nagios 4750 /usr/lib/nagios/plugins/check_dhcp
  command_name  check_dhcp_response
  command_line  /usr/lib/nagios/plugins/check_dhcp -s $ARG1$ -r $ARG2$
}

Arvutite kirjeldamine

Seadistusfailis /etc/nagios3/conf.d/hosts.cfg on kirjeldatud arvutitele vastavad Nagiose objektid, nt

define host {
  host_name   ns.loomaaed
  alias       ns.loomaaed
  address     ns.loomaaed
  use         generic-host
}

define host {
  host_name   fs.loomaaed
  alias       fs.loomaaed
  address     fs.loomaaed
  use         generic-host
}

Teenuste kirjeldamine

Seadistusfailis /etc/nagios3/conf.d/services.cfg on kirjeldatud teenustele vastavad Nagiose objektid, nt

define service {
  host_name                       fs.auul   
  service_description             check_apt      
  check_command                   check_nrpe_1arg!check_apt                        
  use                             generic-service
  notification_interval           0 ; set > 0 if you want to be renotified
}

# /usr/lib/nagios/plugins/check_ntp_time -H ntp.loomaaed.tartu.ee -w 15 -c 20
define service {
  host_name                       fs.auul
  service_description             check_ntp_time
  check_command                   check_nrpe_1arg!check_ntp_time
  use                             generic-service
  notification_interval           0 ; set > 0 if you want to be renotified
}

Kontaktide kirjeldamine

Seadistusfailis /etc/nagios3/conf.d/contacts.cfg on kirjeldatud kontaktidele vastavad Nagiose objektid, nt

# cat /etc/nagios3/conf.d/contacts.cfg 
define contact{
  contact_name                    priit
  alias                           Priit
  service_notification_period     24x7
  host_notification_period        24x7
  service_notification_options    w,u,c,r
  host_notification_options       d,r
  service_notification_commands   notify-service-by-email
  host_notification_commands      notify-host-by-email
  email                           priit.kask@loomaaed.tartu.ee
}

define contactgroup {
  contactgroup_name       admins
  alias                   Administrators
  members                 priit
}

Mallide kirjeldamine

Nagiose mallidele vatavad 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

NRPE - Nagios Remote Plugin Execution

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 Nagiose serveri juures

NRPE juhtimiseks tuleb Nagiose arvutisse paigutada nrpe lisa

# apt-get install nagios-nrpe-plugin

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"

NSCA kasutamine

NSCA (Nagios Service Check Acceptor, ingl. k. Nagiose teenuse kontrolli vastuvõtja) võimadab korraldada nn passiivsed 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 kliedi 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 backupilt 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

Logi sissekannetel põhinev monitooring

TODO

Kontrollprogrammide lisamine

Nagiose modulaarne ülesehitus võimaldab kasutajal suhteliselt hõlpsasti juurutada talle vajalikke kontrolle lisades süsteemile isekirjutatud skripte või kasutada nn kolmandatest allikatest pärinevaid skripte. Nt üks populaarne veebikoht kus jagatakse selliseid skripte asub aadressil http://exchange.nagios.org/.

Järgnevalt on kirjeldatud selliste kontrollide korraldamist, mida Nagiose standardkomplekt 2010 aasta kevadel ei võimalda.

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.vigatused": 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 vastavat kontrollid, nt sektsiooniga
define service {
  host_name                       failiserver.loomaaed
  service_description             hddtemp_sda
  check_command                   check_nrpe_1arg!check_hddtemp_sda
  use                             generic-service
}

NagiosGrapher

NagiosGrapher https://www.netways.org/wiki/grapher

TODO

Misc

Kasulikud lisamaterjalid