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主机上进行测试

在这里插入图片描述


版权声明:本文为qq_36357820原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。