Tutorial: Como enviar alertas do Nagios via Gmail

Como administrador de sistemas, é importante ter as melhores ferramentas que nos permitam monitorizar todos os elementos que fazem parte da nossa rede informática. Uma das plataformas gratuitas mais fantástica para monitorização é o Nagios, não só por ser opensource mas também pela forma como é possível estender a monitorização aos elementos mais estranhos.

Depois de termos apresentado a plataforma, e de apresentar os passos de instalação  hoje ensinamos como podem configurar o sistema de alertas do Nagios para envio de e-mail através do Gmail.

nagios_001

 

Além da possibilidade de visualizamos o estados dos vários equipamentos monitorizados, é possível configurar o Nagios para que este envie notificações via e-mail ou até mesmo SMS. Por omissão, o sistema usa o daemon mail para enviar todas as notificações, localmente. No entanto é possível usar servidores de e-mail externos, como é o caso do gmail, para o envio de e-mails.  Hoje ensinamos com podem usar o sendEmail, um cliente de SMTP via linha de comandos, para envio dos alertas do nagios via Gmail. Para isso devem seguir os seguintes passos:

Passo 1) Obter o cliente de SMTP sendEmail

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

Passo 2) Descompactar

[root@pplware] tar -xvf sendEmail-v1.56.tar.gz

Passo 3) Copiar o binário para /usr/local/bin/

[root@pplware] cp /root/sendEmail-v1.56/sendEmail /usr/local/bin/

Passo 4) Vamos agora criar o ficheiro para manter os logs do sendEmail e dar respectivas permissões permissões

[root@pplware] touch /var/log/sendEmail
[root@pplware] chmod 666 /var/log/sendEmail

Passo 5) Configuração das variáveis necessárias. Para isso vamos a /usr/loca/nagios/etc/resources.cfg e configuramos do seguinte modo

# Sets $USER1$ to be the path to the plugins
$USER1$=/usr/local/nagios/libexec

# Sets $USER2$ to be the path to event handlers
#$USER2$=/usr/local/nagios/libexec/eventhandlers

$USER5$= CONTA GMAIL
$USER7$=smtp.gmail.com:587

$USER9$=CONTA GMAIL
$USER10$=PASSWORD

Passo 6) Configuração do ficheiro /usr/local/nagios/etc/objects/commands.cfg

Uma vez que o gmail necessite de autenticação para envio via SNMP, é necessário que procedam à seguinte configuração. Na prática esta configuração consistem em definir o modelo do e-mail a enviar assim com o comando respectivo para o envio do mesmo. Uma vez que a configuração é complexa, não se esqueçam de fazer uma cópia do ficheiro commands.cfg.

# <strong>'notify-host-by-email' command definition</strong>
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/bin/sendEmail  -s $USER7$ -xu $USER9$ -xp $USER10$ -t $USER5$ -f $USER5$ -o tls=yes -l /var/log/sendEmail -u "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"
}

# <strong>'notify-service-by-email' command definition
</strong>    define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/local/bin/sendEmail  -s $USER7$ -xu $USER9$ -xp $USER10$ -t $CONTACTEMAIL$ -f $USER5$ -o tls=yes -l /var/log/sendEmail -u "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$"
}

Passo 7) Validação da configuração

Para validarem a configuração, podem usar o comando

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Passo 8) Restart ao Nagios

Depois da configuração validada, basta que reiniciem o nagios usando o comando

service nagios restart

Nota: caso queiram ver os logs associados ao sendEmail, basta que usem o comando

tail -f /var/log/sendEmail

Aqui fica um exemplo dos e-mails recebidos

gmail_04

Alguns problema que podem surgir

  • Uma vez que estamos a usar SSL, o sistema pode necessitar do pacote IO::Socket::SSL. Para instalar no CentOS basta instalar o comando yum install ‘perl(IO::Socket::SSL)’
  • Para validares se o vosso servidor tem comunicação com o servidor do gmail via porta 587, podem executar o comando telnet smtp.gmail.com 587

Esperamos que tenham gostado deste tutorial. Num próximo artigo iremos ensinar a monitorizar máquinas remotas com Windows. Estejam atentos e partilhas as vossas duvidas e sugestões. Boas monitorizações!

Deixe uma resposta

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: