zabbix配置邮件告警
young / / / 阅读量

Zabbix监控服务器、客户端都已经部署完成,被监控主机已添加完成,Zabbix监控运行正常。
Zabbix监控服务器设置邮件报警,当被监控主机宕机或达到触发器预设值进,会自动发送报警邮件到指定的邮箱。

服务器配置

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、管理 —-  报警媒介类型 —–  创建媒介类型。

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-.png

2、名称可以随便自己定义 —– 类型选择脚本 —– 脚本名称输入上一步编写的发送邮件的脚本名称 —-

再添加以下3个参数,分别对应脚本需要的3个参数:收件人地址、主题、详细内容:
{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-1.png

3、管理 —- 用户 —– 选择admin用户。(自己创建一个用户也可以)

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-2.png

4、报警媒介 —- 添加。

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-3.png

5、类型输入刚刚创建的报警媒介类型sendmail脚本 — 输入个人邮箱(多个用英文逗号隔开)用于接收报警邮件 — 启动打勾 —- 添加。

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-4.png

6、选择更新。

 
/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-5.png

7、权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201703-.png

8、配置 —- 动作 — 触发器 —- 创建动作。

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-6.png

9、动作 —- 名称自定义 — 设置一条新的触发条件 —- 启用 —- 添加。(触发条件需要根据实际情况设置)

条件:
    维护状态 非在 维护
    # 这样服务器没有设置维护状态的话,所有触发器触发后都会发送邮件
/content/images/wordpress/2018/10/20181024100805.png

10、定义操作。

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-8.png

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、定义恢复操作。

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-9.png

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客户端服务

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-10.png

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-11.png

/content/images/wordpress/2018/10/https-images2015-cnblogs-com-blog-435896-201702-1-12.png

支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章