我使用 monit 来监控服务的状态,当服务关闭时,我想以相同的格式向多个收件人发送警报电子邮件。这是我的 monit 配置的一部分:
set mail-format { from: no-reply@gmail.com }
check host hostA with address hostA
alert userA@gmail.com
MAIL-FORMAT { # use local format
subject: redis is down on hostA
message: redis is down on hostA on port 6379
Yours sincerely,
monit
}
alert userB@gmail.com
MAIL-FORMAT { # use local format
subject: redis is down on hostA
message: redis is down on hostA on port 6379
Yours sincerely,
monit
}
if failed port 6379 retry 3 then exec "/monit/scripts/myscripts.sh"
Run Code Online (Sandbox Code Playgroud)
它有效,但有一些多余的东西(例如,2 个用户使用相同的 MAIL-FORMAT)。我将在同一个配置文件中使用多种电子邮件格式。Dose monit 是否支持使用相同且只有一种本地电子邮件格式的多个收件人?
来自官方文档:
如果您想向更多电子邮件地址发送警报消息,请为每个地址添加一组警报“电子邮件”语句。
在此之后,以下配置应该可以工作:
set mail-format { from: no-reply@gmail.com }
check host hostA with address hostA
alert userA@gmail.com
alert userB@gmail.com
MAIL-FORMAT { # use local format
subject: redis is down on hostA
message: redis is down on hostA on port 6379
Yours sincerely,
monit
}
Run Code Online (Sandbox Code Playgroud)
问候
编辑:
文档没有说明,但元素的位置可能在这里起作用。尝试在邮件格式声明之后定义警报地址。另外,请注意您在代码中使用了两种邮件格式声明 - 如果这不是必需的,请尝试仅使用一种(后者)。
set mail-format {
from: monit@foo.bar
reply-to: support@domain.com
subject: $SERVICE $EVENT at $DATE
message: Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.
Yours sincerely,
monit
}
alert userA@gmail.com
alert userB@gmail.com
Run Code Online (Sandbox Code Playgroud)