Não é possível obter o monit para executar ações "exec"

1

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?

    
por Jim Miller 20.02.2014 / 18:49

1 resposta

4

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
    
por 20.02.2014 / 21:16

Tags