在本實驗中,短信網關使用了中國網建SMS短信通。不一樣的服務提供商所開發的短信接口不一樣,不過大都是http接口,腳本略做修改便可~html
效果圖以下:web
下面是配置步驟:
shell
1、zabbix服務器端配置短信腳本api
假如你的zabbix server配置文件zabbix_server.conf中AlertScriptsPath參數的路徑爲/etc/zabbix/alertscripts,進入/etc/zabbix/alertscripts目錄,建立短信告警腳本sendSMS.sh(附件有下載):bash
#!/bin/bash # # Filename: sendSMS.sh # Revision: 1.0 # Date: 2014/09/11 # Author: Qicheng # Email: # Website: http://qicheng0211.blog.51cto.com/ # Description: zabbix短信告警腳本 # Notes: 短信網關使用了中國網建SMS短信通 # # 腳本的日誌文件 LOGFILE="/tmp/SMS.log" :>"$LOGFILE" exec 1>"$LOGFILE" exec 2>&1 MOBILE_NUMBER=$1 # 手機號碼 MESSAGE_UTF8=$3 # 短信內容 XXD="/usr/bin/xxd" CURL="/usr/bin/curl" TIMEOUT=5 # 短信內容要通過URL編碼處理,除了下面這種方法,也能夠用curl的--data-urlencode選項實現。 MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/\(..\)/%\1/g' | tr -d '\n') # Uid和Key的值須要自行修改,http://www.smschinese.cn/api.shtml # Uid 網站用戶名 # Key 接口祕鑰 Uid="xxxxxx" Key="xxxxxx" # SMS API URL="http://utf8.sms.webchinese.cn/?Uid=${Uid}&Key=${Key}&smsMob=${MOBILE_NUMBER}&smsText=${MESSAGE_ENCODE}" # Send it set -x ${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"
而後執行下面的命令,設置腳本和日誌文件權限:服務器
shell# touch /tmp/SMS.log shell# chown zabbix:zabbix /tmp/SMS.log shell# chown zabbix:zabbix /etc/zabbix/alertscripts/sendSMS.sh shell# chmod +x /etc/zabbix/alertscripts/sendSMS.sh
手動測試腳本:curl
shell# /etc/zabbix/alertscripts/sendSMS.sh xxxxxxxxxxx "" "尊敬的客戶,您的訂單已出庫發貨,正在配送中,請您耐心等待。"
腳本第一個參數爲手機號碼;第二個參數不會用到,設爲空就行;第三個參數爲短信內容。ide
注意:短信內容要符合要求,不要發送廣告或者聊天短信,不然帳戶可能會被禁用。實測這種訂單類短信是不會被屏蔽的。若是短信接收有很高的延遲,能夠聯繫客服。這不是作廣告哦,我測試腳本的時候,晚上發出的zabbix告警短信次日早上才收到,聯繫客服後問題解決了~測試
腳本執行後,到日誌文件/tmp/SMS.log裏查看返回值,若是大於0表明發送成功,小於0發送失敗。見下圖:網站
2、配置告警方式(Media types)
選擇【Administration】->【Media types】,建立短信告警方式,以下圖:
注意,"Name"給告警方式起個名字,"Type"選擇Script類型,"Script name"填寫上面建立的腳本名。
3、配置用戶的手機號碼
選擇【Administration】->【Users】,進入用戶配置界面,在"Media"選項卡中配置用戶接收告警的手機號碼。點擊"Add",在彈出的窗口中輸入用戶手機號,見下圖:
4、配置告警動做(Action)
選擇【Configuration】->【Actions】,進入告警動做配置界面,建立新的action。
官方資料:https://www.zabbix.com/documentation/2.2/manual/config/notifications/action
一、配置短信內容(Default message)
二、配置告警條件(Conditions)
三、配置告警接收人(Action operations)