No debian jessie, configurei o monit para verificar os% de encaminhamentos de porta específicos deHAproxy
, e para reiniciá-lo, se falhar assim:
check process haproxy with pidfile /run/haproxy.pid
group www-data
start program = "/bin/systemctl start haproxy.service"
stop program = "/bin/systemctl stop haproxy.service"
if failed port 8080 protocol http request "/checker" then restart
if failed port 8081 protocol http request "/checker" then restart
if failed port 8082 protocol http request "/checker" then restart
if 8 restarts within 8 cycles then unmonitor
Eu sei que é possível configurar noalert email
em um ambiente check
específico. Gostaria de saber se é possível fazer o mesmo para o if
em particular no mesmo check
. Neste caso em particular, gostaria que o monitor me alertasse apenas se a verificação em port 8082
tivesse falhado, mas não para os outros 2.
Eu tentei adicionar algo assim:
check process haproxy with pidfile /run/haproxy.pid
group www-data
start program = "/bin/systemctl start haproxy.service"
stop program = "/bin/systemctl stop haproxy.service"
if 8 restarts within 8 cycles then unmonitor
check host site-a with address localhost
noalert email@address
depends haproxy
if failed port 8080 protocol http request "/checker" then exec "/usr/bin/monit restart haproxy"
check host site-b with address localhost
noalert email@address
depends haproxy
if failed port 8081 protocol http request "/checker" then exec "/usr/bin/monit restart haproxy"
check host site-c with address localhost
depends haproxy
if failed port 8082 protocol http request "/checker" then exec "/usr/bin/monit restart haproxy"
Essa configuração funciona, mas eu preciso de exec monit
como um programa externo e gostaria de saber se existe uma maneira de fazer isso diretamente em if construct
dentro do mesmo check
. Se eu usar o seguinte, monit
será iniciado sem reclamar, mas não considera o noalert
instruct:
check process haproxy with pidfile /run/haproxy.pid
group www-data
start program = "/bin/systemctl start haproxy.service"
stop program = "/bin/systemctl stop haproxy.service"
if failed port 8080 protocol http request "/checker" then
restart
noalert email@address
if failed port 8081 protocol http request "/checker" then
restart
noalert email@address
if failed port 8082 protocol http request "/checker" then restart
if 8 restarts within 8 cycles then unmonitor
Alguma ideia?
Atenciosamente