Estou vendo um problema com o config monit na configuração do daemon monit para despertar a cada poucas horas e começar a monitorar os processos que foram definidos para o estado "Não monitorado".
PROBLEMA:
Quando o monit muda para desmonitorar determinado processo, o status muda para "não monitorado" e o daemon monit NUNCA tentará iniciar o monitoramento deste processo novamente, mesmo quando o arquivo PID for atualizado com o novo PID correto e a PARADA de monitoramento para este processo para sempre, a menos que o daemon monit seja novamente ativado para esse processo manualmente, como abaixo.
Este daemon de despertar para cada processo pode ser configurado em determinados intervalos de tempo limite na configuração de monit deste processo, para evitar as armadilhas de acabar com o processo que vai para o estado "não monitorado" para sempre?
se 2 reinicia dentro de 3 ciclos, então o tempo limite {X horas} monitora o reinício
Obrigado.
Eu tenho esta configuração abaixo para um processo snmp.
# Check for cmaeventd process
check process cmaeventd with pidfile /var/run/cmaeventd.pid
group snmp-agents
start program = "/opt/hp/hp-snmp-agents/storage/etc/cmaeventd start"
stop program = "/opt/hp/hp-snmp-agents/storage/etc/cmaeventd stop"
if 2 restarts within 3 cycles then timeout
Por algum motivo, se o arquivo PID NÃO estiver preenchido corretamente (estou trabalhando para corrigi-lo), o monitor continuará tentando reiniciar o processo usando o arquivo pid vazio lançando os erros abaixo no log de monitoramento e, finalmente, "desmonte" depois que ele falhar em reiniciar dentro de 3 ciclos conforme configuramos.
mensagens de log:
[PST Feb 3 11:43:23] error : monit: Error reading pid from file '/var/run/cmaeventd.pid'
[PST Feb 3 11:43:24] error : monit: Error reading pid from file '/var/run/cmaeventd.pid'
[PST Feb 3 11:45:25] error : 'cmaeventd' service restarted 2 times within 2 cycles(s) - unmonitor
Monit status para esse processo após unmonitor:
Process 'cmaeventd'
status not monitored
monitoring status not monitored
data collected Tue Feb 3 12:10:25 2015
Despertando manualmente o daemon para este processo para iniciar o monitoramento novamente:
>monit monitor cmaeventd
This will awaken the monit daemon for this process and starts reading the PID file again and if successful it starts the monitoring back in.
Before awakening the monit daemon for this process:
---------------------------------------------------
logbash-3.1# ls -l /var/run/cmaeventd.pid
-rw-r--r-- 1 root root 1 Feb 3 00:00 /var/run/cmaeventd.pid
logbash-3.1# cat /var/run/cmaeventd.pid
logbash-3.1# ps -ef|grep cmaeventd |grep -v grep
root 13066 1 0 00:00 ? 00:00:00 cmaeventd -p 15 -l /var/log/hp-snmp-agents/cma.log
l
logbash-3.1# echo "13066" > /var/run/cmaeventd.pid
logbash-3.1# cat /var/run/cmaeventd.pid
13066
logbash-3.1# monit monitor cmaeventd
Do log:
[PST Feb 3 12:20:54] info : monitor service 'cmaeventd' on user request
[PST Feb 3 12:20:54] info : monit daemon at 23515 awakened
[PST Feb 3 12:20:54] info : Awakened by User defined signal 1
[PST Feb 3 12:20:54] info : 'cmaeventd' monitor action done
Status da monit:
Process 'cmaeventd'
status initializing
monitoring status initializing
data collected Tue Feb 3 12:20:54 2015
Altera para abaixo depois de algum tempo:
Process 'cmaeventd'
status running
monitoring status monitored
pid 13066
parent pid 1
uptime 12h 21m
children 0
memory kilobytes 2160
memory kilobytes total 2160
memory percent 0.0%
memory percent total 0.0%
cpu percent 0.0%
cpu percent total 0.0%
data collected Tue Feb 3 12:21:54 2015