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}!
操作中配置相应用户接受短信告警。
用户:添加短信报警媒介和手机号
测试
短信告警配置完成。