Notifiche script custom su Nagios

"Davide D'Amico" <[email protected]> Wed, 19 Feb 2014 12:16:36 +0100
Newsgroups gmane.os.freebsd.italian.aiuto
Message-ID <CAHykR+L4kG23ek51uhvb2LYztzA=m3XvA0Lusa1+cNyKGFCb-Q@mail.gmail.com>
Diciamoci la verità: le email inviate se (ad es.) qualcosa va storto in
qualche script non
servono a granché. Per questo ho pensato ad una alternativa utilizzando
NSCA.

Sul server dove è in funzione nagios (in seguito nagios.foo.bar) ho
installato
il port net-mgmt/nsca il cui demone richiede in /etc/rc.conf.local la
direttiva:
nsca_enable="YES"

e il cui file di configurazione /usr/local/etc/nagios/nsca.cfg è:
pid_file=/var/run/nsca.pid
server_port=5667
nsca_user=nagios
nsca_group=nagios
debug=0
command_file=/var/spool/nagios/rw/nagios.cmd
alternate_dump_file=/var/spool/nagios/rw/nsca.dump
aggregate_writes=0
append_to_file=0
max_packet_age=30
password=aiba2Eey
decryption_method=3

Sul generico server va installato il port net-mgmt/nsca-client il cui file
di configurazione
/usr/local/etc/nagios/send_nsca.cfg è:
password=aiba2Eey
encryption_method=3

In questo modo è possibile interagire con il nagios utilizzando il comando:

# printf "HOSTNAME\tSERVICE\tCODE\tMESSAGE" | \
  send_nsca nagios.foo.bar -c /usr/local/etc/nagios/send_nsca.cfg
Dove:

HOSTNAME: il valore dell'attributo host_name come specificato in Nagios
SERVICE:  il valore dell'attributo service_description come specificato in
Nagios
CODE:     0 per OK, 1 per WARNING, 2 per CRITICAL
MESSAGE:  un messaggio che viene passato così come viene scritto
          nella sezione Additional Info: della mail di notifica

Ad esempio:

fw1-bastion: # printf "fw1-bastion\tBACKUP\t0\tBackup completed
successfully." | \
  send_nsca nagios.foo.bar -c /usr/local/etc/nagios/send_nsca.cfg


In Nagios occorre definire un template di servizi SOLO con passive-checks:

define service{
  name                            passive-service
  use                             generic-service
  active_checks_enabled           0
  passive_checks_enabled          1
  flap_detection_enabled          0
  register                        0
  is_volatile                     0
  check_period                    always
  notification_period             always
  max_check_attempts              1
  normal_check_interval           5
  retry_check_interval            1
  check_freshness                 0
  contact_groups                  admins
  notification_options            w,u,c,r
  stalking_options                w,c,u
  notification_interval           30
  check_command                   check_dummy!0
}

quindi definire un servizio che usi il template passive-service:

define service {
  use                             passive-service
  hostgroup_name                  fws               #fw1-bastion appartiene
al gruppo
  service_description             BACKUP
}

-- 
d.

_______________________________________________
Aiuto mailing list
[email protected]
http://mailman.gufi.org/mailman/listinfo/aiuto