zabbix可视化告警的实现——发送带有监控图形的告警邮件

项目地址:https://github.com/zhangrj/zabbix-email-with-graph

本项目参考https://github.com/zabbix-book/zabbix_mail_with_graph,如果读者使用QQ邮箱/163邮箱作为邮件服务器,可直接使用该项目中的mail_with_graph.py。之所以修改此脚本,是因为原脚本不支持公司内部邮件服务器,测试发现公司内部邮件服务器不支持python smtp方法登录,邮件服务器不是我部署的,所以原因也没搞清楚。在mail_with_graph-修订版.py中,我使用os模块执行系统命令调用sendEmail软件发送邮件的方法代替纯python方法,来解决邮件服务器的问题。

一、系统条件

  • 一台zabbix server(已测试zabbix3.x、zabbix4.x)
  • 一台邮件服务器
  • python2.7 安装pyzabbix、pycurl模块

二、文件介绍

  • mail_with_graph-修订版.py:图形邮件告警脚本,应放于/usr/lib/zabbix/alertscripts目录下,请自行修改为合适的文件名
  • email.html:最终发送的html格式邮件内容,同样放于/usr/lib/zabbix/alertscripts目录下,也可自行新建email.html,有这个文件即可
  • sendEmail-v1.56.tar.gz:发送邮件的软件,mail_with_graph-修订版.py调用该软件发送邮件,安装方法为解压,进入解压目录“mv sendEmail /usr/local/bin/”即可。
  • pycurl、pyzabbix:脚本需要调用的python模块,正常安装即可。

三、文件权限

参考如下文件权限即可:

$ cd /usr/lib/zabbix/alertscripts/
$ ls
email.html  mail_with_graph.py 
$ ll
total 56
-rwxr-xr-x 1 zabbix zabbix 35017 Apr  3 16:34 email.html
-rwx--x--x 1 zabbix zabbix  5960 Mar 26 14:28 mail_with_graph.py

四、脚本配置

需修改脚本 mail_with_graph-修订版.py中的如下参数,按实际情况填写即可:

# Mail Server Configuration
smtp_server = 'ip'
smtp_port = 25
smtp_user = 'example@example.com.cn'
smtp_pwd = 'passwd'

# Zabbix API, you should set it
zbx_url = 'http://127.0.0.1/zabbix'
zbx_user = 'Admin'
zbx_pwd = 'zabbix'

五、前面配置告警媒介

新建报警媒介类型,“名称自定义”,“类型”选择“脚本”,“脚本名称”填写你放入/usr/lib/zabbix/alertscripts中的脚本名称,添加4个脚本参数:

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
withgraph

这四个参数即zabbix调用告警脚本时传递给脚本的参数。

六、前端配置动作

动作的“消息内容”中添加:

ItemID: {ITEM.ID}

脚本将根据该参数获得正确的监控项图形。编辑“操作”->“操作细节”->“仅送到”,选择第五步中新建的报警媒介。更新动作即可。

七、手动触发告警,查看效果

手动触发一次告警,观察邮件效果,如果告警的监控项关联了图形,则告警邮件中将会出现该监控项的图形。

如有疑问,请邮件联系或评论。

关于 “zabbix可视化告警的实现——发送带有监控图形的告警邮件” 的 1 个意见

评论关闭。