zabbix-3.2.11短信報警

要使用短信報警最好是本身的公司有短信的接口,你在向公司開發要短信接口html

公司沒有短信接口能夠去短信報警藉助於第三方平臺,與郵件報警指定第三方的郵件服務器相似,咱們須要指定短信發送服務器,這裏咱們以中國網建SMS短信通爲例,其官網地址以下:
http://sms.webchinese.com.cn/api.shtml
網站介紹瞭如何申請註冊用戶,設定登陸密鑰,以及相關api和返回碼的使用說明,經過這個教程能夠很方便的學會如何使用腳本發送報警信息。web

我介紹是公司本身有短信接口,如何實現zabbix短信報警
要用短信來接收zabbix的報警思路過程:
一、建立一個能夠發送短信的腳本
二、要讓zabbix來調用這個腳本,和傳參方式
三、設置用戶和定義報警級別來傳參用戶數據
四、設置動做有報警就把指定的報警信息傳輸給用戶shell

編寫短信報警的腳本

查看zabbix腳本默認路徑json

vim /etc/zabbix/zabbix_server.conf

zabbix-3.2.11短信報警
能夠在配置文件中設置腳本位置(注意在腳本文件上一個目錄必須叫alertscripts)vim

vim sendSMS.sh
#!/bin/bash
#version 1.1
#2018/7/24

CAT="/bin/cat"
CURL="/usr/bin/curl"
MOBILE_NUMBER=$1    # 手機號碼
MESSAGE_UTF8=$3     # 短信內容

MESSAGE(){
  ${CAT} <<EOF
{
   "bizType": 0,
   "smsContent": "$MESSAGE_UTF8",
   "userMobile": "$MOBILE_NUMBER"
 }
EOF
}

# Send it
${CURL} -i \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
-X POST -d "$(MESSAGE)" "大家開發提供的短信接口地址"

這裏要注意的是傳參的問題,在你的開發給你接口通常是用curl命令來調用的,在curl的-d參數中是不能直接用$1的方式來調用位置函數或函數的,首先,編寫一個生成腳本後期數據的函數。 這樣能夠避免出現與shell引用相關的各類麻煩,而且能夠更輕鬆地讀取維護腳本,而不是像在嘗試中那樣在curl的調用行上提供post數據例:api

generate_post_data()
{
  cat <<EOF
{
  "account": {
    "email": "$email",
    "screenName": "$screenName",
    "type": "$theType",
    "passwordSettings": {
      "password": "$password",
      "passwordConfirm": "$password"
    }
  },
  "firstName": "$firstName",
  "lastName": "$lastName",
  "middleName": "$middleName",
  "locale": "$locale"
}
EOF 
}

而後在調用curl時很容易使用該函數:bash

curl -i \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-X POST --data "$(generate_post_data)" "https://xxx:xxxxx@xxxx-www.xxxxx.com/xxxxx/xxxx/xxxx"

加上執行權限服務器

chmod +x sendSMS.sh

更改擁有人,組app

chown zabbix.zabiix sendSMS.sh

測試:

./sendSMS.sh 手機號碼11位 "" "短信內容:測試"curl

成功會收到短信
沒有短信,先看開發給的短信接口是否是能夠正常發短信,能夠就用sh -x 來調試腳本哪裏有問題

都成功了就能夠配置zabbix的控制面板了

首先配置報警媒介類型選擇SMS(沒有在右上角建立)

zabbix-3.2.11短信報警

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

在來建立用戶

zabbix-3.2.11短信報警

建立收件人這裏定義的就是發送到腳本的$1的內容,點擊add添加用戶
zabbix-3.2.11短信報警
zabbix-3.2.11短信報警
能夠選擇報警的嚴重性來發給不一樣的人,或者同一嚴重性發個多我的(中間用,號隔開)

接下來,建立報警動做的觸發器

zabbix-3.2.11短信報警
zabbix-3.2.11短信報警
zabbix-3.2.11短信報警
zabbix-3.2.11短信報警
zabbix-3.2.11短信報警
zabbix-3.2.11短信報警
zabbix-3.2.11短信報警
zabbix-3.2.11短信報警
zabbix-3.2.11短信報警

最後測試一下

kill掉一個agent
出現這種下圖這種問題就是你的腳本執行有問題,單獨執行看是否成功。

zabbix-3.2.11短信報警
出現sent表示zabbix發送成功,可仍是沒有收到短信,能夠在腳本里面加上個touch一個文件,看zabbix是否有調用到腳本。在查看一下配置文件中alterscriptspath路徑和你腳本路徑是否是同樣的,腳本的上一級目錄名字是否是alterscripts,腳本的有沒有x權限,是否是屬於zabbix用的。
zabbix-3.2.11短信報警

相關文章
相關標籤/搜索