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}
相關文章
相關標籤/搜索