You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Monit配置文件中复用多邮箱特定邮件格式的优化方案咨询

Monit配置文件中复用多邮箱特定邮件格式的优化方案咨询

我太懂这种重复复制配置的痛苦了——每次改个邮件格式都要在N个check块里挨个改,不仅费时间还容易漏改!其实Monit本身就提供了两种很实用的方式来解决这个问题,不用再重复粘贴格式和邮箱列表:

方案一:用Monit宏(Macro)抽离重复内容

这是最直接的方式,把你重复用的邮件格式和收件人列表都定义成宏,之后在每个check里直接引用就行,完全不用复制粘贴:

首先在你的Monit主配置文件开头,先定义好需要复用的邮件格式和收件人宏:

# 定义邮件格式宏,每个对应你之前的FORMAT 1、FORMAT 2
DEFINE MAIL_FORMAT_1 {
  from: Monit Alert <monit@yourdomain.com>
  subject: [告警通知] $SERVICE 状态变更:$EVENT
  message: 服务名称:$SERVICE
           事件类型:$EVENT
           发生时间:$DATE
           主机地址:$HOST
}

DEFINE MAIL_FORMAT_2 {
  from: Monit 紧急告警 <monit-critical@yourdomain.com>
  subject: [紧急] $SERVICE 已停止运行!
  message: 请注意:核心服务 $SERVICE 于 $DATE 发生故障
           主机:$HOST
           请立即处理!
}

# 把多个收件人定义成一个宏,一次性引用
DEFINE ALERT_RECIPIENTS email1@domain.com, email2@domain.com

之后在写check规则的时候,直接用宏名代替重复的内容就好:

# 检查1:引用格式1和统一收件人
check process nginx with pidfile /var/run/nginx.pid
  alert ALERT_RECIPIENTS with mail-format MAIL_FORMAT_1

# 检查2:引用格式2和统一收件人
check process mysql with pidfile /var/run/mysqld/mysqld.pid
  alert ALERT_RECIPIENTS with mail-format MAIL_FORMAT_2

要是你有部分check需要不同的收件人组合,也可以多定义几个收件人宏,比如ALERT_RECIPIENTS_DEV、ALERT_RECIPIENTS_OPS,按需引用就行。

方案二:用包含文件拆分配置(适合复杂场景)

如果你的邮件格式特别复杂,或者想把格式配置和主规则分开维护,可以把宏定义单独放到一个文件里,然后在主配置里引用:

  1. 新建一个专门存放邮件格式的文件,比如/etc/monit/conf.d/mail-formats.monit,内容就是所有的宏定义:
# /etc/monit/conf.d/mail-formats.monit
DEFINE MAIL_FORMAT_1 {
  # 格式内容
}

DEFINE MAIL_FORMAT_2 {
  # 格式内容
}

DEFINE ALERT_RECIPIENTS email1@domain.com, email2@domain.com
  1. 在主Monit配置文件里添加引用:
# 引入邮件格式配置文件
include /etc/monit/conf.d/mail-formats.monit

# 接下来正常写你的check规则
check process nginx with pidfile /var/run/nginx.pid
  alert ALERT_RECIPIENTS with mail-format MAIL_FORMAT_1

这种方式的好处是,后续要修改格式或者收件人,只需要改这个单独的文件就行,不用动主配置,维护起来更清晰。

最后提醒一下,要确保你的Monit版本支持宏特性(一般5.10及以上版本都支持),可以用monit -V命令查看当前版本。

备注:内容来源于stack exchange,提问作者Ionut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:48:11