domingo, 14 de fevereiro de 2016

Zabbix notificando pelo Whatsapp

Olá pessoal, nesse post vamos ensinar a integrar o zabbix com o Yowsup, software para uso do whatsapp no linux, não vou entrar no assunto do zabbix, e também não vou explicar a instalação do mesmo, pois ja foi feito um tutorial aqui no blog, estamos usando a mesma instalação que foi usada naquele post.

Vamos começar instalando as dependências do Yowsup

use os seguinte comando :

apt-get install python python-argparse python-dateutil python-py python-all libjpeg-dev unzip python-setuptools python-pillow python-dev python-pip build-essential python-protobuf python-pycryptopp libncurses5-dev python-pip
 agora vamos baixar o yowsup

cd /
mkdir yowsup
cd yowsup
 wget http://www.bytez.com.br/yowsup/master.zip
 após baixar, vamos descompactar  e vamos instalar

unzip master.zip
cd yowsup-master
./setup.py install

 Pronto, yowsup instalado.

Ativando o Yowsup


como tudo mundo sabe para o whatsapp funcionar, temos que ter um número de celular ( sim, não pode estar ativo no whatsapp, se estiver ele vai parar de funcionar no celular e vai ficar somente no linux ), então vamos criar o arquivo de configuração do yowsup.

vi /etc/zap.config

e vamos colocar o seguinte conteúdo no arquivo

cc=55                               #Código do país
phone=554999650265    #Número de telefone com código de país e ddd
id=Bytes Inteligencia      #Invente uma ID
password=

vamos ter que fazer um comando

pip install python-axolotl

após isso vamos registrar ele

 yowsup-cli registration -r sms -c /etc/zap.config
 o retorno deve ser :

 INFO:yowsup.common.http.warequest:{“status”:”sent”,”length”:6,”method”:”sms”,”retry_after”:1805}

status: sent
retry_after: 1805
length: 6
method: sms
e o celular toca, com um código, no meu caso 349-758 e então damos o seguinte comando

yowsup-cli registration -R 349-758 -c /etc/zap.config
 e então o retorno deve ser

INFO:yowsup.common.http.warequest:{"status":"ok","login":"554999650265","type":"existing","pw":"iKAk+E+Mgwp5GjBEKR2CU5LDKms=","expiration":4444444444.0,"kind":"free","price":"US$0.99","cost":"0.99","currency":"USD","price_expiration":1458115328}

status: ok
kind: free
pw: iKAk+E+Mgwp5GjB321312R2CU5LDKms=
price: US$0.99
price_expiration: 1458115328
currency: USD
cost: 0.99
expiration: 4444444444.0
login: 554999650265
type: existing
 Copiamos o campo pw, e entramos no arquivo de configuração novamente

vi /etc/zap.config

 e o deixamos assim

cc=55                   #Código do país
phone=554999650265      #Número de telefone com código de país e ddd
id=Bytes Inteligencia   #Invente uma ID
password=iKAk+E+Mgw3123123123CU5LDKms=

Pronto.

Agora vamos testar o envio de mensagem


vamos usar o seguinte comando para testar o envio

yowsup-cli demos -s NUMERO_DESTINO “MENSAGEM” -c /etc/zap.config
 no meu caso

yowsup-cli demos -s 554999335937 “Teste do Yowsup” -c /etc/zap.config

meu celular gera uma notificação, e ...



Pronto, nosso linux está enviando mensagens pelo whatsapp, agora vamos integrar com o zabbix

Script Zabbix


Vamos criar o script para integração com o zabbix, primeiramente vamos achar a pasta de script de alertas

 find /  -name alertscripts

o meu retorno foi (usar conforme o seu ) :

/usr/local/share/zabbix/alertscripts
e então vamos criar o script :

vi /usr/local/share/zabbix/alertscripts/whatsapp_zabbix.sh

e arrumar o seguinte conteudo :

#!/bin/sh

sudo yowsup-cli demos -s $1 "$3" -c /etc/zap.config

vamos dar permissão para ele

chmod +x /usr/local/share/zabbix/alertscripts/whatsapp_zabbix.sh

e então vamos testar ele

cd /usr/local/share/zabbix/alertscripts/
./whatsapp_zabbix.sh 554999335937 . "Teste do script"

o retorno deve ser :

INFO:yowsup.demos.sendclient.layer:Message sent

Yowsdown

e então o celular toca...

Dando permissão Sudo ao usuário Zabbix


Precisamos editar o arquivo sudoers, para que o usuário Zabbix possa rodar o script. Para isso:

vi /etc/sudoers

Adicione o seguinte conteúdo:

zabbix ALL=NOPASSWD: ALL

Defaults:zabbix    !requiretty

Configuração no zabbix

no nosso zabbix de teste ja temos um Host configurado, e uma trigger usando protocolo ICMP, no nosso teste vamos desligar o host, Por favor não façam isso em um ambiente em produção, estamos usando dispositivos em bancada.

vamos configurar o script

Acesse o menu “Administração > Tipos de Mídia” e preencha dessa forma:



