1. 程式人生 > >zabbix的短信與郵件報警腳本

zabbix的短信與郵件報警腳本

install .get mat spa 信息 問題 主題 會有 限制

#!/usr/bin/python
# -*- coding: utf-8 -*

import sys
import smtplib
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr

def send_email(to_addr,subject,body):
    msg = MIMEText(body,html,utf-8)
    msg[From
] = <[email protected]> msg[To] = <%s> % to_addr msg[Subject] = subject smtp = smtplib.SMTP_SSL(smtp.163.com, 465) smtp.set_debuglevel(1) smtp.ehlo("smtp.163.com") smtp.login([email protected],************) smtp.sendmail([email protected]
/* */, [to_addr], msg.as_string()) if __name__ == "__main__": # 這裏的密碼是開啟smtp服務時輸入的客戶端登錄授權碼,並不是郵箱密碼 # 現在很多郵箱都需要先開啟smtp才能這樣發送郵件 send_email(sys.argv[1],sys.argv[2],sys.argv[3])

zabbix為3.2版本。python版本為2.7,然後在zabbix上進行設置。

#!/usr/bin/python
# -*- coding: utf-8 -*
import top.api
import json,sys
appkey 
= ********* secret = *************************** url = gw.api.taobao.com port=80 req = top.api.AlibabaAliqinFcSmsNumSendRequest(url,port)
#port可以不傳參,因為方法中自帶了port=80的參數 req.set_app_info(top.appinfo(appkey, secret)) content
= sys.argv[2] #短信類型 req.sms_type = "normal" #sign_name req.sms_free_sign_name = "***" #傳參的是看需要看你們的模板中是要傳遞參數,我這邊傳遞的參數名為‘usingPercent‘這個是動態的還是看自己,然後進行json格式化 data = {"usingPercent":content} req.sms_param = json.dumps(data) #收件人手機號 req.rec_num = sys.argv[1] #短信模板 req.sms_template_code = "SMS_*******" resp = req.getResponse()

運行之前請安裝依賴 pip install top

zabbix為3.2版本。python版本為2.7,然後在zabbix上進行設置。此短信腳本是阿裏大於的如果 是別的運營商的話請查看文檔api

技術分享技術分享技術分享

這裏我要說一下,短信不是郵件沒有主題,那麽你有兩個選擇一個是{ALERT.SUNJECT}只是單純的一個主題信息,可以看出問題一個大概的情況,你可以把第二的參數換成{ALERT.MESSAGE},當然就比較詳細的東西的,但是由於平臺的不同可能會有相應的字數限制,對於我來講,可能一個主題就夠了,然後我可以登錄進去看。如果不懂的叫我qq469910799

我還想說一下其實報警發送很簡單,首先就是本地測試是否可以使用發送。其次就是傳參,然後再zabbix 修改傳遞的參數就這樣

zabbix的短信與郵件報警腳本