有时候微信报警或者邮寄报警咱们可能会有遗忘,今天我主要介绍使用阿里云的短信服务进行短信报警。python
签名用途选择:公众号或小程序的全称或简称 就能够了。json
模板里面的参数有字数限制,最高20个字符,因此你们也须要注意一下,获取的参数值不要太大。小程序
建立脚本sendsms.py
,放到 zabbix 脚本路径,记得在配置文件开启AlertScriptsPath=路径
,咱们向脚本传递两个参数,一个是手机号,一个是信息,信息里面包含三个字段(主机IP,时间,内容),由咱们下面的 Media types 参数配置。api
#!/usr/bin/python3.6 # coding=utf-8 # pip3.6 install aliyun-python-sdk-core-v3 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest import sys client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou') 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', 'SMS_159772654') request.add_query_param('TemplateParam', dict1) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8'))
关于告警的回复报警,以及阶梯报警,你们能够自行详细去设定,正常咱们能够第一步发生短信报警,在多久以内没有恢复再进行短信报警。微信
咱们停掉一个服务,来验证一下,首先能够查看一下 Action log 查看是否成功。dom
而后能够看到咱们接到了短信通知。ide