一、编写脚本
cd /usr/local/zabbix-4.0.3/share/zabbix/alertscripts
vi zabbix_sms.py
内容如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import requests
import urllib
def sendsms(phone, message):
data = {
'serviceid':'H435454534',
'fromserver':'1069xxxxxxxx',
'linkid':'C393434729151490',
'phone':phone,
'message':message
}
print(data)
url = 'http://xxx.xxx.xxx.xxx:xxxx/api/send'
try:
req=requests.get(url,params=data)
except Exception as e:
print(e)
else:
print(req.content)
if __name__ == '__main__':
phone = sys.argv[1]
message ='【Zabbix】'+sys.argv[2]
sendsms(phone,message.encode('gbk'))
二、测试脚本,执行
./zabbix_sms 150XXXXXXX 测试
看看手机是否收到短信
三、zabbix管理平台配置
1、创建一个新的媒介类型叫短信
参数为手机号,和告警内容
2、为用户设置短信告警媒体类型
3、为需要短信告警的触发器创建新的动作
##告警
主机名称:{HOST.NAME}
IP地址 :{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警信息:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
检查项 :{TRIGGER.KEY1}
当前状态:{TRIGGER.STATUS}
值={ITEM.LASTVALUE}
故障已持续{EVENT.AGE}
##恢复
主机名称:{HOST.NAME}
IP地址 :{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障时长:{EVENT.AGE}
告警信息:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
检查项 :{TRIGGER.KEY1}
当前状态:{TRIGGER.STATUS}
值={ITEM.VALUE}
动作设置完毕,就可以测试了