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}

  

動作設置完畢,就可以測試了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM