近期公司对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": "XX