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.

Instalação do Zabbix 2.4 no Debian 8

O que é Zabbix?

Zabbix é um software Open Source, de Alto nível projetado para monitorar e manter o controle de redes, servidores e aplicações em tempo real. Zabbix pode coletar diferentes tipos de dados que são usados para criar gráficos e históricos de por exemplo o trafego da interface X do servidor.

O Servidor tem a capacidade de Verificar os serviços de rede padrão ( HTTP ,  FTP , SMTP, IMAP , ICMP e Etc. ) sem a necessidade de instalar um software adicional nos hosts monitorados.

Neste tutorial vamos instalar e compilar o Servidor Zabbix, no Debian 8 Jessie com banco de dados back-end MySQL para armazenar dados coletados, PHP e Apache Web Server como a interface web


Neste tutorial foi usado debian 8 Jessie

Instalar as Dependências

Para poder compilar e instalar o zabbix a partir das fontes, o servidor precisa de uma serie de ferramentas e dependências instaladas no sistema tais como : construir -essenciais (necessário para compilar pacotes Debian de fontes ) , ferramentas de Devlopment ( para sistemas baseados em RedHat ) GCC ( acrônimo para GNU Compiler Collection ) , algumas ferramentas de rede http cli como ondulações e wget, e outras dependências necessárias para adicionar funcionalidades extras (apoio SNMP) .

Instale todos esses pacotes no sistema, porém para eles serem instalados temos que alterar nosso Sources List

Faça o seguinte comando :

vi /etc/apt/sources.list

deixe-a assim :

deb http://ftp.br.debian.org/debian stable main contrib non-free
deb-src http://ftp.br.debian.org/debian stable main contrib non-free

deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ jessie-updates main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

( caso não saiba usar o editor VI, apertando o D, apaga as linhas e o I libera para inserir, apertando ESC volta e digitando :wq, salva e sai )

Após isso usar os seguintes comandos:

apt-get update
apt-get upgrade


Agora vamos instalar as dependências


emitindo o seguinte comando ( OBS : Sempre em modo root ou usando Sudo ):

apt-get install build-essential gcc curl wget libsnmp-dev libcurl4-gnutls-dev libxml2-dev snmpd fping

além disso vamos instalar o banco de dados, vamos usar MariaDB com MySQL, durante a instalação será solicitado a criação da senha root do banco de dados

apt-get install mariadb-server mariadb-client libmysqld-dev   
quando a instalação do MariaDB terminar, use o seguinte comando:






 
 
mysql_secure_installation
 vai ter algumas opções que você vai ter que escolher entre Y ou N, somente na primeira opção onde diz para mudar a senha root você coloca N, o resto é tudo Y


Instalação do Web Server

 Agora vamos instalar o web server, com o Apache e PHP

use o seguinte comando:
apt-get install apache2 php5 php5-mysql php5-gd php5-cli php5-xmlrpc
 Após a instalação temos que alterar algumas configurações no PHP para que assim funcione corretamente.

vi /etc/php5/apache2/php.ini
 altere os seguintes campos, Dica: para encontrar os campos mais facilmente use o recurso de busca do VI, digitando no modo "ESC' o /e oque quer procurar como por exemplo ( /post ) ele vai te levar até o post.
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = America/Sao_Paulo
always_populate_raw_post_data = -1
 você pode ver as timezones suportas no link http://php.net/manual/en/timezones.php.

para que as mudanças tenham efeito vamos reiniciar o serviço

systemctl restart apache2.service

 Download e instalação do Zabbix 

vamos agora baixar e instalar o zabbix, na data de hoje entrei no site e peguei a ultima versão, porém quando você estiver vendo esse tutorial pode que tenha uma versão mais nova, você pode abrir no site (http://www.zabbix.com/download.php ) e baixar, ou usar a mesma versão que estou usando.

vamos fazer os seguintes comandos :

cd /
mkdir install
cd install
wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.7/zabbix-2.4.7.tar.gz
/zabbix_2.4.7.orig.tar.gz
após o download vamos descompactar o arquivo usando o seguinte comando ( Dica : se você estiver usando outra versão, digite o começo e aperte TAB, para que assim seja completado conforme a versão que você baixou. )

tar xfz zabbix_2.4.7.tar.gz
cd zabbix-2.4.7/

Pronto, está descompactado, agora vamos compilar


 ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
 agora que foi feito a configuração, execute o comando make para criar os binários instaláveis ​​(geralmente este passo leva mais tempo do comando para concluir a configuração ) e instalar Zabbix , emitindo o comando make install

make
make install
 Pronto, está instalado, porém temos que efetuar algumas configurações, vamos agora criar o usuario zabbix e dar privilégios a ele.

groupadd zabbix
useradd -g zabbix -d /usr/local/share/zabbix -s /bin/false zabbix
 

Configuração do banco de dados


agora vamos configurar o banco de dados, vamos seguir estes comandos:
Importante : substituir no campo 'senha' pela sua senha root do banco de dados.

mysql -u root -p
create database zabbix;
grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'senha';
grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'senha';
flush privileges;
exit

Após isso vamos importar as tabelas para o banco de dados, ela está na pasta /database/mysql/
vamos usar os seguintes comandos :

cd /database/mysql/
mysql -u zabbix -p zabbix < schema.sql
mysql -u zabbix -p zabbix < images.sql
mysql -u zabbix -p zabbix < data.sql

Pronto, banco de dados configurado

Configurando Apache para o Zabbix 

agora vamos configurar o apache para o zabbix, seguimos os seguintes passos :


rm /var/www/html/index.html
cd /install/zabbix-2.4.7
cp -rf frontends/php/* /var/www/html/
 agora vamos ativar o SSL

usermod -aG www-data zabbix
a2enmod ssl
a2ensite default-ssl
systemctl restart apache2.service
Pronto, apache configurado.

Configurando o zabbix server


vamos abrir o arquivo de configuração do zabbix

vi /usr/local/etc/zabbix_server.conf
 e vamos alterar as seguintes linhas

ListenPort=10051
LogFile=/var/log/zabbix_server.log
DBHost=localhost 
DBName=zabbix 
DBUser =zabbix
DBPassword=senha  ## Senha que você fez para o banco de dados
DBSocket=/var/run/mysqld/mysqld.sock
DBPort=3306

após editar, digitar :wq e enter

agora vamos criar o arquivo de log

touch /var/log/zabbix_server.log
chmod 775 /var/log/zabbix_server.log
chgrp zabbix /var/log/zabbix_server.log

e para finalizar vamos iniciar os serviços

/usr/local/sbin/zabbix_server
/usr/local/sbin/zabbix_agentd
/usr/local/sbin/zabbix_agent
vamos ver se o serviço está rodando, digite :

netstat -tulpn
 ele deve dar esse retorno:


Pronto, zabbix instalado.

Vamos abrir o ambiente web

digite o ip do seu servidor no navegador 

deverá abrir a seguinte pagina :


Apertamos Next


Aqui verificamos se está tudo Ok, e damos Next

Aqui é importante deixar igual, somente no password que você colocará sua senha, aperte test connection para verificar a conexão e em seguida next


Deixamos conforme a imagem e damos Next


Aqui vamos conferir todos os dados e antes de dar next, vamos entrar no SSH do servidor e dar o seguinte comando :

chown -R www-data /var/www/html/conf/   

E então damos Next



Após isso apertamos em Finish e a instalação está finalizada

e então vamos a tela de login, o usuario e senha padrão para acesso é admin/zabbix


Pronto, agora já temos nosso zabbix 2.4 instalado no debian 8

Obrigado por verem o tutorial até o final. Até o proximo.