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


10

每当monit守护程序停止或启动时,Monit都会发送警报。这是令人讨厌且无用的信息。

根据文档,我设置:

set alert user@mycompany.com but not on { instance }

...应将警报发送到该电子邮件,除非它们属于“实例”类别,该类别定义为启动/停止。

但是,我仍然会生成警报。这太烦人了。显然,我一定错过了一些东西。

我们正在运行Monit 5.2.4


难道这涵盖了这个问题?
ewwhite

Answers:


7

根据文档,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 important-messages@projectlocker.com ON { invalid, nonexist, timeout, resource, size, timestamp}
SET ALERT less-important-messages@projectlocker.com ON {action, permission, pid, ppid, instance, status}

这样可以成功地将邮件路由到我们关注的地址。您可以全局或本地设置它们,但是我们的警报只是全局的。

http://mmonit.com/monit/documentation/monit.html上“ SERVICE TESTS”(服务测试)下的子标题 与上述类型相当整齐。

对于服务器的每个计划的进程或功能,您应该能够用简单的英语提出对您而言重要的事情,并使该愿望与SERVICE TESTS中提到的一项测试相匹配。例如,如果我正在运行Apache,我知道我在乎:

  • PID文件中的PID是否仍在运行?(不存在)
  • PID是否在我不知情的情况下发生变化?(pid)
  • 服务是否及时响应重启?(超时)

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


1
你如何知道你在乎什么?我找不到有关这些动作实际含义的良好文档。例如,“正常运行时间”似乎很有用,但您不在列表中。
dfrankow

我将编辑我的答案以发表评论。
13年

6

我正在使用Monit版本5.2.5,并且使用以下命令已停止通过Monit警报

set alert example@gmail.com not {instance}


1

根据这些示例,只需告诉它在N个时间段内重试一定次数后将其关闭即可


这不是给定受监视进程或服务停止或启动(这是新闻)的通知,而是monit守护程序本身停止/启动的通知,这始终是有意的,而不是新闻。
Winfield

1
噢,如果您删除全局中的“设置警报”行,并在服务节中添加显式警报,该怎么办?
Ben Lutgens 2011年

这样效果更好。.只需在支票中设置警报电子邮件即可。.删除全局电子邮件。
迈克,

1

我无法在monit中解决此问题,因此不得不在monit电子邮件上构建一层处理,以在传递之前通过拦截它们来过滤掉这些monit实例通知。

我们使用寻呼机职责来收集和分发来自monit和其他几个系统的通知,因此在这种情况下,我在Monit服务上添加了一个过滤规则,使用基于主题的正则表达式过滤掉monit实例通知电子邮件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.