sky-cheng

一、编写脚本

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}

  

动作设置完毕,就可以测试了

posted on 2019-03-20 15:42  sky_cheng  阅读(1968)  评论(0编辑  收藏  举报

分类:

技术点:

相关文章: