有客戶監控CDB的公網延遲,細粒度到每秒,對你沒聽錯是每秒,雲平臺級別的監控阿里雲/騰訊雲雖都支持自定義監控,可是限於數據的存儲,粒度最小爲每一分鐘,阿里雲免費雲監控頻率是5分鐘,收費的粒度纔可調至1分鐘,對此想到利用ZABBIX來進行每一秒的數據上報,最終利用其繪圖來進行展現。在此拋磚引玉,其餘自定義監控均爲此類方法,只須要簡單修改腳本獲取到須要上報的值便可。bash
安裝與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 服務器的端口
在此只簡單來監控公網地址的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 &
注意:此處的主機名稱爲腳本中的-LOCALHOS3d
注意:此處類型選擇zabbix採集器,鍵值爲腳本中的ZAX_KEY,下面填寫容許上報的主機IPcode
能夠看到監控的粒度爲1秒鐘server