Artigo 9 – Enviando e-mail de notificação no Nagios

Olá caros amigos Sysadmin Nagios, hoje vamos continuar nossa série contínua de artigos, siga todos passo a passo e a cada artigo se torne +1 administrador Nagios. 😛

Senhores, hoje vou descrever o processo de notificação via e-mail feito através do Nagios.

Primeiramente devo lembrar que no artigo2 – instalando o poderoso Nagios instalamos o Postfix (MTA) no servidor, ele não é necessário para enviar e-mails, mas recomendo pela flexibilidade que ele pode nos proporcionar. Ainda mais se o seu servidor Nagios esta dentro da sua rede e você precisa encaminhar as mensagens diretamente para o seu servidor de E-mail.

Vamos a prática!! 🙂

## Acesse o servidor nagios e edite o arquivo abaixo

vim /etc/postfix/main.cf

## Encontre o Parametro e informe qual é o seu servidor de e-mail

relayhost = IP-do-servidor-e-mail ou FQDN

## Necessário executar reload no Postfix

/etc/init.d/postfix reload

OBS: Com isso, o Postfix vai encaminhar todos os e-mails gerados no SO diretamente para o seu servidor de e-mail, detalhe que o IP do servidor Nagios deve estar autorizado no seu servidor de correio, para evitar que o mesmo sofra filtragem e seja bloqueado por N motivos!

## Voltando ao Nagios, perguntas e respostas:

P. O que é realmente necessário para receber um alerta através do Nagios?
R. Configurar os status dos hosts e serviços que você queira que o Nagios te alerte!!

P. Como assim?
R. Por exemplo, se você deseja receber e-mails de alerta quando o host ou serviço ficar down, warning!

## Nos templates criados no Artigo7 – Organizando a Configuração do Nagios já deixei tudo pronto, mas hoje eu vou explicar um pouco mais!

## Para o Nagios enviar e-mails precisamos configurar 2 arquivos, lembrando que todos os hosts criados até então estão associados aos templates e contatos adicionados nestes arquivos:

templates.cfg
contacts.cfg

## Acesse o arquivo templates.cfg apenas para entender, encontre  as linhas abaixo.

vim /usr/local/nagios/etc/objects/templates.cfg

## Este é o template dos hosts

define host{
name                            TemplateHost
alias                           TemplateHost
check_command                   check-host-alive
max_check_attempts              3
check_interval                  5
active_checks_enabled           1
passive_checks_enabled          0
check_period                    24x7
retain_status_information       1
notification_interval           0
notification_period             24x7
notification_options            d,u,r
register                        0
}

## Este é o template para os Serviços

define service{
name                            TemplateService
is_volatile                     0
max_check_attempts              3
normal_check_interval           5
retry_check_interval            5
active_checks_enabled           1
passive_checks_enabled          0
check_period                    24x7
retain_status_information       1
notification_interval           0
notification_period             24x7
notification_options            u,c,r
register                        0
}

## Parametros referentes a e-mail estão em negrito.

check_interval: Tempo em minutos que o nagios ira realizar a checagem (5), neste caso de 5 em 5 minutos.

retry_check_interval: Tempo em minutos que o nagios ira realizar a checagem após ter identificado algum problema.

max_check_attempts: Número de tentativas que deve ser feita antes do Nagios notificar os responsaveis. (3) Neste caso o Nagios vai verificar 3 vezes a cada 5 minutos (retry_check_interval), isto é, vai enviar o e-mail após 15 minutos.

## significa que o Nagios vai enviar apenas 1 e-mail, se estivesse com o número 10, o nagios iria enviar e-mail de 10 em 10 minutos até que o serviço ou host voltasse ao normal

notification_interval     0

## Siginifica o periodo que o nagios podera enviar e-mail de notificação, isto é, o tempo todo

notification_period    24×7

## Esta opção é diz para qual estatus o nagios deve enviar e-mail.

# Opções para Host
notification_options   u,d,r
(d – down, r – recovery, u – unknown)


