zabbix-------通过阿里云语音服务实现电话报警

 公司需求,由于短信,微信,邮箱都没人看,导致出现服务器出现异常很长时间才看到,因此根据领导要求做一个电话报警:

电话报警需要需要提供相应的api接口实现和zabbix的对接,我这里找的是阿里云的服务----语音服务  当然你可以去找其他的运营商来满足需求,每个运营商都有对应的api文档的,多的不说  现在开始吧!

 

这里是阿里云的语音服务的api调用的文档:upload/201811141635574445.png" alt="" style="border: 0px; max-width: 800px; height: auto;" />

 cd dyvms_python

会发现4个文件

 

安装Python环境:

cd api_sdk

会有两个文件:

 

分别 cd aliyun-python-sdk-core和cd aliyun-python-sdk-dyvmsapi

分别到上面两个文件下运行 python set.py install 

运行以后在 /123/dyvms_python/api_demo/aliyun-python-sdk-dyvmsapi 下面创建demo.py文件(短信报警Python解压以后会自带):

vim demo.py:如下

# _*_ encoding:utf-8 _*_
from aliyunsdkdyvmsapi.request.v20170525 import SingleCallByTtsRequest
from aliyunsdkdyvmsapi.request.v20170525 import SingleCallByVoiceRequest
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.profile.region_provider import add_endpoint
import os,sys
import uuid
"""
语音业务调用接口示例,版本号:v20170525
Created on 2017-06-12
"""
#暂时不支持多region,默认配置杭州
REGION = "cn-hangzhou"
# ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
ACCESS_KEY_ID = "yourAccessKeyId"
ACCESS_KEY_SECRET = "yourAccessKeySecret"
#初始化AcsClient
acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
#region_provider.add_endpoint(PRODUCT_NAME,REGION,DOMAIN)
def tts_call(business_id, called_number, called_show_number, tts_code, tts_param=None):
ttsRequest = SingleCallByTtsRequest.SingleCallByTtsRequest()
# 申请的语音通知tts模板编码,必填
ttsRequest.set_TtsCode(tts_code)
# 设置业务请求流水号,必填。后端服务基于此标识区分是否重复请求的判断
ttsRequest.set_OutId(business_id)
# 语音通知的被叫号码,必填。
ttsRequest.set_CalledNumber(called_number)
# 语音通知显示号码,必填。
ttsRequest.set_CalledShowNumber(called_show_number)
# tts模板变量参数
if tts_param is not None:
ttsRequest.set_TtsParam(tts_param)
ttsResponse = acs_client.do_action_with_exception(ttsRequest)
return ttsResponse
__business_id = uuid.uuid1()
print __business_id
#模板中不存在变量的情况下为{}
#params = {}

#如果模板有变量使用一下方法
params = "{\"name\":\"%s\"}"%(sys.argv[2])      
print tts_call(__business_id,sys.argv[1],"075500000000", "TTS_140000000", params)

 

 官网文档copy下来会报一个错提示没有环境包,把对应行注释掉就行。在我标注的黑体字上面

红色部分是需要根据自己信息手动修改的,我这里写了两个变量   如果不需要可以改成固定

 

然后把demo.py脚本拷贝到zabbix脚本存放路径

测试发现zabbix web端动作触发成功但是无法执行脚本接不到电话,所以我在这把Python脚本写成shell的脚本就可以正常运行了

vim demo.py:

#!/bin/bash
python /usr/local/zabbix/alertscripts/demo.py $1 $2  

 

 

到zabbix  web端  添加媒介

 

 

添加用户

添加报警媒介

 

 

添加动作

https://www.cnblogs.com/otosis/p/9897899.html

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信