5 votos

Nagios no expandir $CONTACTEMAIL$ macro en notificaion de comandos

Estoy teniendo un problema en mi nofication comando no es la expansión de la $CONTACTEMAIL$ macro

(Versión 3.2.1 instalado en debian squeeze uso de los paquetes de debian)

me@hostname:/etc/nagiosql# dpkg -l | grep nagios
ii  nagios-images                                          0.7                                   Collection of images and icons for the nagios system
ii  nagios-nrpe-plugin                                     2.12-4                       Nagios Remote Plugin Executor Plugin
ii  nagios-plugins                                         1.4.15-3squeeze1             Plugins for the nagios network monitoring and management system
ii  nagios-plugins-basic                                   1.4.15-3squeeze1             Plugins for the nagios network monitoring and management system
ii  nagios-plugins-standard                                1.4.15-3squeeze1             Plugins for the nagios network monitoring and management system
ii  nagios3                                                3.2.1-2                      A host/service/network monitoring and management system
ii  nagios3-cgi                                            3.2.1-2                      cgi files for nagios3
ii  nagios3-common                                         3.2.1-2                      support files for nagios3
ii  nagios3-core                                           3.2.1-2                      A host/service/network monitoring and management system core files

Tengo esto en mi comandos.cfg

define command {
    command_name                    notify_by_email
    command_line                    /usr/bin/printf "%b" "Notification:\t$NOTIFICATIONTYPE$\n\nOccurred:\t$DATETIME$\nHostname:\t$HOSTALIAS$ ($HOSTADDRESS$)\nService:\t$SERVICEDESC$\nState:\t\t$SERVICESTATE$\nDetails:\n\ n$OUTPUT$" | /usr/bin/mail -s "$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ -- $SERVICESTATE$" $CONTACTEMAIL$ 
    register                        1
}       

y en los contactos.cfg

define contact {
    contact_name                    navaho
    contactgroups                   pagers
    host_notifications_enabled      1
    service_notifications_enabled   1
    host_notification_period        24x7
    service_notification_period     24x7
    host_notification_options       d,u,r,f,s
    service_notification_options    w,u,c,r,s,n
    host_notification_commands      notify_by_email
    service_notification_commands   notify_by_email
    email                           myemail@mydomain.com
    register                        1
    }       

En mi archivo de configuración de servicio que tengo

define service {
    host_name                       servicehost.mydomain.com
    hostgroup_name                  null
    service_description             SE:
    display_name                    SE:
    check_command                   check_se
    max_check_attempts              5
    check_interval                  5
    retry_interval                  5
    active_checks_enabled           1
    check_period                    24x7
    event_handler                   notify_by_email
    notification_interval           5
    notification_period             24x7
    notification_options            w,u,r,c,s
    notifications_enabled           1
    contacts                        navaho
    contact_groups                  pagers
    register                        1
}       

Con estas configs yo esperaría nagios para ser el envío de notificaciones a la dirección de correo electrónico myemail@mydomain.com si puedo cerrar el SE: servicio de myservicehost. No.

Aug  1 13:56:12 myhostname postfix/cleanup[25382]: 2DC5F28054: message-id=<20110801205612.2DC5F28054@myhostname.mydomain.net>
Aug  1 13:56:12 myhostname postfix/qmgr[22452]: 2DC5F28054: from=<nagios@myhostname.mydomain.net>, size=470, nrcpt=1 (queue active)
Aug  1 13:56:12 myhostname postfix/local[25384]: 2DC5F28054: to=<$@myhostname.mydomain.net>, orig_to=<$>, relay=local, delay=0.07, delays=0.05/0.01/0/0.01, dsn=5.1.1, status=bounced (unknown user: "$")
Aug  1 13:56:12 myhostname postfix/cleanup[25382]: 3B96B28055: message-id=<20110801205612.3B96B28055@myhostname.mydomain.net>

Nota el $@myhostname.mydomain.net, orig_to=

Cuando puedo modificar el comando de comandos.cfg para codificarlo a mi correo electrónico, se envía a la perfección

/usr/bin/printf "%b" "Notification:\t$NOTIFICATIONTYPE$\n\nOccurred:\t$DATETIME$\nHostname:\t$HOSTALIAS$ ($HOSTADDRESS$)\nService:\t$SERVICEDESC$\nState:\t\t$SERVICESTATE$\nDetails:\n\ n$OUTPUT$" | /usr/bin/mail -s "$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ -- $SERVICESTATE$" myemail@mydomain.com 

Lo que podría faltar que está haciendo nagios no se expanda fuera de $CONTACTEMAIL$ macro?

EDIT: Después de una sugerencia por quanta publicado a continuación he activado la depuración y se utiliza en la demanda de macro para ver lo que nagios estaba haciendo. Mientras que yo todavía no pueden explicar por qué, nagios aparentemente no era la expansión de la macro porque estaba desnudo. He cambiado de $CONTACTEMAIL$ a '$CONTACTEMAIL' y se comenzó a trabajar.

8voto

navaho Puntos 270

Después de una sugerencia por quanta publicado a continuación he activado la depuración y, a continuación, utiliza una sobre demanda de macro para ver lo que nagios realmente estaba haciendo. Mientras que yo todavía no pueden explicar por qué, nagios aparentemente no era la expansión de la macro porque estaba desnudo. He cambiado de $CONTACTEMAIL$ a '$CONTACTEMAIL$' y se comenzó a trabajar. Curiosamente, las comillas Dobles no funciona.

Como yo trabajo con más parece que $SALIDA$ sin escape html que está causando los problemas.

2voto

quanta Puntos 31979
  • Encienda el nivel de depuración para tener una mirada más cercana a nagios.log
  • Intente con la demanda de la macro $CONTACTEMAIL:navaho$ a ver si funciona

1voto

opsguy Puntos 541

El problema es que la 'n' en el service_notification_options:

http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html

service_notification_options: Si se especifica n (ninguno) como una opción, el contacto no va a recibir ningún tipo de servicio de notificaciones.

1voto

Bart De Vos Puntos 12724

Hay un error en tus contactos.cfg.
Quitar el nde la lista service_notification_options el n significa none...

Como este:

define contact {
    contact_name                    navaho
    contactgroups                   pagers
    host_notifications_enabled      1
    service_notifications_enabled   1
    host_notification_period        24x7
    service_notification_period     24x7
    host_notification_options       d,u,r,f,s
    service_notification_options    w,u,c,r,s
    host_notification_commands      notify_by_email
    service_notification_commands   notify_by_email
    email                           myemail@mydomain.com
    register                        1
    } 

0voto

Hyppy Puntos 11996

Trate de poner $CONTACTEMAIL$ en las comillas de la command_line en los comandos.cfg

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: