Можно ли перенаправить вывод команды exec в журнал мониторинга?
check host example.org with address example.org
if failed port 80 protocol http for 2 cycles then
exec "/root/cloudflare.py >> /var/log/monit.log"
Кажется, это не работает:
[EST Mar 6 16:02:19] error : 'example.org' failed, cannot open a connection to INET[example.org:80] via TCP
[EST Mar 6 16:02:24] info : 'example.org' exec: /root/cloudflare.py
[EST Mar 6 16:02:24] error : 'nginx' process is not running
[EST Mar 6 16:02:24] info : 'nginx' trying to restart
[EST Mar 6 16:02:24] info : 'nginx' start: /etc/init.d/nginx
[EST Mar 6 16:02:24] error : monit: Error reading pid from file '/var/run/nginx.pid'
Как вы можете видеть, он записывает, что он вызвал сценарий, и сценарий действительно делает то, что от него ожидается, но направленный вывод не сохраняется в журнале. Конечно, если я бегу из командной строки.
Есть ли проблема с двумя процессами, пытающимися добавить в один журнал? или это слишком много для monit exec?
Если monit использует стандартные возможности системного журнала, взгляните на регистратор. Вы можете передать вывод своей команды через него, и каждая строка будет отображаться как новое сообщение в соответствующем файле журнала, например
echo "Hello Sweetie" | logger
помещает сообщение журнала в / var / log / messages в системе CentOS, которую я должен передать. Я не использую monit, но должно быть довольно просто выяснить, как направлять ваши сообщения в соответствующий журнал.