zoukankan      html  css  js  c++  java
  • zabbix 利用python脚本实现短信告警

    一、编写脚本

    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}

      

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

  • 相关阅读:
    【R】如何去掉数据框中包含非数值的行?
    解读NoSQL数据库的四大家族
    MapReduce
    从网站上扒网页,保存为file文件格式
    jfinal 模板引擎
    pycharm的版本对应问题
    AttributeError: module 'DBBase' has no attribute 'DBBase'
    四则运算 python
    用命令行去运行程序
    Pandas入门CNV.TXT数据分析
  • 原文地址:https://www.cnblogs.com/sky-cheng/p/10565334.html
Copyright © 2011-2022 走看看