1.需求
我们都知道Zabbix可以通过自定义脚本来发送告警消息,对于常规的文本告警消息发送,在大多数场景下,是够用了的。
有一天,你的同事或者老板提出,告警我是收到了,但是我想在告警邮件中接收到过去的历史趋势图,这能不能实现呢?当然是可以实现的,所以就有了本文的出现。
2.如何实现
对于这个需求,实现起来似乎是非常容易的。我们都知道,Zabbix的图片在web界面,是无法通过API去获取的。这个时候,打开页面观察,如下所示。
图片的路径为/chart.php?from=now-1h&to=now&itemids[]=23316
那么只需要通过itemid即可获取到图片。接下来,我们就可以用自己最熟悉的语言编码了,博主选择了python来实现。
3.编码
核心代码如下。
4.配置
下面,我们来配置实现。
4.1. 程序的参数如下
第一个参数为收件人
第二个参数为邮件主题
第三个参数为邮件内容
第四个参数为是否发送图片的开关,如果接上此参数,则会启用图像发送的功能。
4.2. 安装依赖库install python module
4.3. 修改脚本配置参数安装依赖库install python module
4.4. 手工测试脚本
4.4. 配置zabbix_server.conf
4.5. 复制脚本
4.6. 配置Media types
配置如下图所示。
4.7. 配置action
将 增加到发送的告警消息中,其中ItemID会在告警脚本中使用,是Zabbix内置的宏变量,表示itemid。
4.8. 触发一个故障
4.9. 邮件告警消息
在收到邮件告警消息的时候,如下图所示。
好了,本文要结束了,附上代码地址 如下https://github.com/zabbixbook/zabbix_mail_with_graph