zabbix5.2-阿里云短信告警

配置:

centos:7.5
zabbix-server:5.2
mysql:5.7
zabbix-agent:5.2
阿里云短信服务SDK:2
Python:3.8

1、准备阿里云短信签名和模板

登录阿里云平台,搜索短信服务,选择国内服务,点击“添加签名”,如下图所示


1.png

添加完签名再添加模板,有不清楚的问阿里服务人员


1.png

2、准备key和秘钥,鼠标放到右上角用户处,可以看到一个AccessKey管理,入不记得秘钥可以重新生成

1.png

3、下载SDK和python脚本

进入阿里首页,搜索短信 SDK,如下图

pip install aliyun-python-sdk-core-v3
1.png

可以直接复制代码,只需要修改以下几个配置【key的id、秘钥、电话号码、模板code】

vim duanxin.py
#!/usr/bin/env python
#coding=utf-8
import sys #此处是我自己加的,用来调用下面的参数
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient('', '', 'ap-northeast-1')

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')

request.add_query_param('PhoneNumbers', "%s" %sys.argv[1])   #zabbix传过来的第一个参数
#request.add_query_param('PhoneNumbers', "1503871****")
request.add_query_param('SignName', "阿里大于测试专用")
request.add_query_param('TemplateCode', "SMS_209335004")
request.add_query_param('TemplateParam', "{\"remark\": \"%s\"}" %sys.argv[2])  #zabbix传过来的第二个参数,此处remark为阿里云模板中的变量
#request.add_query_param('TemplateParam', "{\"code\":\"1111\"}")

response = client.do_action(request)
# python2:  print(response)
print(str(response, encoding = 'utf-8'))

加执行权限:chmod +x duanxin.py
本地测试:

./duanxin.py 183*********    test
2.jpg

手机可以正常收到短信,说明脚本没错,接下来配置zabbix-web端

4、配置zabbix报警媒介类型

创建媒介类型


1.png

这2个参数分别对应脚本里的2个参数,一个是发送人的手机号码,一个是发送的短信内容,短信内容可以在Message templates里面定义


1.png

告警主机: {HOSTNAME1}
告警时间: {EVENT.DATE} {EVENT.TIME}

告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

因为只传了2个参,所以没有配置主题,感兴趣可以自己添加

5、创建报警用户

1.png

报警媒介-类型 选择我们刚创建的媒介,输入收件人电话

6、创建告警动作

这里我选择所有触发条件,实际情况可以自行选择


1.png

设置接收告警人员


1.png

可以自己手动更改一个触发器的阈值来主动触发告警

7、成果展示

1.jpg

你可能感兴趣的:(zabbix5.2-阿里云短信告警)