首页 > 编程 > Python > 正文

zabbix利用python脚本发送报警邮件的方法

2019-11-02 16:40:57
字体:
来源:转载
供稿:网友

前言

zabbix是个非常强大的监控工具,可以监控linux和windows的服务器数据,也可以通过自定义key来扩展默认的监控项,但是自带的邮件报警提供的信息却不太友善。本文想通过自定脚本的方式,实现在报警邮件的同时发送对应的图像和url连接。

步骤如下:

1、编辑zabbix_server.conf文件,修改AlertScriptsPath参数,该参数用于指定外部脚本的绝对路径。

vim /etc/zabbix/zabbix_server.confAlertScriptsPath=/usr/lib/zabbix/alertscripts

2、上传新增py脚本至AlertScriptsPath参数指定的绝对路径下,py文件如下:

#! /usr/bin/env python# coding:utf-8'''[INFORMATION]Zabbix Send Email With PythonAUTHOR : WingGitHub : https://github.com/wing324Email : wing324@126.com'''from email import encodersfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.utils import parseaddr, formataddrimport smtplibimport sysdef send_mail(_to_email,_subject,_message):# 定义邮件发送 smtp_host = 'smtp.xxx.xx' from_email = 'xxx@xxx.xx' passwd = 'xxxxxx' msg = MIMEText(_message,'plain','utf-8') msg['Subject'] = _subject smtp_server = smtplib.SMTP(smtp_host,25) smtp_server.login(from_email,passwd) smtp_server.sendmail(from_email,[_to_email],msg.as_string()) smtp_server.quit()if __name__ == '__main__': send_mail(sys.argv[1],sys.argv[2],sys.argv[3])

3、修改python脚本的权限

chown -R zabbix:zabbix zabbix_send_email.pychmod 755 zabbix_send_email.py

4、zabbix web端配置

Administration > Media types > Create media type

创建一个测试用户Administration > Users > Create user

为新创建的user指定media:Administration > Users > Create user > Media

创建action实现邮件报警Configuration > Actions > Create action

5、zabbix测试发送邮件

找一个test的zabbix_agentd,kill掉,查看是否收到报警邮件。再将其恢复,查看是否收到恢复后的邮件。如果一切如预期所想,那么至此就完成了使用python脚本完成zabbix的报警邮件了。如果没有如预期所想。

TIPS:

如果你用的zabbix3.0,请注意Administration > Media types > Create media type这一步的配置如下:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表