Zabbix邮件通知

安装python34

安装python34(我使用的是阿里云Z的epel源)html

yum install python34 -y

初版

很是难用,这里使用的是我的邮件发送最好使用第二版经过第三方邮件服务发送邮件python

编辑脚本文件/usr/lib/zabbix/alertscripts/sendmail.pyjson

#!/usr/bin/python3
#coding: utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header

_, sendto, subject, *msgbody = sys.argv
sender = '********@21cn.com'
smtpserver = 'smtp.21cn.com'
username = sender
password = '******'

msg =  MIMEText(' '.join(msgbody),'plain','gb2312')
msg['Subject'] = subject
msg['From'] = sender
msg['To'] = sendto
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(username, password)
smtp.sendmail(sender, i, msg.as_string())
smtp.quit()

版本二

这一版使用的是sendcloud发送邮件(请百度:),能够经过zabbix传递的数据发送特定的邮件api

#!/usr/bin/python3
# coding: gb2312
import requests
import sys
# import json

# 获取要传递的参数
_, sendto, subject, *msgbody = sys.argv
url = "http://api.sendcloud.net/apiv2/mail/send"
# 您须要登陆SendCloud建立API_USER,使用API_USER和API_KEY才能够进行邮件的发送。
params = {
    # apiUser
    "apiUser": "mortimer_****_******",
    # apiKey
    "apiKey": "******",
    "from": "service@sendcloud.im",
    # fromName
    "fromName": "*******",
    # 一下三个是经过zabbix传递参数,不须要修改
    "to": sendto,
    "subject": subject,
    "html": ' '.join(msgbody),
}

r = requests.post(url, files={}, data=params)
# print(r.text)

使用方法

Zabbix邮件通知

Zabbix邮件通知

传递的参数分别为bash

# 用户通知方式
{ALERT.SENDTO}
# 标题
{ALERT.SUBJECT}
# 发送的信息
{ALERT.MESSAGE}
相关文章
相关标签/搜索