# Opções para Serviço

notification_options   u,c,r
(c – critical, r – recovery, u – unknown)

## Agora vamos verificar o arquivo contacts.cfg, encontre  as linhas abaixo.

vim  /usr/local/nagios/etc/objects/contacts.cfg

 define contact{
contact_name                       Admin
alias                              Admin
contactgroups                      Admin
host_notification_period           24x7
service_notification_period        24x7
host_notification_options          d,u,r
service_notification_options       u,c,r
host_notification_commands         notify-host-by-email
service_notification_commands      notify-service-by-email
email                              email@dominio.com.br
}

## Este parametro precisa ter as mesmas opções notification_options do host

host_notification_options u,d,r

## Este parametro precisa ter as mesmas opções notification_options do serviço

service_notification_options u,c,r

## Para ambos os casos o notify-host-by-email e o notify-service-by-email são os nomes dos scripts que enviaram os e-mails de alertas do nagios, na verdade estes scripts conversam com MTA.

host_notification_commands         notify-host-by-email
service_notification_commands      notify-service-by-email

OBS: Estes scripts ficam no arquivo commands.cfg e podem ser personalizados, boa sorte 🙂

## Segue e-mail de notificação padrão do Nagios

***** Nagios *****

Notification Type: PROBLEM

Service: NRPE_DHClient
Host: Servidor Linux
Address: 10.0.3.197
State: CRITICAL

Date/Time: Fri Nov 12 17:29:26 BRST 2010

Additional Info:

CHECK_NRPE: Socket timeout after 25 seconds.


Considerações Finais:

Os Templates já estão associados aos hosts e seus serviços conforme artigos anteriores, então na verdade a parte de configuração de e-mail através do Nagios ja estava pronta, o que estava faltando era a configuração do MTA.

O Postfix é na minha opinião o MTA mais popular e utilizado no mundo Linux, trabalho com o mesmo desde 2004 e recomendo 🙂 – informações sobre o mesmo pode ser encontrados no site: http://www.postfix.org

.
.
.
🙂
Luciano Maia Cirilo
LPIC-3
www.nagiosnapratica.com.br

Anúncios