clique em ADD

e então vamos criar a midia no usuario

Acesse o menu “Administração > Usuários"

Do lado direito no menu drop-down, selecione “Usuários”

Selecione o usuário desejado e depois a guia “Mídia”

Clique em “Adicionar” e preencha:


Clique em ADD e depois atualizar

agora vamos criar a ação, aqui vamos configurar a mensagem que vai chegar pra gente, use sua criatividade.

Para configurar a ação, acesse o menu “Configuração > Ações”

Clique no botão “Criar ação”



vamos configurar a condição, eu deixei dessa forma, porém podem verificar sua real necessidade.


Agora acessamos a guia “Ações”

Clicamos em “Nova” e preenchemos


Importante nesse estagio é deixar conforme está ali, para que assim funcione normalmente, como pode ver temos dois add, clicamos no de cima primeiro e vai ficar dessa forma :



e após isso clique em ADD


agora vamos derrubar o host para que assim possamos ver a notificação.

e meu celular gera uma notificação e então :



Obrigado pessoal, por ver o tutorial até o final, qualquer dúvida podem entrar em contato com a gente.

14 comentários:

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
    Respostas
    1. tenta substituir o "Teste do Yowsup" por somente Teste, pode ser que esteja problema na variavel "

      Excluir
  2. da este erro na hora de instalar o Yowsyp (./setup.py install_

    File "/usr/lib/python2.7/ctypes/wintypes.py", line 23, in
    class VARIANT_BOOL(_SimpleCData):
    ValueError: _type_ 'v' not supported

    tem alguma ideia pra corrigir?

    ResponderExcluir
  3. É possível direcionar alertas especificos para contatos especificos?
    Por exemplo, tive um alerta sobre banco de dados essa mensagem no whatsapp chegaria para mim que sou admin e para o analista DBA, um alerta de algum site, chegaria para um analista de sistemas e para mim.

    ResponderExcluir
    Respostas
    1. sim, basta vc criar usuários restritos aos grupos de hosts e criar as mídias nos usuários.

      Excluir
  4. Ai pessoal estou tentando instalar seguindo os passos acima mais nao consigo aparece um erro como este que colei abaixo, tem alguma forma de me ajudar ja tentei varias maneiras diferentes

    404 Not Found [IP: 91.189.91.13 80]
    Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.0.0_1.0.1-4ubuntu5.33_i386.deb 404 Not Found [IP: 91.189.91.13 80]
    Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_1.0.1-4ubuntu5.33_i386.deb 404 Not Found [IP: 91.189.91.13 80]
    Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-doc_1.0.1-4ubuntu5.33_all.deb 404 Not Found [IP: 91.189.91.13 80]
    E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

    ResponderExcluir
  5. Olá após o comando
    "yowsup-cli demos -s MEU NUMERO “Teste do Yowsup” -c /etc/zap.config



    Traceback (most recent call last):
    File "/usr/local/bin/yowsup-cli", line 5, in
    pkg_resources.run_script('yowsup2==2.4.48', 'yowsup-cli')
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 528, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1401, in run_script
    exec(script_code, namespace, namespace)
    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli", line 323, in

    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli", line 231, in process

    File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli", line 279, in startSendClient

    File "build/bdist.linux-x86_64/egg/yowsup/demos/sendclient/stack.py", line 24, in __init__
    File "build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/__init__.py", line 1, in
    File "build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py", line 3, in
    File "/usr/local/lib/python2.7/dist-packages/axolotl/util/keyhelper.py", line 3, in
    from ..identitykeypair import IdentityKeyPair
    File "/usr/local/lib/python2.7/dist-packages/axolotl/identitykeypair.py", line 1, in
    from .state.storageprotos import IdentityKeyPairStructure
    File "/usr/local/lib/python2.7/dist-packages/axolotl/state/storageprotos.py", line 9, in
    from google.protobuf import symbol_database as _symbol_database
    ImportError: cannot import name symbol_database


    Ambiente Ubuntu 14.04

    ResponderExcluir
  6. [root@localhost yowsup-master]# yowsup-cli demos -s 5585998204410 "Teste" -c /etc/zap.config
    yowsup-cli v2.0.15
    yowsup v2.5.0

    Copyright (c) 2012-2016 Tarek Galal
    http://www.openwhatsapp.org

    This software is provided free of charge. Copying and redistribution is
    encouraged.

    If you appreciate this software and you would like to support future
    development please consider donating:
    http://openwhatsapp.org/yowsup/donate


    Authentication Error: not-authorized

    ResponderExcluir
    Respostas
    1. Tente tirar o 9 da frente do telefone ficaria yowsup-master]# yowsup-cli demos -s 558598204410 "Teste" -c /etc/zap.config

      tire o 9 da frente também do phone no arquivo de configuração zap.config

      Excluir
  7. Estou com esse Erro Authentication Error: not-authorized ja tirei o 9 e continua.
    Apos tirar o nove tem que refazer a ativação do SMS ?

    ResponderExcluir