前面已分別介紹了zabbix的郵件、微信報警設置,這些都是手機在有網絡時才能收到報警信息,那若是手機沒有網的狀況下怎麼辦,這就須要考慮使用短信接口報警了。當服務出現故障達到預警級別是經過發送短信的形式告訴運維人員,以便及時處理。公司的短信接口是從短信服務器購買的,並通過公司開發大神調整後使用的。廢話很少贅述,下面直接記錄配置過程:web
1、zabbix服務端的腳本路徑設置json
[root@zabbix ~]# cat /data/zabbix/etc/zabbix_server.conf|grep alertscripts AlertScriptsPath=/data/zabbix/alertscripts
2、短信腳本bash
-------------------------------------------------------------------------------------------------------- 下面是開發大神給定義的一個短信模板,通過調試以後給運維部門使用的: curl -H "Content-type: application/json" -X POST 192.168.1.10:8080/sms/send/batch -d ' { "phones": [ "13611789029", "12310703369", "13314466149" ], "callOrgCode": "YW1001", "callOrgName": "運維部門", "callAppCode": "WANG_OPS", "key": "R13-G294595Y32M24TAD60JK", "templateId": 6, "valueMap": { "msg": "test001服務器出現問題!請儘快修復!" } } ' 能夠在命令行裏手動執行上面的接口進行發信測試,在目標手機查看是否收到短信。(上面的短信模板須要開發人員在本身的短信接口平臺裏特地給咱們運維部門造的) --------------------------------------------------------------------------------------------------------
結合上面的短信接口,zabbix短信報警腳本以下:服務器
[root@zabbix alertscripts]# cat zabbixsend_sms.sh #!/bin/bash export LANG=en_US.UTF-8 PHONE=$(echo $1|sed 's/,/",\n"/g') #第一個變量($1)。因爲多個號碼要換行,而且每行要加雙引號,故要作匹配轉換設置 #Message=$(echo $3|sed 's/:/": "/g'|sed 's/,/",\n"/g') #Message=$(echo $3|sed 's/: /": "/g'|sed 's/,/",\n"/g') Message=$3 #第三個變量 curl -H "Content-type: application/json" -X POST 192.168.1.10:8080/sms/send/batch -d """ #公司的短信接口地址,這裏採用post方式 { \"phones\": [ \"$PHONE\" ], \"callOrgCode\":\"YW1001\", \"callOrgName\": \"運維部門\", \"callAppCode\": \"WANG_OPS\", \"key\": \"R13-G294595Y32M24TAD60JK\", \"templateId\": \"6\", \"valueMap\": { \"msg\": \"$Message\" } } """ #先後三個引號表示引號裏的內容輸入什麼就是什麼,變量參數不會被影響。 time=`date '+%F %T'` echo "${time} ${PHONE} $Message" >> /data/log/sendsms_`date +%Y-%m`.log [root@zabbix alertscripts]# chmod 755 zabbixsend_sms.sh 能夠先手動執行腳本進行發信測試: $1是發信的手機號碼 $2是發信的主題,這個通常短信報警信息裏不顯示,以下測試是"報警測試"。上面腳本中沒有配置$2的變量 $3是發信的內容。 三個變量使用空格隔開 [root@zabbix alertscripts]# ./zabbixsend_sms.sh 13633767819 報警測試 backup01服務器宕機了! {"totalCnt":1,"successCnt":1,"failCnt":0,"failPhones":[],"failMsg":null,"msgContent":"backup01服務器宕機了!"}
3、zabbix的web界面裏的報警設置微信
1)報警媒介類型設置網絡
2)用戶的報警媒介設置app
3)"動做"設置運維
上面的報警主題以下,這個其實在短信報警信息中沒有體現,隨便定義便可。curl
故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
報警內容以下(因爲開發那邊的調整規則,報警內容換行後就發信失敗,因此這裏只能講報警內容放在一行)post
告警主機:{HOSTNAME1}, 告警時間:{EVENT.DATE} {EVENT.TIME}, 告警等級:{TRIGGER.SEVERITY}, 告警信息: {TRIGGER.NAME}, 告警項目:{TRIGGER.KEY1}, 問題詳情:{ITEM.NAME}:{ITEM.VALUE}, 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}, 事件ID:{EVENT.ID}
手機短信報警截圖以下:
發信後,能夠查看zabbix的web界面裏的"報表"->「動做日誌」