目录
[一、Zabbix 7.0 邮件报警](#一、Zabbix 7.0 邮件报警)
[1. 准备邮箱 SMTP 信息(以 QQ/163 / 企业邮箱为例)](#1. 准备邮箱 SMTP 信息(以 QQ/163 / 企业邮箱为例))
[2. Web 端配置报警媒介(Email)](#2. Web 端配置报警媒介(Email))
[3. 配置用户接收邮箱](#3. 配置用户接收邮箱)
[4. 配置触发器动作(触发→发邮件)](#4. 配置触发器动作(触发→发邮件))
[5. 测试与排错](#5. 测试与排错)
[二、Zabbix 7.0 企业微信告警(Webhook 机器人,7.0 原生支持)](#二、Zabbix 7.0 企业微信告警(Webhook 机器人,7.0 原生支持))
[1. 企业微信创建群机器人,获取 Webhook](#1. 企业微信创建群机器人,获取 Webhook)
[2. Zabbix 7.0 配置 Webhook 报警媒介(核心)](#2. Zabbix 7.0 配置 Webhook 报警媒介(核心))
[3. 配置用户接收媒介](#3. 配置用户接收媒介)
[4. 配置触发器动作(同邮件)](#4. 配置触发器动作(同邮件))
[5. 测试与排错](#5. 测试与排错)
[三、Zabbix 7.0 关键注意事项](#三、Zabbix 7.0 关键注意事项)
一、Zabbix 7.0 邮件报警
1. 准备邮箱 SMTP 信息(以 QQ/163 / 企业邮箱为例)
开启 SMTP、获取授权码(非登录密码)
- QQ 邮箱:smtp.qq.com,端口 465 (SSL)、587 (STARTTLS),授权码在「设置→账户→POP3/IMAP/SMTP 服务」
- 163 邮箱:smtp.163.com,端口 465 (SSL),授权码在「设置→POP3/SMTP/IMAP」
- 企业邮箱:按服务商提供的 SMTP 地址、端口、授权码
2. Web 端配置报警媒介(Email)
路径:管理 → 报警媒介类型 → 找到默认 Email → 编辑(7.0 界面路径:告警 → 媒介)
- 类型:电子邮件
- 邮件提供商:Generic SMTP(通用 SMTP)
- SMTP 服务器:smtp.qq.com / smtp.163.com
- SMTP 服务器端口:465(SSL)/ 587(STARTTLS)
- 连接安全:SSL/TLS(对应 465)或 STARTTLS(对应 587)
- SMTP HELO:zabbix-server(自定义,可留空)
- 发件人邮箱:你的发件邮箱(xxx@qq.com)
- 身份验证:勾选,用户名 = 发件邮箱,密码 =SMTP 授权码
- 消息格式:HTML(可选,美化告警)
- 保存更新
3. 配置用户接收邮箱
路径:管理 → 用户 → 选择 Admin → 媒体 → 添加
- 类型:Email
- 发送到:你的收件邮箱
- 启用:勾选,设置告警级别(如严重 / 警告)、时间范围
- 更新保存
4. 配置触发器动作(触发→发邮件)
路径:配置 → 动作 → 触发器动作 → 创建动作(7.0:告警 → 动作)
-
动作选项:名称 = 邮件告警,启用
-
条件:默认(所有触发器),可加过滤(如严重性≥警告)
-
操作(故障通知): 步骤:1-1,步骤持续 60s
操作细节:发送到用户组(管理员),仅发送到:Email
消息模板(直接复制):
bash【Zabbix告警】{TRIGGER.STATUS} 主机:{HOST.NAME} ({HOST.IP}) 时间:{EVENT.DATE} {EVENT.TIME} 级别:{TRIGGER.SEVERITY} 告警:{TRIGGER.NAME} 状态:{TRIGGER.STATUS} 事件ID:{EVENT.ID} -
恢复操作(故障恢复):同理配置恢复通知模板
-
保存并启用动作
5. 测试与排错
- 手动触发测试(如停止 zabbix-agent),查看:监测 → 告警
- 日志排查:tail -f /var/log/zabbix/zabbix_server.log
- 防火墙放行 465/587,确保 Zabbix Server 能访问 SMTP 服务器
二、Zabbix 7.0 企业微信告警(Webhook 机器人,7.0 原生支持)
1. 企业微信创建群机器人,获取 Webhook
- 企业微信 PC 端 → 新建告警群 → 右上角 "..." → 添加群机器人 → 新建(命名 Zabbix 告警)
- 复制 Webhook 地址(格式:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx),保存 key
2. Zabbix 7.0 配置 Webhook 报警媒介(核心)
路径:管理 → 报警媒介类型 → 创建媒体类型(7.0:告警 → 媒介 → 创建)
-
名称:企业微信机器人
-
类型:Webhook(7.0 原生支持,无需脚本文件)
-
参数(添加 4 个,顺序固定):
|-------------|------------------------|
| 参数名 | 值 |
| webhook_url | 你的完整 Webhook 地址 |
| subject | {ALERT.SUBJECT} |
| message | {ALERT.MESSAGE} |
| at_mobile | {ALERT.SENDTO}(@成员手机号) | -
脚本(直接粘贴,7.0 兼容 JS,markdown 格式):
bashtry { var params = JSON.parse(value); var webhook = params.webhook_url; var subject = params.subject || "Zabbix告警"; var msg = params.message || "无内容"; var at = params.at_mobile || ""; // 构造markdown消息 var content = "### " + subject + "\n" + msg; if (at) { content += "\n<@" + at + ">"; } var req = new HttpRequest(); req.addHeader("Content-Type", "application/json"); var data = { "msgtype": "markdown", "markdown": {"content": content} }; var resp = req.post(webhook, JSON.stringify(data)); return "OK: " + resp; } catch (e) { return "ERROR: " + e.toString(); } -
保存更新
3. 配置用户接收媒介
路径:管理 → 用户 → 选择用户 → 媒体 → 添加
- 类型:企业微信机器人
- 发送到:要 @的成员手机号(如 13800138000,留空则不 @)
- 启用、设置级别与时间 → 保存
4. 配置触发器动作(同邮件)
-
操作:发送到用户 / 组,仅发送到:企业微信机器人
-
消息模板(markdown,企微支持,直接复制):
bash**⚠️ Zabbix告警** **主机**:{HOST.NAME} **IP**:{HOST.IP} **时间**:{EVENT.DATE} {EVENT.TIME} **级别**:{TRIGGER.SEVERITY} **告警**:{TRIGGER.NAME} **状态**:{TRIGGER.STATUS} **事件ID**:{EVENT.ID} -
恢复模板同理,保存启用
5. 测试与排错
- 触发测试触发器,查看企业微信群是否收到 markdown 告警
- 排错:检查 Webhook key 正确、Zabbix 能访问qyapi.weixin.qq.com、脚本无语法错误、动作已启用
三、Zabbix 7.0 关键注意事项
- 7.0 界面路径:告警(原配置 / 管理)→ 媒介、动作,不要找错入口
- Webhook 是 7.0 原生能力,无需在服务器写 Python/Shell 脚本,直接在 Web 端写 JS 即可
- 邮件 / 企微都要在「动作」里关联触发器,否则不会发送
- 日志路径:/var/log/zabbix/zabbix_server.log,排查发送失败必看