Zabbix 4.0 + Alertas no Telegram via Bot


Vamos aprender como receber os alertas do zabbix através do telegram.

Para instalação do Zabbix 4.0
Instalação do Zabbix 4.0 / 3.4 / 3.0 no Debian 9 Stretch com banco de dados MariaBD

Criando nosso bot

Abra APP do telegram e procure por @BotFather Comece uma uma conversa com ele.

Agora digite /newbot para criar um novo bot. Após o comando você vai dar um nome “Bot Legal RR”. Em seguida é necessário digitar o nome de login sendo obrigatório terminar com bot “legallrr_bot”. Você vai ter um retorno com token que vamos utilizar em seguida.

Nosso token para acessar a API HTTP:
757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0

Agora procure pelo seu bot e comece uma conversa com ele e envie uma mensagem de teste para o mesmo, pois vamos precisar descobrir o ID do seu usuário, para que ele possa lhe enviar as mensagens.

Agora vamos acessar a seguinte URL https://api.telegram.org/botTOKEN/getUpdates para descobrir o ID do usuário que enviou a mensagem.
Ex.: https://api.telegram.org/bot757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0/getUpdates

{"ok":true,"result":[{"update_id":649208620,
"message":{"message_id":2,"from":{"id":221122111,"is_bot":false,"first_name":"Rudimar","last_name":"Remontti","username":"remontti","language_code":"pt-br"},"chat":{"id":201149282,"first_name":"Rudimar","last_name":"Remontti","username":"remontti","type":"private"},"date":1541210279,"text":"Testando"}}]}  

Você pode criar um grupo também e adicionar seu bot nele, após adiciona-lo envia uma mensagem como /teste para que possamos coletar o ID do grupo.

{"update_id":649208622,
"message":{"message_id":4,"from":{"id":221122111,"is_bot":false,"first_name":"Rudimar","last_name":"Remontti","username":"remontti","language_code":"pt-br"},"chat":{"id":-252697045,"title":"Grupo Legal","type":"group","all_members_are_administrators":true},"date":1541210975,"text":"/teste","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}

Note que o nome do grupo meu com um “” no inicio do ID.

Para testarmos se o envio esta funcionando, abra seu navegador e cole a seguinte URL:
https://api.telegram.org/botTOKEN/sendMessage?chat_id=ID&text=Minha%20Mensagem
Ex.: https://api.telegram.org/bot757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0/sendMessage?chat_id=-252697045&text=Minha%20Mensagem
https://api.telegram.org/bot757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0/sendMessage?chat_id=221122111&text=Mensagem%20Direta

Vamos instalar o curl, uma ferramenta para comando para transferência de dados com sintaxe URL.

# apt install curl

O diretório padrão no zabbix para os scripts fica em /usr/lib/zabbix/alertscripts/.
(Obs: No tutorial Zabbix 3.0.x com notificações via Telegram nos alteramos o valor de AlertScriptsPath, então caso você seja um leitor que quer apenas migrar, volte o diretório esta em /opt/telegram)

Vamos criar o arquivo telegram

# vim /usr/lib/zabbix/alertscripts/telegram
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
 
TOKEN="ALTERE-PELO-SEU-TOKEN"
 
USER=$1
SUBJECT=$2
 
curl --silent --output /dev/null "https://api.telegram.org/bot$TOKEN/sendMessage?chat_id=$USER&text=$SUBJECT"
 
exit 0

De permissão para executar, em seguida vamos criar um atalho em /usr/bin/ e alterar as permissões para o usuário do zabbix.

# chmod  777 /usr/lib/zabbix/alertscripts/telegram
# ln -s /usr/lib/zabbix/alertscripts/telegram /usr/bin/telegram
# chown zabbix. -R /usr/lib/zabbix/alertscripts

Agora execute em seu terminal

# telegram "-252697045" "Mensagem via Terminal para o grupo"
# telegram "221122111" "Mensagem via Terminal para o grupo"

Integrando o Telegram com o Zabbix

Se você recebeu as mensagens agora vamos ao nosso zabbix.
Clique em: AdministraçãoTipos de mídiasCriar tipo de mídia

Nome: Telegram
Tipo: Script
Nome script: telegram
Parâmetros do script
{ALERT.SENDTO}
{ALERT.SUBJECT}

Ativo: Sim


Clique em: Adicionar

Agora vá em: AdministraçãoUsuários e sobre o usuário Admin

Com as opções do usuário aberto clique na aba Mídia e em Adicionar

Tipo: Telegram
Enviar para: ID-Do-Grupo/ID-Usuário

Adicionar

Atualizar

Agora vamos criar a ação que fará o envios dos alertas.
Menu: ConfiguraçõesAçõesCriar ação

De um nome para sua ação
Nome: Reportar Problema no Telegram
Crie uma no Nova condição: Incidente não suprimido

Na aba Operações
Assunto padrão:

{HOST.NAME}{TRIGGER.NAME} = {ITEM.NAME1} {ITEM.VALUE1}

Operação: Clique em Nova Mais campos se abrirão, agora em Enviar para Usuário Clique em Adicionar e Selecione o Usuário Admin qual configuramos a mídia. Na opção Enviar apenas para: Selecione Telegram, e em seguida Adicionar

Vamos repetir a mesma coisa na aba Operações de recuperação
Mas com o Assunto padrão:

{HOST.NAME}{TRIGGER.NAME} = {ITEM.NAME1} {ITEM.VALUE1}

Pode clicar agora em Adicionar

Pronto! Agora precisamos gerar um incidente para ver se nosso alerta será enviado para o Telegram.
No meu caso vou fazer uma edição /etc/bind/named.conf.options qual possuo um template que criei onde ele verifica a cada modificação no arquivo e me envia um alerta vfs.file.cksum[/etc/bind/named.conf.options].diff(0)}>0


Bingo! Tudo certo, nosso sistema de envio de mensagem está concluído!

Gostou? Deixe seu comentário ficarei feliz em saber que lhe ajudei, e se tiver qualquer pergunta deixe-a também, se preferir acesse o menu Contato lá você encontra meios de falar comigo!

Abraço!

Fontes: https://core.telegram.org/bots & https://www.zabbix.com/documentation/

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

1 Resultado

  1. Sérgio Lackmann disse:

    Show Rudimar, obrigado por compartilhar conosco. Um grande abraço!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *