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
#!/usr/bin/env python3
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.
/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"