Olá a todos.
Depois de prolongada ausência causada pelos percalços, que frequentemente a vida nos apresenta, volto a contribuir.
A experiência que gostaria de descrever trata-se da integração entre o
Nagios, poderoso e flexível software de monitoramento, bem conhecido de todos que algum dia mexeram com redes e/ou infraestrutura de TI, e o
Asterisk, servidor VoIP, flexível, robusto e estável, com características que mesmo algumas das centrais telefônicas mais caras do mercado ainda não apresentam.
Temos uma rede de médio porte na empresa onde trabalho na área de servidores/infraestrutura, e temos usado o Nagios para realizar o monitoramento dos hosts/serviços que são críticos. Entre outras coisas, temos também um servidor Asterisk, destinado a fornecer ramais VoIP onde a infraestrutura de telefonia não alcança, mas a infra de rede tem cobertura.
Em uma das conversas que tivemos no setor, surgiram algumas reclamações a respeito da falta de informações quando nos ausentamos da empresa. Quando um host/serviço cai, só ficávamos sabendo quando algum funcionário nos ligava, informando que determinado software ou serviço, estava
inacessível.
Muitas vezes, já havia se passado várias horas desde a queda, que poderia ter ocorrido em um momento em que poucas pessoas, ou mesmo ninguém, estivesse usando o serviço. Desse modo, se ficássemos sabendo de primeira mão, poderíamos resolver o problema antes que o mesmo impactasse na produção.
Resolvemos, então, aumentar o leque de opções que o Nagios dispunha para nos avisar, que no momento estava resumido a enviar e-mails (o que, obviamente, não é lá muito eficiente).
A primeira opção foi fazer com que ele nos enviasse um SMS, solução amplamente abordada Internet afora, com várias "receitas de bolo". Implementamos a solução, que também se mostrou um tanto deficiente, pois a rede da operadora móvel algumas vezes falha, e a mensagem acaba não sendo recebida, ou, muitas vezes, as mensagens são configuradas para serem recebidas de maneira silenciosa, e, quando notávamos o recebimento da mesma, o problema já tinha longa data de existência.
Levantei, então, a possibilidade do Nagios realizar uma ligação para celulares previamente determinados, utilizando para isso o servidor Asterisk. Entre sugerir e por mãos à obra foram minutos, e logo me dediquei à tarefa.
Todos que trabalham/trabalharam com Asterisk sabem que os arquivos inseridos em
/var/spool/asterisk/outgoing são processados, gerando ligações, tendo apenas que obedecer alguns critérios para que isso ocorra.
Eis um exemplo de um arquivo funcional:
Channel:DAHDI/g1/XXXXXXXX
Application: MP3Player
Data: /var/lib/asterisk/sounds/som.mp3
Este arquivo, quando inserido no
/var/spool/asterisk/outgoing, usará o canal DAHDI/g1, efetuando ligação para o número XXXXXXXX, e quando a ligação for atendida, executará o arquivo "som.mp3".
Pois bem, a base da ideia é essa.
Quando um host crítico cair, o Nagios deve compor um arquivo com estas características e enviar para o Asterisk, e o mesmo realizará a ligação, executando o arquivo MP3, o qual deve conter uma mensagem que explique qual foi o host/serviço que caiu.