Entre muitas possibilidades de monitoramento de processos locais ( escolha seu veneno ) é monit , eu faço algo assim em /etc/monit.d/system.conf
em máquinas centos;
check system localhost
if loadavg (1min) > 6 then alert
if loadavg (5min) > 6 then alert
if memory usage > 90% then alert
if cpu usage (user) > 90% then alert
if cpu usage (system) > 75% then alert
if cpu usage (wait) > 75% then alert
Eu imagino que você pode querer ser mais agressivo com as verificações, portanto, você pode querer configurar o daemon para executar verificações com mais freqüência, talvez a cada 30 segundos até que você tenha determinado o problema e, portanto, use um /etc/monit.conf
como este;
set daemon 30
set mailserver localhost
#set alert [email protected] but not on { instance }
set alert [email protected]
include /etc/monit.d/*
set httpd port 2812
allow 127.0.0.1
Se o monit não fornecer informações suficientes no alerta de email padrão, você poderá ter monit scripts personalizados de execução em condições de alerta, como assim;
check system localhost
if loadavg (1min) > 6 then exec "/bin/bash -c '/usr/bin/top -n1 -b | /bin/mail -s top-output [email protected]'"
if loadavg (5min) > 6 then exec "/bin/bash -c '/usr/bin/top -n1 -b | /bin/mail -s top-output [email protected]'"
if cpu usage (user) > 90% then exec "/bin/bash -c '/usr/bin/top -n1 -b | /bin/mail -s top-output [email protected]'"
(obviamente depende do comando mail sendo configurado, mas você pode usar a raiz local em vez disso e apenas verificar manualmente)