前言
zabbix是个非常强大的监控工具,可以监控linux和windows的服务器数据,也可以通过自定义key来扩展默认的监控项,但是自带的邮件报警提供的信息却不太友善。本文想通过自定脚本的方式,实现在报警邮件的同时发送对应的图像和url连接。
步骤如下:
1、编辑zabbix_server.conf文件,修改alertscriptspath参数,该参数用于指定外部脚本的绝对路径。
1
2
|
vim /etc/zabbix/zabbix_server .conf
alertscriptspath= /usr/lib/zabbix/alertscripts
|
2、上传新增py脚本至alertscriptspath参数指定的绝对路径下,py文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#! /usr/bin/env python
# coding:utf-8
'' '
[information]
zabbix send email with python
author : wing
github : https: //github .com /wing324
email : wing324@126.com
'' '
from email import encoders
from email.header import header
from email.mime.text import mimetext
from email.utils import parseaddr, formataddr
import smtplib
import sys
def 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脚本的权限
1
2
|
chown - r zabbix:zabbix zabbix_send_email.py
chmod 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这一步的配置如下:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。