zabbix配置邮件告警
Zabbix监控服务器、客户端都已经部署完成,被监控主机已添加完成,Zabbix监控运行正常。
Zabbix监控服务器设置邮件报警,当被监控主机宕机或达到触发器预设值进,会自动发送报警邮件到指定的邮箱。
文章目录
- 1 服务器配置
- 2 Zabbix后台web介面配置
- 2.1 1、管理 —- 报警媒介类型 —– 创建媒介类型。
- 2.2 2、名称可以随便自己定义 —– 类型选择脚本 —– 脚本名称输入上一步编写的发送邮件的脚本名称 —-
- 2.3 3、管理 —- 用户 —– 选择admin用户。(自己创建一个用户也可以)
- 2.4 4、报警媒介 —- 添加。
- 2.5 5、类型输入刚刚创建的报警媒介类型sendmail脚本 — 输入个人邮箱(多个用英文逗号隔开)用于接收报警邮件 — 启动打勾 —- 添加。
- 2.6 6、选择更新。
- 2.7 7、权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)
- 2.8 8、配置 —- 动作 — 触发器 —- 创建动作。
- 2.9 9、动作 —- 名称自定义 — 设置一条新的触发条件 —- 启用 —- 添加。(触发条件需要根据实际情况设置)
- 2.10 10、定义操作。
服务器配置
1 编写邮件发送脚本sendmail.sh
脚本存放路径 /web/data/zabbix4/share/zabbix/alertscripts
#!/usr/bin/python # -*- coding: UTF-8 -*- from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr import smtplib import sys address=sys.argv[1].split(',') #mail_info mailInfo = { "from": "xx@xx.com", "to": address, "cc": ["xx.xx@xx.com"], "smtp": "smtphm.qiye.163.com", "username": "xx@xx.com", "password": "xxx", "mailtheme": sys.argv[2], "mailcontent": sys.argv[3], "mailencoding": "utf-8" } def sendsmtp(mailInfo): def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) msg = MIMEText(mailInfo['mailcontent'], 'plain', 'utf-8') msg['From'] = _format_addr('<%s>' % mailInfo['from']) msg['To'] = ','.join(mailInfo['to']) msg['Cc'] = ','.join(mailInfo['cc']) msg['Subject'] = Header(mailInfo['mailtheme'], 'utf-8').encode() s = smtplib.SMTP(mailInfo['smtp'],25) s.login(mailInfo['from'],mailInfo['password']) s.sendmail(mailInfo['from'],mailInfo['to']+mailInfo['cc'],msg.as_string()) s.quit() sendsmtp(mailInfo)
测试脚本是否能正常发送邮件
./sendmail.sh 123 邮件主题 邮件内容
Zabbix后台web介面配置
1、管理 —- 报警媒介类型 —– 创建媒介类型。
2、名称可以随便自己定义 —– 类型选择脚本 —– 脚本名称输入上一步编写的发送邮件的脚本名称 —-
再添加以下3个参数,分别对应脚本需要的3个参数:收件人地址、主题、详细内容:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3、管理 —- 用户 —– 选择admin用户。(自己创建一个用户也可以)
4、报警媒介 —- 添加。
5、类型输入刚刚创建的报警媒介类型sendmail脚本 — 输入个人邮箱(多个用英文逗号隔开)用于接收报警邮件 — 启动打勾 —- 添加。
6、选择更新。
7、权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)
8、配置 —- 动作 — 触发器 —- 创建动作。
9、动作 —- 名称自定义 — 设置一条新的触发条件 —- 启用 —- 添加。(触发条件需要根据实际情况设置)
条件: 维护状态 非在 维护 # 这样服务器没有设置维护状态的话,所有触发器触发后都会发送邮件
10、定义操作。
zabbix: 告警!!!{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: 发生: {TRIGGER.NAME}告警! 告警主机IP地址:{HOST.CONN} 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
11、定义恢复操作。
zabbix: 恢复{TRIGGER.STATUS},服务器:{HOSTNAME1} {TRIGGER.NAME}已恢复! 告警主机IP地址:{HOST.CONN} 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
12、测试。
[root@ssticentos65 alertscripts]# /etc/init.d/zabbix_agentd stop #暂停zabbix_agentd客户端服务