需求:
因项目需求,需要给项目组的leader 发送zabbix 邮件告警;之前都是把所有告警发送给运维就行了,没有设置其他的告警接受对象,并且zabbix 是根据主机群组 区分不同的项目。
环境
- zabbix-server 5.0.12。
- 主机群组: test-dev。
- 接受对象: 用户名:pm-user1 邮箱地址: xxx@qq.com。
- 告警媒介: Email(HTML)。
第一步: 添加Email 告警媒介。
PS: 具体配置可能存在版本差异。
配置Email告警媒介:
Zabbix控制台——>管理——>报警媒介类型——>Email (HTML)。
- SMTP服务器地址: smtp.exmail.qq.com。
- SMTP 服务端口,SSL 就填465。
- SMTP HELO :exmail.qq.com。
- SMTP电邮: 邮箱账户地址。
- 安全链接,选择SSL/TLS。
- SSL验证对段,勾选上。
- SSL验证主机,勾选上。
- 认证,用户名和密码。
- 用户名称/密码, 邮箱账户地址/授权码。
- Message format,选择HTML。
- 更新。
邮件功能测试:
返回报警媒介类型,选择刚刚创建的Email(HTML) 类型 后面的 测试 按钮。
输入 收件人邮箱地址。
收到测试的邮件。
第二步: 创建用户群组,并添加用户。
创建用户群组:
Zabbix控制台——>管理——>用户群组——>右上角,创建用户群组。
- 组名: test-dev。
- 添加。
创建用户:
Zabbix控制台——>管理——>用户——>右上角,创建用户。
配置用户信息:
- 别名: pm-user1。
- 姓氏: pm。
- 群组: test-dev 【刚刚创建的群组名称】。
- 密码: 自定义。
- 语言: 中文(zh_CN)。
- 每页行数: 1000 【默认的太少】。
添加用户的报警媒介:
- 类型: Email(HTML)。
- 收件人: 收件人邮箱地址。
- 当启用时:1-7,00:00-24:00 【也就是7*24小时接收报警媒介的告警信息】。
- 如果存在严重性则使用: 勾选全部 告警等级分类。
- 添加。
最后别忘了点击 ,添加 按钮。
第三步: 配置zabbix 动作。
配置动作:
Zabbix控制台——>配置——>动作——>右上角,创建动作。
- 配置名称: test-dev项目组邮件告警。
- 条件: 分别添加两个条件。
- 新的触发条件1: 类型: 【主机群组】 ,操作者: 【等于】,主机群组: 【test-dev 项目】,添加。
- 新的触发条件2: 类型: 【触发器警示度】,操作者:【大于等于】,严重性: 【未分类】,添加。
- 计算方式: 和 (同时满足) A+B。
- 也就是说:满足下面的条件即可触发动作来发送邮件告警。
主机群组 等于 test-dev项目 + 触发器示警度 大于等于 未分类
这里在演示一个复杂的 计算方式:
- 计算公式: (A and B) or (C and D ) or (C and E )。
- 也就是说:满足下面任意一个条件即可触发动作来发送邮件告警。
触发器示警度 大于等于 信息 + 主机群组是test-dev2 触发告警
主机群组等于 nj-zabbix-server + 触发器 是 【nj-zabbix_server 主机 代理状态异常,请检查】
主机群组等于 nj-zabbix-server + 触发器 是【 nj-zabbix_server VPN 异常!!!请登录确认】
配置操作:
- 默认操作步骤持续时间: 1m。
- 操作, 添加 ——> 操作类型:【 发送消息 】, Send to users:【 pm-user1 】,仅送到: 【 Email (HTML) 】, Custom message : 【 勾选上,自定义消息】。
- 主题:生产环境-故障 {TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
- 消息。
<table border="1" bordercolor="black" cellspacing="0px" cellpadding="4px">
<tr >
<td>告警主机td>
<td bgcolor="#FF3333">{HOSTNAME1}td>
tr>
<tr>
<td>告警时间td>
<td>{EVENT.DATE} {EVENT.TIME}td>
tr>
<tr>
<td>告警等级td>
<td>{TRIGGER.SEVERITY}td>
tr>
<tr>
<td>告警信息td>
<td>{TRIGGER.NAME}td>
tr>
<tr>
<td>告警项目td>
<td>{TRIGGER.KEY1}td>
tr>
<tr >
<td>问题详情td>
<td bgcolor="#FF3333">{ITEM.NAME}: {ITEM.VALUE}td>
tr>
<tr>
<td>当前状态td>
<td>{TRIGGER.STATUS}: {ITEM.VALUE1}td>
tr>
<tr>
<td>事件IDtd>
<td>{EVENT.ID}td>
tr>
table>
- Add:
- 默认操作步骤持续时间: 1m
- 恢复操作, 添加 ——> 操作类型:【 发送消息 】, Send to users:【 pm-user1 】,仅送到: 【 Email (HTML) 】, Custom message : 【 勾选上,自定义消息】
- 主题:生产环境 故障恢复!!!
- 消息
<table border="1" bordercolor="black" cellspacing="0px" cellpadding="4px">
<tr>
<td>当前状态td>
<td bgcolor="#66ff66">{TRIGGER.STATUS}: {ITEM.VALUE1}td>
tr>
<tr>
<td>告警主机td>
<td>{HOSTNAME1}td>
tr>
<tr>
<td>告警时间td>
<td>{EVENT.DATE} {EVENT.TIME}td>
tr>
<tr>
<td>告警等级td>
<td>{TRIGGER.SEVERITY}td>
tr>
<tr>
<td>告警信息td>
<td>{TRIGGER.NAME}td>
tr>
<tr>
<td>告警项目td>
<td>{TRIGGER.KEY1}td>
tr>
<tr >
<td>问题详情td>
<td bgcolor="#66ff66">{ITEM.NAME}: {ITEM.VALUE}td>
tr>
<tr>
<td>事件IDtd>
<td>{EVENT.ID}td>
tr>
table>
- Add。
- 最后别忘了点击 ,添加 按钮。
完整动作配置,如下图:
第四步: 模拟测试。
手动修改一个test-dev项目 里的触发器,使之触发告警。
告警邮件:
告警恢复邮件:
参考:
zabbix 官方手册 https://www.zabbix.com/documentation/5.0/zh/manual/appendix/macros/supported_by_location。