
zabbix版本:3.0.7 短信服务商:云片网
首先在云片网添加相应签名和模板
参照格式
签名:xxx告警
模板: 【xxx告警】故障:#status# 服务器:#host# 发生:#triggername# 状态值:#value# 时间:#time#! #告警模板
【xxx告警】恢复:#status# 服务器:#host# 发生:#triggername# 状态值:#value# 时间:#time#! #恢复模板
在zabbix AlertScriptsPath 路径中添加脚本
duanxin.py
#!/usr/bin/python
#-*- coding:utf-8 -*-
# apikey:成功注册后登录云片官网,进入后台可查看
# text:需要使用已审核通过的模板或者默认模板
# mobile:接收的手机号,仅支持单号码发送
import os,sys,time
import urllib,urllib2,httplib
def send_sms(apikey, text, mobile):
#服务地址
sms_host = "sms.yunpian.com"
#端口号
port = 443
#版本号
version = "v2"
#智能匹配模板短信接口的URI
sms_send_uri = "/" + version + "/sms/single_send.json"
#sms_send_uri = "/" + version + "/sms/batch_send.json"
params = urllib.urlencode({'apikey': apikey, 'text': text, 'mobile':mobile})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPSConnection(sms_host, port=port, timeout=30)
conn.request("POST", sms_send_uri, params, headers)
response = conn.getresponse()
response_str = response.read()
conn.close()
return response_str
if __name__=='__main__':
apikey='xxxxxxx' #修改成自己的apikey
mobile = sys.argv[1]
message = sys.argv[2]
send_sms(apikey,message,mobile)
在zabbix web界面 添加短信告警配置:
报警媒介类型:
动作:
#告警
【xxx告警】故障:{TRIGGER.STATUS} 服务器:{HOSTNAME1} 发生:{TRIGGER.NAME} 状态值:{ITEM.VALUE1} 时间: {EVENT.DATE} {EVENT.TIME}!
#恢复
【xxx告警】恢复:{TRIGGER.STATUS} 服务器:{HOSTNAME1} 发生:{TRIGGER.NAME} 状态值:{ITEM.VALUE1} 时间: {EVENT.DATE} {EVENT.TIME}!
操作中配置相应用户接受短信告警。
用户:添加短信报警媒介和手机号
测试
短信告警配置完成。