我在一些用户笔记本电脑/台式机上安装了 monit,这样它就可以确保几个进程始终在运行/根据需要重新启动。但由于设备定期关闭/重新启动,我经常收到如下消息,这些消息我既不想要也不关心,因为它们告诉我系统已重新启动。我想抑制 monit 启动/停止时似乎自动出现的消息。
Subject: monit alert -- Monit instance changed
Service - system_slaveone
Event - Monit instance changed
Action - start
Date - Thu, 18 Apr 2013 07:53:51
Host - slaveone.example.local (slaveone)
Description - Monit started.
但是一旦系统启动,我确实想收到一些关于我希望得到通知的服务/资源的警报,所以简单地禁用电子邮件并不是我想要做的。
如何在不完全禁用电子邮件的情况下抑制启动/重启时的消息?
答案1
哦没问题...
要抑制特定检查的 Monit 警报,您需要使用无警报指示。
例如,我可以检查每周重新启动的 cron 守护程序。也许我不希望每周日的收件箱里都有这封电子邮件……
check process cron
noalert [email protected]
with pidfile "/var/run/crond.pid"
start program = "/sbin/service crond start"
stop program = "/sbin/service crond stop"
这适用于任何 Monit 检查,因此要处理系统的实例警报,您可以通过添加无警报在check system localhost
条目下:
check system localhost
noalert [email protected]
试试吧。这仍然会让任何实际服务/守护进程处于 Monit 保护之下,但会减少聊天。非常适合行为不端的应用程序...
check process nslcd
with pidfile "/var/run/nslcd/nslcd.pid" every 2 cycles
noalert ewwhite@bra**ers.com
start program = "/sbin/service nslcd start"
stop program = "/sbin/service nslcd stop"
if 10 restarts within 11 cycles then timeout
if cpu usage > 95% for 11 cycles then restart
if totalmemory > 128 MB then restart
答案2
为了在 monit 启动/停止时特别过滤掉电子邮件,您可以使用instance
事件过滤器:
set alert [email protected] not on { instance }
就像文档:
Event: | Failure state: | Success state:
---------------------------------------------------------------------
...
INSTANCE | "Monit instance changed" | "Monit instance changed not"
...