Objetivo
Demonstrar como configurar notificações via Teams para hosts e serviços no OpMon.
Público-alvo
Administradores do OpMon que necessitam adicionar notificações via Teams.
Configurando o Teams
Para começar precisamos de um Webhook, uma URL do Teams para direcionar o plugin para um determinado canal (grupo).
- Vá para o canal onde você deseja adicionar o webhook e selecione ••• mais opções na barra de navegação superior.
- Selecione Conectores no menu suspenso:
- Pesquise o Webhook de entrada e selecione Adicionar.
- Selecione Configurar, forneça um nome e carregue uma imagem para seu webhook, se necessário:
- A janela de diálogo apresenta uma URL exclusiva que mapeia para o canal. Copie e salve a URL do webhook, para enviar informações para Microsoft Teams e selecione Feito:
Ok, o webhook está disponível no canal Teams. Agora é só coletar sua URL!
Vamos para o terminal!
wget -O /usr/local/opmon/libexec/custom/notify_by_teams.py http://repo.opservices.com.br/rpms/plugins/notify_by_teams.py
chmod 755 /usr/local/opmon/libexec/custom/notify_by_teams.py
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_teams
- Command Line: /usr/local/opmon/libexec/custom/notify_by_teams.py ‘OpMon Notification: $NOTIFICATIONTYPE$’ ‘Status: $HOSTSTATE$ | Host: $HOSTNAME$ ($HOSTADDRESS$) | Info: $HOSTOUTPUT$ | Date: $LONGDATETIME$’ ‘URL-WEBHOOK‘
- Command Description: Notificação de hosts via Teams.
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 Teams (webhook) na área destacada acima, dentro das aspas simples.
Faça o mesmo para serviços; mas como ele irá receber outros argumentos, crie um novo comando com as diretivas abaixo:
- Command Name: services_notify_by_teams
- Command Line: /usr/local/opmon/libexec/custom/notify_by_teams.py ‘OpMon Notification: $NOTIFICATIONTYPE$’ ‘Status: $SERVICESTATE$ | Host: $HOSTNAME$ ($HOSTADDRESS$) | Service: $SERVICEDESC$ | Info: $SERVICEOUTPUT$ | Date: $LONGDATETIME$’ ‘URL-WEBHOOK‘
- Command Description: Notificação de serviços via Teams.
Compare com a imagem:
Por fim, precisamos configurar um contato para essas notificações!
a) Vá até 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_teams”, configurado anteriormente, na área de comandos para alertas de host, conforme abaixo:
f) Faça o mesmo com o “services_notify_by_teams”, 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 o comando abaixo no terminal:
/usr/local/opmon/libexec/custom/notify_by_teams.py 'RECOVERY: HOST 127.0.0.1 Service Check_File_Content is OK' 'OK - Search for ednilson on /tmp/file1.txt (3 found)' 'URL-WEBHOOK'
Algumas dicas para evitar contratempos:
- Validar se está instalado o módulo ‘requests’ do python. Use o comando abaixo para listas todos os modulos:
# python >>> help("modules")
- Verificar qual a versão padrão do python no ambiente
# python --version
Se for menor que 2.7, e houver uma versão mais nova instalada, basta alterar o shebang do plugin para usar o python mais novo (3, 3.4, etc), alterando a primeira linha do plugin (shebang).
#!/usr/bin/env python3
whereis python
Caso seja necessário instalar o modulo requests manualmente, você pode fazer o download clicando aqui.