Nagios não expandindo $ CONTACTEMAIL $ macro no comando notificaion

5

Estou com um problema em que meu comando de nofication não está expandindo a macro $ CONTACTEMAIL $

(Versão 3.2.1 instalada no debian squeeze usando os pacotes 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

Eu tenho isso no meu commands.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
}       

e em contacts.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                           [email protected]
    register                        1
    }       

No meu arquivo de configuração de serviço eu tenho

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
}       

Com essas configurações, eu esperaria que nagios enviassem notificações para o endereço de e-mail [email protected], se eu desligasse o serviço SE: em myservicehost. Isso não acontece.

Aug  1 13:56:12 myhostname postfix/cleanup[25382]: 2DC5F28054: message-id=<[email protected]>
Aug  1 13:56:12 myhostname postfix/qmgr[22452]: 2DC5F28054: from=<[email protected]>, size=470, nrcpt=1 (queue active)
Aug  1 13:56:12 myhostname postfix/local[25384]: 2DC5F28054: to=<[email protected]>, 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=<[email protected]>

Observe o $ @ myhostname.mydomain.net, orig_to =

Quando modifico o comando em commands.cfg para codificá-lo para o meu e-mail real, ele envia perfeitamente

/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$" [email protected] 

O que eu poderia estar perdendo que faz com que os nagios não se expandam para fora $ CONTACTEMAIL $ macro?

EDIT: Depois de uma sugestão de quanta postada abaixo eu liguei a depuração e usei uma macro on demand para ver o que nagios estava fazendo. Embora eu ainda não possa explicar por que, nagios aparentemente não estava expandindo a macro porque estava vazia. Mudei $ CONTACTEMAIL $ para '$ CONTACTEMAIL' e ele começou a funcionar.

    
por navaho 02.08.2011 / 23:15

6 respostas

1

Após uma sugestão de quanta postada abaixo, eu ativei a depuração e usei uma macro sob demanda para ver o que os nagios estavam realmente fazendo. Embora eu ainda não possa explicar por que, nagios aparentemente não estava expandindo a macro porque estava vazia. Mudei $ CONTACTEMAIL $ para '$ CONTACTEMAIL $' e ele começou a funcionar. Estranhamente, aspas duplas não funcionaram.

Como eu trabalho com isso, mais parece que $ OUTPUT $ tem html sem escape que está causando os problemas.

    
por 03.08.2011 / 20:20
2
  • Ative o nível de depuração para ver mais de perto nagios.log
  • Experimente com a macro on-demand $CONTACTEMAIL:navaho$ para ver se funciona
por 03.08.2011 / 05:18
1

O problema é o 'n' nas service_notification_options:

link

service_notification_options: Se você especificar n (nenhum) como uma opção, o contato não receberá nenhum tipo de notificação de serviço.

    
por 03.08.2011 / 01:13
1

Existe um erro no seu contacts.cfg.
Remova o n da lista service_notification_options o n significa none ...

Assim:

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                           [email protected]
    register                        1
    } 
    
por 03.08.2011 / 01:17
0

Tente colocar $ CONTACTEMAIL $ entre aspas na linha de comando em commands.cfg

    
por 02.08.2011 / 23:19
0

Há algum caractere não imprimível contido na string $ CONTACTEMAIL $, portanto, não corresponde a nada?

    
por 02.08.2011 / 23:29

Tags