1. Home /
  2. OpMon notificações via Telegram

OpMon notificações via Telegram

Objetivo

Demonstrar como configurar notificações via Telegram para hosts e para serviços no OpMon.

Público-alvo

Administradores do OpMon que necessitam adicionar notiicações via Telegram.

Pré-Requisitos

  • Python 3.6
  • Pip 3 (Gerenciador de pacotes/móduloss do Python)
  • Módulo Python – twx.botapi (verificar módulo, acessando o Python e usando o comando help(“modules”)  ele irá listar os módulos existentes no Python.

Importante:

Caso queira mais informações sobre como instalar os módulos do Python, acesse as documentações abaixo:

Instalando e gerenciando pacotes do Python com PIP – Knowledge Base (opservices.com.br)

Configurando o Telegram

 Vamos começar criando um Bot no Telegram, inicie uma conversa com o “BotFather”, conforme a imagem abaixo: O Bot do Telegram será o remetente dos alertas do OpMon.

Você receberá um token da API e também o UserID do bot:

  • Token: 200194008:AAEG6djWC9FENEZaVIo3y3vZm24P3GTMetw
  • UserID: 200194008

Vamos acessar o terminal!

Faça o download do script  opmon_telegram.py e altere a permissão do arquivo que fará o envio de alertas via Telegram.

wget -O /usr/local/opmon/libexec/custom/opmon_telegram.py http://repo.opservices.com/rpms/plugins/opmon_telegram.py 
chmod 755 /usr/local/opmon/libexec/custom/opmon_telegram.py

Esta é a configuração que você precisa fazer no OpMon:

  1. Acesse o menu “Ferramentas” e submenu “Configurações”:
  2. Na área de atalhos (lado esquerdo da tela) clique em “Commands“, depois disso altere o Command Type” para “Notification Command”. E adicione um novo comando em “Add A New Command”.
  3. Adicione o novo comando de notificação para “hosts”. Configure as diretivas abaixo:
  • Command Name: notify-host-by-telegram
  • Command Line (Verificar antes de salvar, qual a localização do binário do Python 3.6, pode ser utilizado o seguinte comando – whereis python e substituir no comando abaixo, o caminho correto):
/usr/bin/python3.6 /usr/local/opmon/libexec/custom/opmon_telegram.py --token "Cole Seu TOKEN Aqui" --object_type host --contact "$CONTACTPAGER$" --notificationtype "$NOTIFICATIONTYPE$" --hoststate "$HOSTSTATE$" --hostname "$HOSTNAME$" --hostaddress "$HOSTADDRESS$" --output "$HOSTOUTPUT$"
  • Command Description: Notificação de hosts via Telegram.

Veja na imagem abaixo:

Não esqueça de alterar o token da API.

Agora iremos criar o comando de notificação para serviços. Vamos lá!

  1. Os passos para criação de notificação de serviços são os mesmos que foram feitos para os hosts.
  2. Configure as diretivas abaixo:
  • Command Name: notify-service-by-telegram
  • Command Line (Verificar antes de salvar o comando, qual a localização do binário do Python 3.6, pode ser utilizado o seguinte comando no servidor – whereis python e substituir no comando abaixo, o caminho correto):
  • /usr/bin/python3.6 /usr/local/opmon/libexec/custom/opmon_telegram.py --token "Cole Seu TOKEN Aqui" --object_type service --contact "$CONTACTPAGER$" --notificationtype "$NOTIFICATIONTYPE$" --servicestate "$SERVICESTATE$" --hostname "$HOSTNAME$" --servicedesc "$SERVICEDESC$" --output "$SERVICEOUTPUT$" --hostaddress "$HOSTADDRESS$" --date "$LONGDATETIME$"
  • Command Description: Notificação de serviços via Telegram.

Veja na imagem abaixo:

O plugin do OpMon Telegram é capaz de enviar alertas para um único contato ou para um grupo. Como você vai ver os ID’s de contato do Telegram são números e os ID’s de grupo do Telegram são números negativos.

Como obter seu UserID ou GroupID?

  1. Inicie uma conversa com o bot recém criado, neste caso “@my_opmon_bot” para obter o UserID.
  2. Adicione o Bot “@my_opmon_bot”, no seu grupo do Telegram para obter o GroupID.
  3. No navegador digite a url “https://api.telegram.org/bot<BOT_TOKEN>/getUpdates”, alterando o <BOT_TOKEN>, pelo token récem criado.
  4. Então temos o UserID  (1271831332) e o GroupID (-442654125), conforme a imagem abaixo:

 

 

 

 

 

Agora faremos a configuração dos contatos e grupo de contatos no OpMon.

a) Acesse o menu “Ferramentas” e o submenu “Configurações”.

b) Na área de atalhos (lado esquerdo da tela) clique em “Contacts“ e “Add A New Contact“.

c) Configure as diretivas de configuração do seu contato, alterando a diretiva “Phone”, pelo “UserID” do Telegram.

d) Após a adição do contato, teremos que reconfigurar os comandos de notificação.

e) Adicione o comando de notificação “notify-host-by-telegram”, configurado anteriormente.

f) Faça o mesmo com o “Service Notification Commands”.

Agora vamos testar o envio de notificações!!

  • opmon_telegram.py –token “Cole seu token aqui”  –object_type service –contact  “Cole aqui o UserID” –servicestate “WARNING” –hostname “hostname.domain.tld” –servicedesc “load” –output “WARNING – load average: 3.48 4.19 2.74”
  • opmon_telegram.py –token “Cole seu token aqui” –object_type service –contact “Cole aqui o UserID” –servicestate “CRITICAL” –hostname “hostname.domain.tld” –servicedesc “load” –output “CRITICAL – load average: 233.29 154.35 15.05”
  • opmon_telegram.py –token “Cole seu token aqui” –object_type service –contact  “Cole aqui o UserID” –servicestate “opmon_telegram.py –token “Cole seu token aqui”  –object_type service –contact  “Cole aqui o UserID” –servicestate “WARNING” –hostname “hostname.domain.tld” –servicedesc “load” –output “WARNING – load average: 3.48 4.19 2.74”
    opmon_telegram.py –token “Cole seu token aqui” –object_type service –contact “Cole aqui o UserID” –servicestate “CRITICAL” –hostname “hostname.domain.tld” –servicedesc “load” –output “CRITICAL – load average: 233.29 154.35 15.05”
    opmon_telegram.py –token “Cole seu token aqui” –object_type service –contact  “Cole aqui o UserID” –servicestate “OK” –hostname “hostname.domain.tld” –servicedesc “load” –output “OK – load average: 0.02 0.01 0.01″OK” –hostname “hostname.domain.tld” –servicedesc “load” –output “OK – load average: 0.02 0.01 0.01”

E este é o resultado: =D

Updated on 06/12/2021

Esse artigo foi útil para você?

Ficou com alguma dúvida?

Perguntas & Respostas

Participe da nossa comunidade e tire dúvidas ou compartilhe respostas e ideias.

Participar

Professional Support

Não encontrou a resposta que procura? Não se preocupe, estamos aqui para ajudar!

Abrir chamado

Treinamento Online

Através da plataforma Udemy, você encontra todos os treinamentos das nossas soluções.

Inscreva-se