Acho que você deve configurar o comando exec
para que funcione como esperado:
if cpu usage (user) > 10% then
exec "/bin/bash -c '/bin/echo user limit >> /tmp/monit-status-log'" as uid someuser and gid somegroup
Eu tenho uma instalação monit
em funcionamento no CentOS 6.5. Os eventos estão sendo detectados e os e-mails de alerta estão sendo enviados, mas estou tentando fazer com que outras coisas aconteçam quando um evento é disparado, por meio do recurso exec
, e nenhum deles está funcionando.
Por exemplo, eu tenho uma regra como:
if cpu usage (user) > 10% then
exec "/bin/echo 'user limit' >> /tmp/monit-status-log" as uid someuser and gid somegroup
A regra é disparada apropriadamente sob o carregamento da cpu, mas nada é gravado no arquivo (cuja configuração de proteção é rw-rw-rw).
O arquivo de log de uma execução parece correto, acho que:
[PST Feb 20 09:31:04] info : 'linux2.example.com' Monit reloaded
[PST Feb 20 09:31:31] info : Reinitializing monit daemon
[PST Feb 20 09:31:31] info : Awakened by the SIGHUP signal
[PST Feb 20 09:31:31] info : Reinitializing monit - Control file '/etc/monit.conf'
[PST Feb 20 09:31:31] info : Shutting down monit HTTP server
[PST Feb 20 09:31:32] info : monit HTTP server stopped
[PST Feb 20 09:31:32] info : Starting monit HTTP server at [*:2812]
[PST Feb 20 09:31:32] info : monit HTTP server started
[PST Feb 20 09:31:32] info : 'linux2.example.com' Monit reloaded
[PST Feb 20 09:32:32] error : 'linux2.example.com' cpu user usage of 24.4% matches resource limit [cpu user usage>10.0%]
[PST Feb 20 09:32:32] info : 'linux2.example.com' exec: /bin/echo
[PST Feb 20 09:33:32] info : 'linux2.example.com' 'linux2.example.com' cpu user usage check succeeded [current cpu user usage=0.0%]
Quaisquer pensamentos ou conselhos?