NAGIOS : envio de alertas pelo email

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 aqui a plataforma, e de apresentar os passos de instalação (ver aqui) 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!

fonte: http://pplware.sapo.pt
Close Menu