ZABBIX監控每秒業務狀態

1、背景

有客戶監控CDB的公網延遲,細粒度到每秒,對你沒聽錯是每秒,雲平臺級別的監控阿里雲/騰訊雲雖都支持自定義監控,可是限於數據的存儲,粒度最小爲每一分鐘,阿里雲免費雲監控頻率是5分鐘,收費的粒度纔可調至1分鐘,對此想到利用ZABBIX來進行每一秒的數據上報,最終利用其繪圖來進行展現。在此拋磚引玉,其餘自定義監控均爲此類方法,只須要簡單修改腳本獲取到須要上報的值便可。bash

2、部署

2.1 安裝ZABBIX SENDER

安裝與zabbix版本同樣的zabbix sender
例如此處安裝3.0的版本服務器

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
yum install  zabbix-sender -y

其核心爲利用zabbix_sender來發送數據分佈式

zabbix_sender 
-z zabbix服務器的地址
-s 建立主機的主機名稱
-k 鍵值名稱
-o 上報的數據
-p zabbix 服務器的端口

2.2 編寫腳本

在此只簡單來監控公網地址的ping延遲ide

#!/bin/bash
#auth:kaliarch

# ping可執行路徑
PINGCMD=/usr/bin/ping
# zabbix_sender可執行文件路徑
SENDCMD=/usr/bin/zabbix_sender
# ping測主機ip地址
CHECKHOST=baidu.com11
# zabbix服務器ip地址
ZABBIXSERVER=43.254.55.xx
# zabbix服務器監聽端口
ZABBIXPORT=10051
# zabbix添加這條監控主機名
LOCALHOST=checkping_monitor
# ping包的數量
PAG_NUM=1
# 添加監控項的鍵值
ZAX_KEY=ping_response

# 獲取ping響應時間
check_ping() {
   $PINGCMD -c $PAG_NUM $CHECKHOST >/dev/null 2>&1
   if [ $? -eq 0 ];then
        RESPONSE_TIME=`$PINGCMD -c $PAG_NUM -w 1 $CHECKHOST |head -2 |tail -1|awk '{print $(NF-1)}'|cut -d= -f2`
        echo $RESPONSE_TIME
   else
        echo 0
   fi
}

# 發送數據到zabbixserver
send_data() {
  DATA=`check_ping`
  $SENDCMD -z $ZABBIXSERVER -s $LOCALHOST -k $ZAX_KEY -o $DATA
}

while true
do
        send_data
        sleep 0.5
done

其中上報給zabbix server端的數據能夠根據本身實際自定義需求上報便可
在服務器上將腳本在後臺運行便可。阿里雲

nohup /bin/bash check_ping.sh &

ZABBIX監控每秒業務狀態

2.3 ZABBIX WEB界面配置

  • 添加主機

ZABBIX監控每秒業務狀態
注意:此處的主機名稱爲腳本中的-LOCALHOS3d

  • 添加監控項

ZABBIX監控每秒業務狀態
注意:此處類型選擇zabbix採集器,鍵值爲腳本中的ZAX_KEY,下面填寫容許上報的主機IPcode

  • 配置圖像
    ZABBIX監控每秒業務狀態

2.3 圖像查看

ZABBIX監控每秒業務狀態
能夠看到監控的粒度爲1秒鐘server

3、總結

  • 其實對於監控數據上報頻率控制在1分鐘是比較理想的,不建議1秒鐘就進行數據上報,對於大規模監控就須要進行分佈式部署或使用zabbix proxy來分攤server的壓力。
  • 本次只是對於一些特殊客戶需求進行記錄,同時拋磚引玉能夠利用此方法來上報任何自定義的數據。
相關文章
相關標籤/搜索