zabbix的短信與郵件報警腳本
#!/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]
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的短信與郵件報警腳本