Вы находитесь на странице: 1из 5

15/4/2014

Nagios enviando alertas via WhatsAPP [Artigo]

Nagios enviando alertas via WhatsAPP


Autor: Gleison <gleison.r2 at gmail.com>
Data: 14/04/2014
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 nmero/CHIP:
Neste caso, um nmero de Celular. Este ser responsvel por registrar-se junto aos servidores do
WhatsAPP e enviar as mensagens de alertas.
Obs: use um nmero/chip apenas para esta funo. Se registrado posteriormente, via Smartphone, por
exemplo, a aplicao deixar de funcionar. Os servidores do WhatsAPP s permitem a utilizao/registro
em um nico equipamento por vez.
4. Dependncias:
python 2.6 ou superior (python26)
python26-libs
python26-argparse
python26-dateutil
Obs: estou usando CentOS.
* Importante: este artigo no aborda a instalao de um servidor Nagios. Sendo assim, partimos do
principio de que voc j tem um ambiente com o Nagios funcionando.

Instalao

yowsup
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14686

1/5

15/4/2014

Nagios enviando alertas via WhatsAPP [Artigo]

1. Instalando as dependncias
# yum install python26 python26-libs python26-argparse python26-dateutil
Obs: caso os pacotes no estejam disponiveis, tente instalar algum repositrio, como: epel, remi,
rpmforge, etc.
2. Baixando o yowsup:
# cd /opt
# wget https://github.com/tgalal/yowsup/archive/yowsup-master.zip --no-check-certificate
# unzip yowsup-master.zip
3. Configurando o yowsup:
# cd yowsup-master/src
# chmod +x yowsup-cli
# cp config.example zapzap.config
cc=55 #cdigo do Pas(BR)
phone=55+DDD+NUMERO #Exemplo 559182820000
id=Nagios Alerta
password=VAMOS REQUISITAR

4. Registrando o Nmero:
# ./yowsup-cli -r sms -c zapzap.config
status: sent
retry_after: 3605
length: 6
method: sms

Onde:
-r, --requestcode :: solicita o cdigo de registro.
sms :: recebe uma mensagem de texto com o cdigo de registro.
-c, --config :: arquivo de configurao que contm o nmero do WhatsAPP.
Em seguida, ser recebido um sms contendo o cdigo de registro.
4.1 Ativando o registro:
# ./yowsup-cli -R 123-456 -c zapzap.config
status: ok
kind: free
pw: aGGVSOGy6+OsMl0Ctz5nAc5tvO0=
price: US$0.99
price_expiration: 1400041960
currency: USD
cost: 0.99
login: 559182820000
type: existing
expiration: 1428155655

Onde:
-R, --register :: Comando para registrar o nmero WhatsAPP.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14686

2/5

15/4/2014

Nagios enviando alertas via WhatsAPP [Artigo]

123-456 :: cdigo recebido via sms.


-c, --config :: arquivo de configurao que contm o nmero do WhatsAPP.
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
Connecting to c.whatsapp.net
Authed 559182820000
Sent message
Got sent receipt

Onde:
-s, --send :: Comando de envio de mensagem.
559182189171 :: Nmero de destino contendo cdigo do Pas + DDD.
-w, --wait :: Quando usado o -s(--send) a conexo no ir fechar at que o servidor (WhatsAPP)
tenha recebido a mensagem.
-c, --config :: arquivo de configurao que contm o nmero do WhatsAPP.
Obs: como foi dito anteriormente, utilizamos apenas os comandos request, register e send.
Porm, existem outros comandos. Para isso:
# ./yowsup-cli -h

Nagios
1. 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/yowsupmaster/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
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14686

3/5

15/4/2014

Nagios enviando alertas via WhatsAPP [Artigo]

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 24x7
service_notification_period 24x7
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 gleison.r2@gmail.com
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 Servio:
Altere dentro do seu arquivo de um Servio, as seguintes linhas.
define service {
.
.
.
event_handler notify-by-wapp
contacts nagiosadmin
.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14686

4/5

15/4/2014

Nagios enviando alertas via WhatsAPP [Artigo]

.
}
* Importante: lembre-se sempre de verificar no Nagios, se as configuraes esto corretas antes de tentar
reiniciar.
# nagios -v /etc/nagios/nagios.cfg
Total Warnings: 0
Total Errors: 0

Testando
Existem vrias formas de simular um teste.
Eu sempre realizo bloqueando a chegada do servidor Nagios a determinado Host, ou Servio via
IPtables. Assim, tenho como testar a falha em um servio ou no host, sem que ocorra parada nos
mesmos.
HOST (Exemplo Ping):
# iptables -I OUTPUT -p icmp -d HOST_MONITORADO -j DROP
SERVIO (Exemplo SMTP):
# iptables -I OUTPUT -p tcp -d HOST_MONITORADO --dport 25 -j DROP

Consideraes
Espero que tenha sido direto.
No entanto, sempre ocorrem dvidas, uma vez que o mundo Open Source proporciona isso de voc
poder trabalhar suas idias, no ficando amarrado a ambientes fechados, trazendo os mais variados
"labs".
Quaisquer dvidas estamos ai.
[]s

http://www.vivaolinux.com.br/artigo/Nagios-enviando-alertas-via-WhatsAPP
Voltar para o site

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14686

5/5

Вам также может понравиться