python3實現告警語音通知

近期公司對zabbix告警進行統一規劃、劃分,做一些告警收斂;將一些信息類的告警發送到內部app和郵箱;將一些重於警告的告警發送到手機短信;將一些故障級的告警直接發送語音通知;短信和語音都是買的第三方服務,下面爲實現語音通知的python3腳本:

cat send_yuyin.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author  : fanht
# date     : 2019-05-10
# @File    : send_yuyin.py
# @Software: PyCharm

import requests
import sys
import time
import hashlib

url = "XXXXXXXXXXXXXX"   # 第三方語音接口地址
strtime = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))
temp2 = ''

# 對關鍵信息進行加密
def My_Asp():

    temp = 'XXXXXXXXXXX'  # 賬號密碼,下面對賬號密碼進行md5加密
    m = hashlib.md5()
    m.update(temp.encode('utf8'))
    temp1 = m.hexdigest()

    new_temp = "XXXXXXX" + temp1 + strtime  # 拼接signature = md5(賬戶 Id + md5(密碼) + fetchDate)
    n = hashlib.md5()
    n.update(new_temp.encode('utf8'))
    temp2 = n.hexdigest()

    return temp2  # 將拼接加密後的temp2值返回

# 主程序發送語音
def Send_Phone(telephone):   # 將手機號作爲參數進行傳入
    message = "%s,%s" % (sys.argv[2],sys.argv[3])
    params = {
        "accountSid": "XXXXXXX",   # 賬號Id
        "signature": temp2,
        "templateId": "XXXXXX",    # 模版id
        "calledNumber": telephone,
        "showNumber": "XXXXXXXX",   # 對外顯示號碼
        "threadCode": "XXXXXXXXX",    # 通道標識
        "args": message,
        "fetchDate": strtime
    }
    ret = requests.post(url, data=params)
    return ret.text

if __name__ == "__main__":
    temp2 = My_Asp()
    code = Send_Phone(sys.argv[1])
    print(code)

將此腳本扔Linux主機上進行測試

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章