1. Home /
  2. Plugins /
  3. Software /
  4. OpMon /
  5. OpMon – Notificações via Slack
  1. Home /
  2. Plugins /
  3. OpMon – Notificações via Slack

OpMon – Notificações via Slack

Objetivo

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

Público-alvo

Administradores do OpMon que necessitam adicionar notificações via Slack.

Configurando o Slack

Para começar precisamos de um Webhook, uma URL do slack para direcionar o plugin para um determinado canal (grupo no Slack).

Na área de busca por apps do Slack, pesquise por “webhook”:

 

 

Clique em “Adicionar ao Slack”:

 

 

Escolha o canal (grupo) que deve receber as notificações e clique em “Adicionar integração com o WebHooks de entrada”:

 

 

Pronto! Agora é só coletar sua URL:

 

Vamos para o terminal!

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

wget -O /usr/local/opmon/libexec/custom/notify_by_slack.py http://repo.opservices.com/rpms/plugins/notify_by_slack.py
chmod 755 /usr/local/opmon/libexec/custom/notify_by_slack.py
Atenção para a primeira linha do plugin onde está o shebang, se você usar outra versão ou caminho para o Python é importante alterar:
#!/usr/bin/env python3
Para conferir em qual diretório está o binário do Python você pode usar o seguinte comando:
whereis python

Agora vamos para a interface do OpMon!

Acesse o menu “Ferramentas” e clique no submenu “Configurações”:

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”.

Adicione o novo comando de notificação para “hosts”. Configure conforme as diretivas abaixo:

  • Command Name: host_notify_by_slack
  • Command Line:/usr/local/opmon/libexec/custom/notify_by_slack.py –webhook ‘insira a URL AQUI’ –object_type ‘host’ –notificationtype ‘$NOTIFICATIONTYPE$’ –hoststate ‘$HOSTSTATE$’ –hostname ‘$HOSTNAME$’ –hostaddress ‘$HOSTADDRESS$’ –output ‘$HOSTOUTPUT$’ –date ‘$LONGDATETIME$’
  • Command Description: Notificação de hosts via Slack.

Após preencher o campo clique em Modify Command.

Confira na imagem abaixo como deve ficar:

Não esqueça de alterar a URL da API do Slack (webhook) na área destacada acima, dentro das aspas simples. 

Agora vamos fazer o mesmo para serviços; mas como ele irá receber outros argumentos, crie um novo comando com as diretivas abaixo:

  • Command Name: services_host_by_slack
  • Command Line:/usr/local/opmon/libexec/custom/notify_by_slack.py –webhook ‘insira a URL AQUI’ –object_type ‘service’ –notificationtype ‘$NOTIFICATIONTYPE$’ –servicestate ‘$SERVICESTATE$’ –hostname ‘$HOSTNAME$’ –servicedesc ‘$SERVICEDESC$’ –output ‘$SERVICEOUTPUT$’ –date ‘$LONGDATETIME$’
  • Command Description: Notificação de serviços via Slack.

Confira na imagem abaixo:

Por fim, precisamos configurar um contato para essa notificação!

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) Após a adição do contato, precisamos alterar os comandos de notificação. Para isso, navegue até a aba Notification Commands:

d) Adicione o comando de notificação “notify_host_by_slack”, configurado anteriormente, na área de comandos para alertas de host, conforme abaixo:

f) Faça o mesmo com o “services_notify_by_slack”, mas na área de serviços:

Não esqueça de realizar o export para efetivar todas as alterações!

Chegou a hora de testar! Basta rodar os comandos abaixo no terminal.

Teste para Hosts:

/usr/local/opmon/libexec/custom/notify_by_slack.py --webhook "COLOQUE SUA URL AQUI" --object_type host --notificationtype "UP" --hoststate "UP" --hostname "HostName Teste" --hostaddress "192.121.150.111" --output "192.121.150.111 is DOWN" --date "Thu Jun 24 11:22:43 -03 2021"

Teste para Serviços:

/usr/local/opmon/libexec/custom/notify_by_slack.py --webhook "COLOQUE SUA URL AQUI" --object_type service --notificationtype "UP" --servicestate "UP" --hostname "HostName Teste" --servicedesc "Service Test" --output "Service Test" --hostaddress "192.123.213.120" --date "Thu Jun 24 11:22:43 -03 2021"
Atenção: você pode receber alguma mensagem de erro por conta de algum módulo não instalado no Python, para corrigir basta instalar o mesmo e tentar novamente.
Se tudo deu certo, este será o resultado:

 
Updated on 30/09/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