zabbix增加手機短信、郵件監控的注意要點,SSL郵件發送python腳本


1、短信接口文檔:

URL

http://xxx.com/interfaces/sendMsg.htm

Method

POST

Description

文字短信調用接口

Request Param List

Name Identifier Type Remark
短信簽名 sign string 格式為 【某某平台】 中文括號不可少
信息內容 msg string  
手機號 phoneNumber string  

Response Param List

Name Identifier Type Remark
返回值   string 提交失敗 {"msg":"","success":"F"} 提交成功 {"msg":"","success":"T"}

2、自定義端口post方式以及python腳本:

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

import sys

import urllib.request
import urllib.parse

#請求
msg = sys.argv[2]
phoneNumber = sys.argv[1]
data = {
'msg':msg,
'phoneNumber':phoneNumber,
}
data = urllib.parse.urlencode(data).encode('utf-8')
resu = urllib.request.urlopen('http://xxx.com/interfaces/sendVoice.htm', data = data)

#指定編碼請求
#print(resu.read().decode('utf-8'))
a=open('/tmp/abc.log','a')
a.write(sys.argv[1]+resu.read().decode('utf-8')+'\n' )
a.close()

3、將sms2.py拷貝到路徑/usr/lib/zabbix/alertscripts

4、設置sms2.py的權限為chmod 777 sms2.py

把日志文件abc.log也要chmod 777 abc.log

5、注意sms2.py在centos一定要可以直接執行,而不是python sms2.py這種方式直接。后面加兩個參數手機號碼+內容

6、設置zabbix里的triggers

7、設置media type,注意這里的三個變量一定要加進去。

 

8、最后設置動作:actions

當triggers名稱為,或者安全級別為什么的時候就觸發動作,直接發送短信,選擇對應的人和動作!

 

#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'smtp.189.cn'
mail_user = '13913913913'
mail_pass = 'xxxxx'
mail_postfix = '189.cn'
def send_mail(to_list,subject,content):
    me = "zabbix 監控告警平台"+"<"+mail_user+"@"+mail_postfix+">"
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['Subject'] = subject
    msg['From'] = me
    msg['to'] = to_list
    try:
        s = smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user,mail_pass)
        s.sendmail(me,to_list,msg.as_string())
        s.close()
        return True
    except Exception as e:
        print (e)
        return False
#if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

 

SSL郵件發送python代碼:

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

import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate
from email.header import Header
import sys

# 設置默認字符集為UTF8 不然有些時候轉碼會出問題
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
    reload(sys)
    sys.setdefaultencoding(default_encoding)

# 發送郵件的相關信息,根據你實際情況填寫
smtpHost = 'smtp.exmail.qq.com'
smtpPort = '25'
sslPort = '465'
fromMail = 'xxx@17of.com'
# toMail = '997939@qq.com'
username = 'xxx@17of.com'
password = 'xxxxx'


def send_mail(to_list, subject, content):
    # 郵件標題和內容
    # subject = u'[Notice]hello'
    # body = u'hello,this is a mail from ' + fromMail

    # 初始化郵件
    encoding = 'utf-8'
    mail = MIMEText(content.encode(encoding), 'plain', encoding)
    mail['Subject'] = Header(subject, encoding)
    mail['From'] = fromMail
    mail['To'] = to_list
    mail['Date'] = formatdate()

    try:
        # 連接smtp服務器,明文/SSL/TLS三種方式,根據你使用的SMTP支持情況選擇一種
        # 普通方式,通信過程不加密
        # smtp = smtplib.SMTP(smtpHost, smtpPort)
        # smtp.ehlo()
        # smtp.login(username, password)

        # tls加密方式,通信過程加密,郵件數據安全,使用正常的smtp端口
        # smtp = smtplib.SMTP(smtpHost,smtpPort)
        # smtp.set_debuglevel(True)
        # smtp.ehlo()
        # smtp.starttls()
        # smtp.ehlo()
        # smtp.login(username,password)

        # 純粹的ssl加密方式,通信過程加密,郵件數據安全
        smtp = smtplib.SMTP_SSL(smtpHost,sslPort)
        smtp.ehlo()
        smtp.login(username,password)

        # 發送郵件
        smtp.sendmail(fromMail, to_list, mail.as_string())
        smtp.close()
        print("OK")
    except Exception as e:
        print("e")

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM