Requisitos
1. Servidor Linux Rodando o Nagios:
Testado em CentOS 5.5 e 6.4 x86_64. No entanto, nada impede de ser implementado em outras distros. 2. yowsup: Este é o ‘cara’ deste artigo. O que é: escrito em Python, é uma Interface de Linha de Comando utilizada para interagir com o WhatsAPP, para ser mais claro, é um WhatsAPP via linha de comando. Dentre todas as funcionalidades deste, usaremos apenas 3, vistas mais adiante. 3. Um número/CHIP: Neste caso, um número de Celular. Este será responsável por registrar-se junto aos servidores do WhatsAPP e enviar as mensagens de alertas. Obs: use um número/chip apenas para esta função. Se registrado posteriormente, via Smartphone, por exemplo, a aplicação deixará de funcionar. Os servidores do WhatsAPP só permitem a utilização/registro em um único equipamento por vez. 4. Dependências:
Obs: estou usando CentOS. * Importante: este artigo não aborda a instalação de um servidor Nagios. Sendo assim, partimos do principio de que você já tem um ambiente com o Nagios funcionando. |
|
Instalação
yowsup1. Instalando as dependências # yum install python26 python26-libs python26-argparse python26-dateutil Obs: caso os pacotes não estejam disponiveis, tente instalar algum repositório, como: epel, remi, rpmforge, etc. 2. Baixando o yowsup: # cd /opt 3. Configurando o yowsup: # cd yowsup-master/src 4. Registrando o Número: # ./yowsup-cli -r sms -c zapzap.config Onde:
Em seguida, será recebido um sms contendo o código de registro. 4.1 Ativando o registro: # ./yowsup-cli -R 123-456 -c zapzap.config Onde:
Obs: inserir o campo “password=(item 3)” no arquivo zapzap.config com o valor pw da saida do comando acima(4.1). pw :: aGGVSOGy6+OsMl0Ctz5nAc5tvO0= 5. Enviando uma mensagem: # ./yowsup-cli -s 559182189171 “Testando ZapZap CLI – VOL” -w -c zapzap.config Onde:
Obs: como foi dito anteriormente, utilizamos apenas os comandos request, register e send. Porém, existem outros comandos. Para isso: # ./yowsup-cli -h Nagios1. Configurando os alertas do Nagios: 1.1 Criando o comando de envio. Para isso, devemos alterar o arquivo command-plugins.cfg do Nagios. No meu caso, está localizado em /etc/nagios/objects/. Inserir as linhas: define command{
command_name notify-by-wapp command_line /opt/yowsup-master/src/yowsup-cli –send $CONTACTPAGER$ “$HOSTADDRESS$ $HOSTALIAS$: $SERVICEDESC$ is $SERVICESTATE$” –wait –config /opt/yowsup-master/src/zapzap.config } 1.2 Criando o contato: Este será o contato que irá receber os alertas do Nagios pelo WhatsAPP. Para isso, vamos alterar o arquivo contacts.cfg do Nagios. No meu caso, está em /etc/nagios/objects/. define contact {
contact_name nagiosadmin alias Nagios Admin contactgroups admins host_notifications_enabled 1 service_notifications_enabled 1 host_notification_period 24×7 service_notification_period 24×7 host_notification_options d,u,r,f,s service_notification_options w,u,c,r,f,s host_notification_commands notify-by-wapp service_notification_commands notify-by-wapp can_submit_commands 1 retain_status_information 1 retain_nonstatus_information 1 email [email protected] pager 559182189171 use gleison register 1 } Obs: caso você possua um contato já configurado, basta alterar/inserir as seguintes linhas. host_notification_commands notify-by-wapp
service_notification_commands notify-by-wapp pager 559182189171 1.3 Configurando o Alerta de um Host: Altere dentro do seu arquivo de um Host as seguintes linhas. define host {
. . . event_handler notify-by-wapp contacts nagiosadmin . . } 1.4 Configurando o Alerta de um Serviço: Altere dentro do seu arquivo de um Serviço, as seguintes linhas. define service {
. . . event_handler notify-by-wapp contacts nagiosadmin . . } * Importante: lembre-se sempre de verificar no Nagios, se as configurações estão corretas antes de tentar reiniciar. # nagios -v /etc/nagios/nagios.cfg TestandoExistem várias formas de simular um teste. Eu sempre realizo bloqueando a chegada do servidor Nagios a determinado Host, ou Serviço via IPtables. Assim, tenho como testar a falha em um serviço ou no host, sem que ocorra parada nos mesmos. HOST (Exemplo Ping): # iptables -I OUTPUT -p icmp -d HOST_MONITORADO -j DROP SERVIÇO (Exemplo SMTP): # iptables -I OUTPUT -p tcp -d HOST_MONITORADO –dport 25 -j DROP ConsideraçõesEspero que tenha sido direto. No entanto, sempre ocorrem dúvidas, uma vez que o mundo Open Source proporciona isso de você poder trabalhar suas idéias, não ficando amarrado a ambientes fechados, trazendo os mais variados “labs”. Quaisquer dúvidas estamos ai. []s |