Monit programa de reinicialização de configuração

1

Eu tenho configuração de monit assim:

check process unicorn
with pidfile /tmp/pids/unicorn.0.pid
start program = "/etc/init.d/unicorn start"
stop program = "/etc/init.d/unicorn stop"
restart program = "/etc/init.d/unicorn reload"
if mem is greater than 250.0 MB for 2 cycles then restart
if cpu is greater than 22% for 3 cycles then alert
if cpu is greater than 25% for 2 cycles then restart

Mas parece que sempre que o monit tenta recarregar o aplicativo (por exemplo, devido à memória > 250MB), ele emite uma parada e, em seguida, um início, em vez de usar o programa de reinicialização. Existe uma maneira de dizer ao monit para executar o reinício em vez disso? Desde a emissão, uma parada e uma partida fazem com que o site desça por um momento.

    
por Phuong Nguyen 26.08.2014 / 08:06

2 respostas

1

Estou vendo o mesmo problema que você relatou. Eu não sei porque o 'programa de reinicialização' não é usado para reiniciar. No entanto, a solução alternativa que estou usando é esta:

check process unicorn
with pidfile /tmp/pids/unicorn.0.pid
start program = "/etc/init.d/unicorn start"
stop program = "/etc/init.d/unicorn stop"
if mem is greater than 250.0 MB for 2 cycles then restart
if cpu is greater than 22% for 3 cycles then alert
if cpu is greater than 25% for 2 cycles then exec "/etc/init.d/unicorn reload"

Note que deixei a verificação 'if mem' para que ela pare / inicie. Isto é porque eu presumo que a recarga provavelmente não vai ajudar se você tiver um vazamento de memória, portanto, um stop / start é provavelmente necessário. Mas ajuste como achar melhor.

Antes de pesquisar o código fonte e corrigi-lo (ou instalar uma versão mais recente e descobrir se já está corrigido), esta é provavelmente a melhor opção.

    
por 16.02.2017 / 04:49
0

Qual versão do monit você está usando?

você sintaxe para reiniciar parece legítimo

você verificou a interface da web para garantir que a configuração fosse analisada como assistida?

documentação afirma

RESTART restarts the service and send an alert. Restart is performed by calling the service's registered restart method or by first calling the stop method followed by the start method if restart is not set.

The method Monit use for restart is to first execute the stop-program, then wait (up to 30s) for the process to stop and then execute the start-program and wait (30s) for it to start.

    
por 02.08.2016 / 12:03

Tags