如何禁用Monit实例启动/停止警报?

每当monit守护进程停止或启动时,Monit都会发出警报。 这是令人讨厌的,没有用的信息。

根据文件,我设定:

set alert [email protected] but not on { instance } 

…应该向该电子邮件发送警报,除非它们位于“实例”类别(定义为启动/停止)。

不过,我仍然会收到警报。 这是超级烦人的。 显然我一定会错过一些东西。

我们正在运行Monit 5.2.4

我正在使用Monit版本5.2.5,并使用以下function停止了monit警报的通过

set alert [email protected] not {instance}

Monit可以根据文档生成一些警报:

 Event: | Failure state: | Success state: --------------------------------------------------------------------- action | "Action done" | "Action done" checksum | "Checksum failed" | "Checksum succeeded" bytein | "Download bytes exceeded" | "Download bytes ok" byteout | "Upload bytes exceeded" | "Upload bytes ok" connection | "Connection failed" | "Connection succeeded" content | "Content failed", | "Content succeeded" data | "Data access error" | "Data access succeeded" exec | "Execution failed" | "Execution succeeded" fsflags | "Filesystem flags failed" | "Filesystem flags succeeded" gid | "GID failed" | "GID succeeded" icmp | "Ping failed" | "Ping succeeded" instance | "Monit instance changed" | "Monit instance changed not" invalid | "Invalid type" | "Type succeeded" link | "Link down" | "Link up" nonexist | "Does not exist" | "Exists" packetin | "Download packets exceeded" | "Download packets ok" packetout | "Upload packets exceeded" | "Upload packets ok" permission | "Permission failed" | "Permission succeeded" pid | "PID failed" | "PID succeeded" ppid | "PPID failed" | "PPID succeeded" resource | "Resource limit matched" | "Resource limit succeeded" saturation | "Saturation exceeded" | "Saturation ok" size | "Size failed" | "Size succeeded" speed | "Speed failed" | "Speed ok" status | "Status failed" | "Status succeeded" timeout | "Timeout" | "Timeout recovery" timestamp | "Timestamp failed" | "Timestamp succeeded" uid | "UID failed" | "UID succeeded" uptime | "Uptime failed" | "Uptime succeeded" 

我们可以通过设置(修改地址来保护无辜者)来解决这个问题:

 SET ALERT [email protected] ON { invalid, nonexist, timeout, resource, size, timestamp} SET ALERT [email protected] ON {action, permission, pid, ppid, instance, status} 

这成功地将消息路由到我们关心的地址。 你可以将它们设置为globallly或本地,但我们的警报只是全球性的。

“服务testing”下的子标题: http : //mmonit.com/monit/documentation/monit.html与上述types非常相似。

对于您的服务器的每个计划过程或function,您应该能够用简单的英语提出对您来说重要的事情,并将其与“服务testing”中提到的其中一项testing相匹配。 例如,如果我正在运行Apache,我知道我在乎:

  • PID文件中的PID是否仍在运行? (nonexist)
  • 没有我的知识,PID变化了吗? (PID)
  • 服务是否及时地重新启动? (时间到)

对于轮询的自定义守护进程,我可能会关心日志文件是否定期更新状态消息(时间戳)。

根据这些例子,简单地告诉它在N个时间段内经过一定次数的重试之后将其closures。

我无法在monit中解决这个问题,必须在monit电子邮件上构build一个处理层,以便在交付之前通过截取这些monit实例通知来过滤掉这些通知。

我们使用寻呼机的职责,从monit和其他几个系统中累积和发送通知,所以在这种情况下,我使用基于主题的正则expression式在Monit服务上添加了一个过滤规则,以过滤掉monit实例通知电子邮件。