Atualmente, tenho um cluster de HA de dois nós trabalhando usando o Pacemaker + Corosync. Meus nós estão rodando no Debian 8 (Jessie). Agora eu seria capaz de ser notificado quando ocorrerem alterações no cluster (recursos parar / iniciar, promover / rebaixar, mover ...).
Como os relatórios de e-mail são de 2008, gostaria de usar o Slack.
Para fazer isso, criei um script que usa curl
para postar uma mensagem no canal Slack da minha equipe, usando os webhooks do Slack . Meu script está usando variáveis de ambiente documentadas aqui: Pacemaker - 7.3 . Configurando Notificações via Agente Externo .
O script funciona bem quando executado manualmente no shell e é capaz de postar no canal especificado. Ele também registra em /var/log/ocf-notifier.log
.
Com base em esta resposta , criei um novo recurso no cluster usando o agente de recurso ocf:pacemaker:ClusterMon
do Pacemaker, que chama meu script personalizado ( /usr/local/bin/ocf-notifier
).
No entanto, notei que meu script simplesmente não é chamado quando ocorrem alterações no nó (tentei parar o recurso e encerrar completamente um nó).
Por isso, tentei executar o crm_mon
manualmente, da seguinte forma:
$ crm_mon -Arf --interval=2 -E /usr/local/bin/ocf-notifier -e '@jordan'
E veja se isso poderia acionar a coisa brincando com o cluster com outro shell. Como se constatou, crm_mon
foi capaz de ver as mudanças acontecendo no cluster (nó ficando offline, sendo o recurso interrompido / iniciado ...), mas meu script personalizado nunca piscou um olho. Meu arquivo de log personalizado permanece vazio e nada aparece no Slack, pois acredito que o script simplesmente não é chamado.
crm_mon
não chama o agente externo em eventos de cluster, como deveria com a opção -E
.
O que estou fazendo errado?