在停止/启动时抑制 Monit 消息‘Monit 实例已更改’

在停止/启动时抑制 Monit 消息‘Monit 实例已更改’

我在一些用户笔记本电脑/台式机上安装了 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"
...

相关内容