一、編寫腳本
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}
動作設置完畢,就可以測試了