Neste artigo vamos abordar uma configuração muito útil, a utilização do monitoramento de mensagens da ferramenta Zabbix através do Telegram. Com esta configuração você será capaz de personalizar suas mensagens e visualiza-las a partir de seu aplicativo de mensagens, otimizando assim o tempo de respostas para incidentes.
CONSIDERAÇÕES
Vamos levar em consideração que você já possua um ambiente com o Zabbix instalado e rodando normalmente. Caso queria aprender como instalar a ferramenta Zabbix no Linux, confira o artigo “Instalando Servidor Zabbix”. Também é necessário que você seja capaz de criar um bot pelo aplicativo Telegram. Caso queira aprender como criar um bot, confira nosso artigo “Configurando Telegram Bot”. Para este artigo estamos utilizando a distribuição Debian 8.8., mas você pode utilizar sua distro de preferência.
1) INSTALANDO PACOTES.
Para realizarmos a integração de nosso bot Telegram com a ferramenta Zabbix é necessário a instalação do pacote “python-pip“. Realize a instalação conforme ilustrado abaixo.
apt-get install python-pip
Agora a partir do python, vamos instalar a API do Telegram.
pip install pyTelegramBotAPI
2) CONFIGURANDO SCRIPT.
Com os pacotes instalados, vamos criar um script que fará interação com nosso Telegram Bot. Para isso, crie um arquivo em “/usr/local/share/zabbix/alertscripts” chamado “telegram.sh“, e com seu editor de texto de preferência, adicione o conteúdo conforme ilustrado abaixo.
vi /usr/local/share/zabbix/alertscripts/telegram.sh
#!/usr/bin/env python import telebot,sys BOT_TOKEN='121455441:EEASDa4DjfSjnSv7-g_nHaTrbaKdRggf3l4I' DESTINATION=sys.argv[1] SUBJECT=sys.argv[2] MESSAGE=sys.argv[3] MESSAGE = MESSAGE.replace('/n','\n') tb = telebot.TeleBot(BOT_TOKEN) tb.send_message(DESTINATION,SUBJECT + '\n' + MESSAGE)
A variável do “BOT_TOKEN” deve ser substituída pelo token do seu bot criado. Realize a alteração salve e saia da edição do arquivo. De permissão de execução ao arquivo “telegram.sh” e adicione o usuário “zabbix” como dono do arquivo, conforme ilustrado abaixo.
chmod +x telegram.sh chown -R zabbix telegram.sh
3) ADICIONANDO BOT AO GRUPO DE MONITORAMENTO.
Para que possamos usufruir do monitoramento entre equipes, precisamos criar um grupo no aplicativo Telegram, Ex: “Monitoramento Zabbix”. Realize a criação do grupo e adicione seu bot a ele.
Precisamos agora enviar uma mensagem para o bot a partir do grupo. Isso é importante, pois através da interação com o bot, conseguiremos pegar o ID do grupo que será utilizado nas configurações do Zabbix. Envie uma mensagem para o bot a partir do grupo criado conforme ilustrado abaixo.
/start@Jarbaszabbix_bot
Em seu navegador, vamos acessar as informações destinadas ao bot. Para isso, acesse o endereço ilustrado abaixo e substituindo a variável <BOT_TOKEN> pelo token do seu bot.
curl "https://api.telegram.org/bot<BOT_TOKEN>/getUpdates"
Você será capaz de visualizar algumas informações sobre seu bot, inclusive o ID do grupo no qual o mesmo pertence.
4) TESTANDO SCRIPT.
Com as devidas configurações realizadas, precisamos agora testar nosso script. Para isso, execute o mesmo a partir do shell, conforme ilustrado abaixo.
./telegram.sh <ID_USER> Teste Mensagem
A variável “ID_USER” deve ser substituída pelo ID do usuário disponibilizada no link executado no brower, conforme mencionado no passo 3. Se a execução do script for satisfatória, você verá em seu Telegram a mensagem “Teste Mensagem” enviada pelo bot.
5) ADICIONANDO SCRIPT AO ZABBIX.
Vamos realizar a integração de nosso script com a ferramenta Zabbix. Para isso acesse “Administração>Tipos de Mídias” é clique em “Criar tipo de mídia“. Feito isso, realize as configurações conforme ilustrado abaixo e em seguida clique em “Adicionar“.
Agora precisamos ir em “Administração>Usuários“, escolha o usuário, no nosso caso estamos utilizando o usuário Admin. Selecione “Mídia” e clique em “Adicionar“. Realize as configurações conforme ilustrado abaixo.
O Campo “Enviar para” deve ser substituído pelo ID do grupo de monitoramento no qual o bot pertence. Este ID pode ser encontrado pelo browser, através do link informado no passo 3. Realize a configuração e clique em “Adicionar“.
Por último, precisamos configurar nossas ações “Triggers“, no qual irão fornecer as informações necessárias através do script Telegram. Para isso, acesse “Configuração>Ações” e clique em “Criar ação“. Definas as configurações conforme ilustrado abaixo.
Também precisamos definir as operações. Acesse a opção “Operações” e clique no botão “Nova” localizado na parte inferior da tela, conforme ilustrado abaixo.
Defina o usuário, no nosso caso estamos utilizando o usuário Admin, e clique em “Adicionar“.
Feito isso, clique em “Adicionar” para finalizarmos a configuração da nova ação, conforme ilustrado abaixo.
Pronto, nossa ferramenta Zabbix já esta integrada com o Telegram.
CONCLUSÃO
Neste artigo foi abordado de maneira prática, a utilização do aplicativo Telegram para monitoramento de alertar emitidos pela ferramenta Zabbix.
Se você gostou deste post e através dele pude lhe ajudar, o que acha de aproximarmos nosso contato? Siga meu blog e me adicione no Linkedin, aproveite para classificar algumas das minhas competências/recomendações, este simples gesto faz toda a diferença.
Att,
Rafael Oliveira
SysAdmin
35 respostas
Olá! Estou com o seguinte erro quando tento enviar a mensagem de teste. Estou utilizando o Debian. Alguma luz?
root@zabbix:/usr/lib/zabbix/alertscripts# ./telegram.sh 949721472 Teste Mensagem
Traceback (most recent call last):
File “./telegram.sh”, line 2, in
import telebot,sys
File “/usr/local/lib/python2.7/dist-packages/telebot/__init__.py”, line 23, in
from telebot import apihelper, types, util
File “/usr/local/lib/python2.7/dist-packages/telebot/apihelper.py”, line 18, in
from telebot import types
File “/usr/local/lib/python2.7/dist-packages/telebot/types.py”, line 829
def add(self, *args, row_width=None):
^
SyntaxError: invalid syntax
Boa tarde JMoraes, tem uma galera ai que teve o mesmo problema a resposta esta nos comentários da uma olhada ai abr.
resolvi esse problema apenas editando a seguinte parte do script
de:
#!/usr/bin/env python
para:
#!/usr/bin/env python3
é logo nas primeiras linhas!
opa, otimo tutorial. estou com problemas ao executar o script, apresenta esse erro:
InsecurePlatformWarning
Sabe como proceder nesse caso?
O script funciona certinho e manda as msgs via SO. No Zabbix, eu vejo msg com status de enviado pelo Telegram, mas a msg não chega no aplicativo. Alguma ideia/dica do que pode estar acontecendo? Muito obrigado!
Pode ser o id do bot que não esta configurado, da uma revisada no artigo, talvez passou por algo despercebido, abr.
Muito bom o artigo, com um pouco de pesquisa consegui instalar no centos 7
.
Abraços !
Bom dia William, que bom que pude ajudar. Abr!