Como posso acionar um evento do Monit quando um serviço é reativado?

1

Dada uma configuração como esta:

check host web1 address web1
    if failed host web1 port 80 protocol http
    then exec "/usr/local/bin/failover.sh -h web2"

Posso detectar se o web1 retornou do estado de falha e executar uma ação de "failback"?

Se eu fosse apenas para detectar se estava funcionando, eu estaria executando o comando failover a cada daemon segundos, e não quero fazer isso se não precisar; ele forneceria entradas e alertas de log desnecessários.

    
por crb 05.07.2010 / 13:46

1 resposta

1

Obrigado a Eric Pailleau pela sugestão que levou a uma resposta de trabalho:

check host web1 address web1
    if failed host web1 port 80 protocol http
        then exec "/bin/bash -c '/usr/bin/test ! -f /var/tmp/web-failover && ( /usr/local/bin/failover.sh -h web2 ; touch /var/tmp/auth-failover )'"
    else if succeeded
        then exec "/bin/sh -c '/usr/local/bin/failover.sh -h web1 ; rm -f /var/tmp/web-failover)'"

É estranho, mas se você chamar o comando / bin / bash, o monitor não parece executar o comando. Eu suspeito que ele acha que já executou o comando, então não se incomoda. Não parece se importar em executar o primeiro comando repetidamente!

    
por 11.08.2010 / 13:00