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 !!
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 !!
Tags monit