公司需求,由于短信,微信,邮箱都没人看,导致出现服务器出现异常很长时间才看到,因此根据领导要求做一个电话报警:
电话报警需要需要提供相应的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
https://www.cnblogs.com/otosis/p/9897899.html
