Use o Monit para monitorar um site usando um plugin nagios

1

Eu tenho uma página da web que às vezes dá uma página em branco com um status de 200 e eu quero reiniciar automaticamente o serviço quando isso acontecer. Para fazer isso eu quero usar Monit e um plugin nagios que permite pesquisar texto na página em vez disso, apenas verificar o status, mas meu problema é que monit leva muito tempo para detectar quando a página está inoperante e reiniciar o serviço muito de vezes, mesmo quando está funcionando bem novamente.

Meu arquivo de configuração do Monit:

check program nginx with path "/etc/monit/files/check_nginx.sh"
    every 1 cycle
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"
    if status != 0 then restart

Como Monit não permite passar argumentos, estou usando este script simples no bash:

#!/bin/bash
/etc/monit/files/check_http -H 127.0.0.1 -w 5,0 -c 10,0 -p 88
exit $?

Quando o nagios está em execução, ele é detectado sem problemas por Monit, mas quando eu paro o daemon, demorou cerca de 2 ciclos para detectar que está inativo (isso é aceitável porque são 2 minutos). Depois de detectar o problema, o Monit executa um comando de reinicialização sem problema:

CEST Sep 26 18:31:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:31:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:31:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:31:47] info     : 'nginx' start: /etc/init.d/nginx

Tudo bem, mas o problema é que não detecta quando está ativo novamente e continua reiniciando o serviço a cada ciclo até que eu desative o serviço Monit:

[CEST Sep 26 18:31:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:31:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:31:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:31:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:32:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:32:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:32:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:32:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:33:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:33:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:33:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:33:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:34:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:34:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:34:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:34:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:35:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:35:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:35:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:35:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:36:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:36:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:36:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:36:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:37:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:37:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:37:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:37:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:38:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:38:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:38:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:38:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:39:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:39:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:39:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:39:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:40:47] info     : 'nginx' status succeeded
[CEST Sep 26 18:44:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:44:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:44:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:44:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:45:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:45:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:45:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:45:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:46:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:46:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:46:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:46:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:47:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:47:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:47:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:47:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:48:26] info     : Shutting down monit HTTP server
[CEST Sep 26 18:48:26] info     : monit HTTP server stopped
[CEST Sep 26 18:48:26] info     : monit daemon with pid [4187] killed

Eu testei o script bash para ver se detecta quando o serviço está ativo novamente e está funcionando bem, então parece que o Monit não atualiza o status ou não tenta executar o comando novamente.

Alguém sabe o que pode estar acontecendo ?, porque não sei o que fazer ...

Obrigado !!

    
por Daniel Carrasco Marín 29.09.2016 / 16:03

1 resposta

0

Corrigido. Parece ser um bug da versão do Ubuntu, porque eu baixei a versão mais recente (5.19.0) e agora está funcionando bem, mesmo com argumentos.

Saudações !!

    
por 04.10.2016 / 18:54

Tags