溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

zabbix自定義腳本實現(xiàn)短信報警提醒

發(fā)布時間:2020-04-04 09:02:02 來源:網(wǎng)絡(luò) 閱讀:12364 作者:pangfc 欄目:網(wǎng)絡(luò)安全

一 簡介

通常,在zabbix的web界面配置好之后為了能夠及時收到zabbix的報警信息,我們需要配置“報警媒介”來通知我們。其中常用的兩種報警媒介分別是:Email和SMS,即:發(fā)郵件通知和發(fā)短信通知

關(guān)于郵件通知的配置很簡單,只需要設(shè)置SMTP即可,因此這里不多說。但是zabbix默認(rèn)的短信通知可就有點坑了,“SMS”這種報警媒介要想發(fā)送短信是需要硬件支持的。與此同時,現(xiàn)在開發(fā)中為了方便一般都是將短信發(fā)送的操作封裝成接口的形式的,當(dāng)需要發(fā)短信時只需要調(diào)用該接口同時傳入收件人、短信詳情等信息就可以完成一條短信的發(fā)送了

因此,為了簡化zabbix短信通知的成本,我們可以考慮讓zabbix調(diào)用外部的腳本請求短信接口來實現(xiàn)短信發(fā)送的功能

實現(xiàn)思路:

  1. 使用一個短信接口寫一個發(fā)短信的腳本

  2. 在web界面中創(chuàng)建一個觸發(fā)器,當(dāng)問題嚴(yán)重性在“一般嚴(yán)重”及以上時執(zhí)行上面的腳本,從而觸發(fā)短信報警

二 具體實現(xiàn)步驟

(1)添加兩個腳本(PS:發(fā)送短信腳本,并且是在zabbix_server上添加):

[root@nmp01 scripts]# cd /usr/local/zabbix
[root@nmp01 scripts]# cd mkdir scripts
[root@nmp01 scripts]# vim /usr/local/zabbix/scripts/sendsms.py

其內(nèi)容是:

#! /usr/bin/python
#coding:utf-8 
URL = 'http://192.168.150.2:8075/xxxx/wmgw.asmx'
import sys
import urllib
import urllib2
import time
def sendsms(mobile,content):
        content = '[%s] %s' % (time.strftime('%Y%m%d %H:%M:%S'),content)
        data = '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">......<tem:pszMobis>' + mobile + '</tem:pszMobis><tem:pszMsg>' + content + '</tem:pszMsg>.......</soap:Envelope>'
        #body = urllib.urlencode(data)
        request = urllib2.Request(URL,data)
        urldata = urllib2.urlopen(request)
        #print urldata.read()
if __name__ == '__main__':
        sendsms(sys.argv[1],sys.argv[2])

注:這個Python腳本是一個實際的短信發(fā)送接口,為了去敏感話因此在data里省略了大量的內(nèi)容。同時這個腳本需要從外部接收的參數(shù)是手機(jī)號和短信內(nèi)容

[root@nmp01 scripts]# vim /usr/local/zabbix/scripts/send.sh

其內(nèi)容是:

#!/bin/sh

mobiles=(15812341204 13876541234)
messages=""

for i in $@; do
    messages=$messages$i" "
done

for m in ${mobiles[@]};
do
    ./sendsms.py $m "$messages"
done

注:這個腳本主要是通過循環(huán)遍歷的形式控制到底給哪些用戶發(fā)送短信,手機(jī)號放在“mobiles”數(shù)組中。腳本通過遍歷參數(shù)當(dāng)做短信內(nèi)容,然后通過上面的sendsms.py發(fā)送短信

給腳本添加可執(zhí)行權(quán)限:

[root@nmp01 scripts]# chmod a+x /usr/local/zabbix/scripts/*

(2)配置zabbix_server的Web站點:

zabbix自定義腳本實現(xiàn)短信報警提醒

注:在“動作”里選擇右上角的“事件源”時需要選擇“觸發(fā)器”

zabbix自定義腳本實現(xiàn)短信報警提醒

zabbix自定義腳本實現(xiàn)短信報警提醒

在這里不選擇“發(fā)送消息”而是“執(zhí)行命令”,其命令就是執(zhí)行上面的腳本,也就是:

cd /usr/local/zabbix/scripts
./send.sh "{TRIGGER.STATUS},服務(wù)器:{HOSTNAME1}發(fā)生: {TRIGGER.NAME} 故障 "

到此zabbix短信報警的配置就全部結(jié)束了,親測可以正常收到短信,這里就不截圖了

注:此種方式下,不需要再配置“報警媒介配置”以及用戶的“報警媒介”


PS:上面圖片中的水印是我個人博客的域名,因此還請管理員手下留情不要給我標(biāo)為“轉(zhuǎn)載文章”,謝謝?。?!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI