成功最有效的方法就是向有经验的人学习!

python脚本拨打电话告警

在公司中有些致命的告警要求使用打电话告警,经过一番的查询发现很多服务商直接提供了API接口。
本例我使用了阿里云的API。
首先将SDK包复制到/usr/lib/python2.7/site-packages,python3的用户,请自行在阿里云下载。
这个包就是官方的未经修改,不放心的小伙伴儿可以使用pip命令安装

pip install aliyun-python-sdk-core

需要在阿里云平台中准备一个tts语音模板

拨打电话脚本

#!/usr/bin/env python
#coding=utf-8

import sys
import datetime
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient('dX************Q', '00**********vw', 'default')

src = sys.argv[1]
title = sys.argv[2]
note = sys.argv[3]
phone = sys.argv[4]
data = "{\"src\": \""+src+"\",\'title\': \'"+title+"\',\"note\": \""+note+"\"}"
print(data)
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dyvmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SingleCallByTts')

request.add_query_param('CalledShowNumber', "021*******6")
request.add_query_param('CalledNumber', phone)
request.add_query_param('TtsCode', "TTS_168285137")
request.add_query_param('TtsParam', data)

response = client.do_action(request)
#print(response)
file = r'/tmp/'+datetime.datetime.now().strftime('%Y-%m-%d')+'_call.log'
date = time1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
with open(file, 'a+') as f:
     f.write(date+':'+response+'\n'+data+'\n')
#print(str(response, encoding = 'utf-8'))

调用方法:

./call.py 平台名称 报警主题 备注内容 13800138000

zabbix平台中使用方法:
将脚本放在zabbix指定的目录,并添加执行权限,按下图设置
告警媒体设置:

添加用户的告警方式:

赞(4) 打赏
未经允许不得转载:陈桂林博客 » python脚本拨打电话告警
分享到

大佬们的评论 1

  1. #1

    链接:https://pan.baidu.com/s/19B3Dat7mVhb8OKZQbTyUkA
    提取码:pf6e
    复制这段内容后打开百度网盘手机App,操作更方便哦

    admin5年前 (2019-06-21)回复

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册