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