天天看點

zabbix應用之短信報警

    在本實驗中,短信網關使用了中國網建SMS短信通。不同的服務提供商所開發的短信接口不同,不過大都是http接口,腳本略作修改即可~

效果圖如下:

<a href="http://s3.51cto.com/wyfs02/M02/49/39/wKiom1QRMEDAQpLQAAGPBYdRFuk324.jpg" target="_blank"></a>

下面是配置步驟:

一、zabbix伺服器端配置短信腳本

    假如你的zabbix server配置檔案zabbix_server.conf中AlertScriptsPath參數的路徑為/etc/zabbix/alertscripts,進入/etc/zabbix/alertscripts目錄,建立短信告警腳本sendSMS.sh(附件有下載下傳):

<code>#!/bin/bash</code>

<code>#</code>

<code># Filename:    sendSMS.sh</code>

<code># Revision:    1.0</code>

<code># Date:        2014/09/11</code>

<code># Author:      Qicheng</code>

<code># Email:</code>

<code># Website:     http://qicheng0211.blog.51cto.com/</code>

<code># Description: zabbix短信告警腳本</code>

<code># Notes:       短信網關使用了中國網建SMS短信通</code>

<code># 腳本的日志檔案</code>

<code>LOGFILE=</code><code>"/tmp/SMS.log"</code>

<code>:&gt;</code><code>"$LOGFILE"</code>

<code>exec</code> <code>1&gt;</code><code>"$LOGFILE"</code>

<code>exec</code> <code>2&gt;&amp;1</code>

<code>MOBILE_NUMBER=$1    </code><code># 手機号碼</code>

<code>MESSAGE_UTF8=$3        </code><code># 短信内容</code>

<code>XXD=</code><code>"/usr/bin/xxd"</code>

<code>CURL=</code><code>"/usr/bin/curl"</code>

<code>TIMEOUT=5</code>

<code># 短信内容要經過URL編碼處理,除了下面這種方法,也可以用curl的--data-urlencode選項實作。</code>

<code>MESSAGE_ENCODE=$(</code><code>echo</code> <code>"$MESSAGE_UTF8"</code> <code>| ${XXD} -</code><code>ps</code> <code>| </code><code>sed</code> <code>'s/\(..\)/%\1/g'</code> <code>| </code><code>tr</code> <code>-d </code><code>'\n'</code><code>)</code>

<code># Uid和Key的值需要自行修改,http://www.smschinese.cn/api.shtml</code>

<code># Uid 網站使用者名</code>

<code># Key 接口秘鑰</code>

<code>Uid=</code><code>"xxxxxx"</code>

<code>Key=</code><code>"xxxxxx"</code>

<code># SMS API</code>

<code>URL=</code><code>"http://utf8.sms.webchinese.cn/?Uid=${Uid}&amp;Key=${Key}&amp;smsMob=${MOBILE_NUMBER}&amp;smsText=${MESSAGE_ENCODE}"</code>

<code># Send it</code>

<code>set</code> <code>-x</code>

<code>${CURL} -s --connect-timeout ${TIMEOUT} </code><code>"${URL}"</code>

    然後執行下面的指令,設定腳本和日志檔案權限:

<code>shell</code><code># touch /tmp/SMS.log</code>

<code>shell</code><code># chown zabbix:zabbix /tmp/SMS.log</code>

<code>shell</code><code># chown zabbix:zabbix /etc/zabbix/alertscripts/sendSMS.sh</code>

<code>shell</code><code># chmod +x /etc/zabbix/alertscripts/sendSMS.sh</code>

    手動測試腳本:

<code>shell</code><code># /etc/zabbix/alertscripts/sendSMS.sh xxxxxxxxxxx "" "尊敬的客戶,您的訂單已出庫發貨,正在配送中,請您耐心等待。"</code>

    腳本第一個參數為手機号碼;第二個參數不會用到,設為空就行;第三個參數為短信内容。

    注意:短信内容要符合要求,不要發送廣告或者聊天短信,否則賬戶可能會被禁用。實測這種訂單類短信是不會被屏蔽的。如果短信接收有很高的延遲,可以聯系客服。這不是做廣告哦,我測試腳本的時候,晚上發出的zabbix告警短信第二天早上才收到,聯系客服後問題解決了~

    腳本執行後,到日志檔案/tmp/SMS.log裡檢視傳回值,如果大于0代表發送成功,小于0發送失敗。見下圖:

<a href="http://s3.51cto.com/wyfs02/M02/49/39/wKiom1QRLQ-RfKhgAAJhfREMakU221.jpg" target="_blank"></a>

二、配置告警方式(Media types)

    選擇【Administration】-&gt;【Media types】,建立短信告警方式,如下圖:

<a href="http://s3.51cto.com/wyfs02/M00/49/3A/wKiom1QRND2hktgCAAH9PtA8KS0015.jpg" target="_blank"></a>

    注意,"Name"給告警方式起個名字,"Type"選擇Script類型,"Script name"填寫上面建立的腳本名。

三、配置使用者的手機号碼

    選擇【Administration】-&gt;【Users】,進入使用者配置界面,在"Media"頁籤中配置使用者接收告警的手機号碼。點選"Add",在彈出的視窗中輸入使用者手機号,見下圖:

<a href="http://s3.51cto.com/wyfs02/M00/49/3B/wKioL1QRNgWz2v0KAADamyRwGkc103.jpg" target="_blank"></a>

四、配置告警動作(Action)

    選擇【Configuration】-&gt;【Actions】,進入告警動作配置界面,建立新的action。

    1、配置短信内容(Default message)

<a href="http://s3.51cto.com/wyfs02/M02/49/3A/wKiom1QROCmDog5UAAF-1mLE7Pw739.jpg" target="_blank"></a>

    2、配置告警條件(Conditions)

<a href="http://s3.51cto.com/wyfs02/M00/49/3B/wKioL1QROEXSwE1wAAGchic1RsM276.jpg" target="_blank"></a>

    3、配置告警接收人(Action operations)

<a href="http://s3.51cto.com/wyfs02/M01/49/3A/wKiom1QROETAZ63lAAMpCueXQKQ240.jpg" target="_blank"></a>

<a href="http://down.51cto.com/data/2364850" target="_blank">附件:http://down.51cto.com/data/2364850</a>

本文轉自 張斌_青島 51CTO部落格,原文連結:http://blog.51cto.com/qicheng0211/1551105