, ,

  1. #1 por Elias em novembro 16, 2010 - 2:17 pm

    Utilizo o seguinte arquivo de configuração básica (main.cf) para o postfix encaminhar as mensagens de email do Nagios. Obs.: Essa configuração é para a distribuição Debian, em outras distribuições é necessário conferir as informações da sessão PATH.

    ***************************************************************
    #=== PATHS
    command_directory = /usr/sbin
    daemon_directory = /usr/lib/postfix
    sendmail_path = /usr/sbin/sendmail
    newaliases_path = /usr/bin/newaliases
    mailq_path = /usr/bin/mailq

    #=== DOMINIO
    myhostname = nagios.dominio.com.br
    mydomain = dominio.com.br
    myorigin = $mydomain
    mydestination = localhost.$mydomain

    #=== RELAYS
    mynetworks = 127.0.0.0/8
    relayhost = [ENDERECO_IP_SERVIDOR_EMAIL]
    relay_domains = $mydomain

    #=== DEFINICOES
    mail_owner = postfix
    setgid_group = postdrop
    disable_dns_lookups = yes
    smtpd_banner = $myhostname ESMTP
    unknown_local_recipient_reject_code = 550
    alias_maps = hash:/etc/postfix/aliases
    alias_database = hash:/etc/postfix/aliases
    local_recipient_maps = $alias_maps
    recipient_delimiter = +
    debug_peer_level = 2
    debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    xxgdb $daemon_directory/$process_name $process_id & sleep 5
    ***************************************************************

    • #2 por nagiosnapratica em novembro 16, 2010 - 6:16 pm

      Olá Elias,

      Primeiro obrigado por Ler o artigo!

      Mas poderia me dizer qual distribuição precisaria conferir a seção PATH?

      Fiquei sem entender o seu questionamento!

      De qualquer forma obrigado!

      • #3 por Elias em novembro 17, 2010 - 6:25 pm

        Na verdade quis deixar um alerta pois uma vez peguei uma instalação do postfix no Suse em que os caminhos eram diferentes. Ai é bom apenas comparar o arquivo default com o arquivo de modelo se a distribuição for diferente..

        Aproveito para agradecer a iniciativa e sugerir a configuração do plugin abaixo em algum próximo artigo, posi utilizo no ambiente em que trabalho e é bastante útil para verificar o funcionamento do serviço de email. (ele manda uma mensagem para uma conta no google com resposta automática configurada e testa se recebeu a resposta).
        http://exchange.nagios.org/directory/Plugins/Email-and-Groupware/check_email_delivery/details
        http://buhacoff.net/software/check_email_delivery/

  2. #4 por Marcelo Carvalho em janeiro 3, 2011 - 1:08 pm

    Excelente dicas. Parabéns!!!

  3. #5 por Simon Rodrigues em agosto 4, 2011 - 11:01 am

    Bom Dia Luciano,

    Gostaria de uma ajuda sua, estou monitorando vários servidores, e gostaria que o Nagios enviasse para cada servidor um e-mail, por exemplo:

    servidor1 – servidor@com.br
    servidor2 – servidor2@com.br
    servidor3 – servidor3@com.br

    Ou seja quando um servidor cai ele manda para um email especifico daquele servidor.

    Isso seria possível.

    Obrigado.

    Simon Rodrigues

    • #6 por Nagios na Prática! em agosto 17, 2011 - 4:21 pm

      Olá Simon,

      Você deve 3 contacts diferentes, isto é, criar 3 grupos cada 1 com o e-mail diferente e associar o host ao grupo.

      A configuração deve ser feita neste arquivo:
      contacts.cfg

      Boa Sorte.

      Att.
      Luciano Maia Cirilo
      LPIC-3

  4. #7 por Leonardo em agosto 11, 2011 - 12:32 pm

    Fiz tudo certinho e está tudo funcionando corretamente.Como faço pra alterar o e-mail do remetente “nagios@hostname.localdomain” para um outro com meu domínio válido “nagios@domain” ?

  5. #8 por juranir em agosto 18, 2011 - 5:18 pm

    Boa tarde,

    Primeiramente parabens pelo espaço, aqui posso encontrar muita informação util.
    Acontece que estou com um problema: meu Nagios esta configurado, aparentimente, correto com o nagiosql, nagvis, ndo, mais ele não esta enviando os alertas de email. No nagios.cfg a opção enable_notification esta setada como 1, se tentar enviar o email direto pelo terminal o mesmo é enviado corretamente mais o nagios não envia. Qual poderia ser o problema?
    Eu estou achando estranho o fato que se eu clicar no menu notificação do proprio Nagios nada é apresentado, mais o arquivo esta la.

    Obrigado…
    Juranir

    • #9 por Nagios na Prática! em agosto 18, 2011 - 11:42 pm

      Olá Juranir,

      Recomendo que você verifique os logs do e-mail lá deve encontrar o problema.

      Att.
      Luciano Maia Cirilo
      LPIC-3

  6. #10 por Mauro Sergio em setembro 23, 2011 - 10:22 am

    Boa tarde

    Estou com um problema, no campo HOST que aparece no e-mail ele não está alterando para o host_name configurado. Já verifiquei as variáveis mas não encontrei nem o que está vindo no e-mail. O que pode ser?

    Grato.

  7. #11 por Alvaro em outubro 10, 2011 - 12:01 pm

    Luciano, boa tarde

    Gostaria de usar o GMAIL como servidor de email para envio dos alertas do Nagios. Por gentileza, como devo proceder? Você teria algum Howto?

    Obrigado

  8. #12 por Boretsão em outubro 28, 2011 - 5:09 pm

    Eu também gostaria de utilizar o GMAIL como reaizo essa configuração no postfix

  9. #13 por Guilherme em dezembro 8, 2011 - 11:15 am

    Luciano, Bom dia.

    Cara estou com uma dúvida nervosa me matando. Já procurei no google na documentação e nada.

    tenho o max_check_attempts 4

    Precisaria definir ele como um valor “infinito” para ele ficar executando um event_handler eternamente enquanto o serviço estiver crítico.

    AHá alguma combinação de configuração pra fazer isso?

    Ja tentei de tudo.

    Atualmente ele faz as 4 verificações não executa mais o event_handler

    Desde jpa muito obrigado!!

  10. #16 por Ericson em fevereiro 9, 2012 - 3:58 pm

    Alvaro e Boretsão… Utilize este procedimento como base para utilizar o gmail… Funcionou perfeitamente comigo.

    http://www.vivaolinux.com.br/dica/Sendmail-+-SMTP-GMAIL/

  11. #17 por robertojr em março 7, 2012 - 4:09 pm

    Boa tarde amigo,

    Veja se consegue me ajudar.

    Meu servidor de e-mail requere autenticação e não consigo de jeito nenhum fazer o postfix autenticar para enviar o e-mail.

  12. #19 por Alvaro Junior em maio 12, 2012 - 12:26 am

    Boa Noite, desculpe se minha pergunta for muito iniciante mas é o que ainda sou em Nagios, mas no caso para eu poder usar a notificação dessa forma preciso ter um servidor de e-mail na minha rede (no caso virtual) funcionando correto?, como seria para eu mandar as notificações para uma conta gmail por exemplo?. Obrigado e parabens seus artigos são incriveis.

  13. #20 por Sidnei Inácio em outubro 26, 2012 - 1:02 pm

    Prezados, Algumas dicas:

    1ª Visualizar Log do Postfix (Debian)

    tail -f /var/log/mail.log

    2ª Teste de Envio

    telnet localhost 25
    mail from: localhost
    rcpt to: email@provedor.com.br
    data
    test
    .
    quit

    3ª Configurar email com autenticação SMTP:

    configurar arquivo /etc/postfix/main.cf

    #SMTP relayhost
    relayhost = provedor_email.com.br
    mailbox_size_limit = 0

    ## TLS Settings
    # configuracao tls
    smtp_sasl_auth_enable = no
    smtp_sasl_security_options = noanonymous
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

    criar arquivo de senhas “sasl_passwd” em /etc/postfix/ com as seguintes informações:
    provedor TAB email@dominio.com.br:senha_doemail

    conteudo do arquivo sasl_passwd
    mail.dominio.com.br email_teste@dominio.com.br:senha

    Agora, vamos compilar e indexar este arquivinho de senhas
    postmap /etc/postfix/saslpass
    postfix reload

    Agora só fazer o teste e seja feliz….

    Abraços.

  14. #21 por Bruno Barreto em novembro 20, 2012 - 1:09 pm

    Boa tarde Luciano,

    As configurações passadas acima estão todas redondas no meu server nagios junto com o postfix, porém eu preciso que no contacts.cfg eu envie email para mais de um destino.
    Já tentei:
    email1@email.com, email2@email.com
    email1@email.com; email2@email.com
    email1@email.com email2@email.com

    O email é enviado, porém apenas para o primeiro destino, os demais são ignorados. Tem alguma ideia para solucionar?

    • #22 por Nagios na Prática! em dezembro 17, 2012 - 5:03 pm

      Olá Bruno,

      Uma boa solução é criar um alias para uma lista de e-mail!
      😉

      Att.
      Luciano Maia Cirilo

  15. #23 por rafaelboni em junho 12, 2013 - 11:21 am

    Olá Luciano,

    Gostaria de saber se você poderia informar um meio para que eu possa validar o teste sem aguardar que algum serviço ou host falhe no nagios?

    Antecipadamente agradeço o apoio e a qualidade do seu site, parabéns.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: