zabbix短信告警配置
开启阿里云短信服务
添加签名
申请模板
获取AccessKey
创建完成之后一定要记录AccessKeySecret,之后不会再显示,除非新建一个AccessKeyID
配置Python脚本
#!/usr/bin/python
#coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
import sys
client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou') #注:在输入AK时需要将<>符号去掉,否则会报AK错误
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')
string = sys.argv[2]
phone_number = sys.argv[1]
message = string.split(";")
print(message)
dict1 = { }
dict1['host'] = message[0]
dict1['time'] = message[1]
dict1['item'] = message[2][0:18]
request.add_query_param('RegionId', 'cn-hangzhou')
request.add_query_param('PhoneNumbers', phone_number)
request.add_query_param('SignName', '签名名称')
request.add_query_param('TemplateCode', '模板code')
request.add_query_param('TemplateParam', dict1)
response = client.do_action(request)
# python2: print(response)
print(str(response, encoding='utf-8'))
配置完脚本后,需赋予执行权限并修改所属用户和组为zabbix
配置web端
添加新报警类型
{ALERT.SENDTO}
{ALERT.MESSAGE}
为用户设定报警媒介
配置动作
触发条件根据需求配置
配置动作和消息模板
默认标题:
服务器:{HOST.IP}发生:{TRIGGER.NAME}故障!
消息内容:
{HOST.IP};{EVENT.TIME};{ITEM.NAME}
这里就不进行测试了,最简单的方式就是重启服务器,手机便可收到短信通知