分布式監(jiān)控系統(tǒng)Zabbix3.2添加自動發(fā)現(xiàn)磁盤IO并注冊監(jiān)控

  ?zabbix并沒有給我們提供這么一個模板來完成在Linux中磁盤IO的監(jiān)控,所以我們需要自己來創(chuàng)建一個,在此還是在Linux OS中添加。

  由于一臺服務器中磁盤眾多,如果只一兩臺可以手動添加,但服務集群達到幾十那就非常麻煩,因此需要利用?自動發(fā)現(xiàn) 這個功能,自動發(fā)現(xiàn)后自動添加對服務器磁盤的監(jiān)控,而且添加磁盤后也會自動添加到監(jiān)控,實現(xiàn)自動化運維的效果,所以在這里也演示一次自動發(fā)現(xiàn)的配置。

打開Linux模板,添加自動發(fā)現(xiàn)規(guī)則

上面的key值是需要在 zabbix_agent.conf 中配置的?

UserParameter=disk.discovery,/usr/local/share/zabbix/alertscripts/disk_discovery.sh

自動發(fā)面的規(guī)則用shell代碼實現(xiàn),返回一段磁盤的json list


代碼 disk_discovery.sh

#!/bin/bash

diskarray=(`cat /proc/diskstats |grep -E"\bsd[abcdefg]\b|\bxvd[abcdefg]\b"|grep -i"\b$1\b"|awk '{print$3}'|sort|uniq? 2>/dev/null`)

length=${#diskarray[@]}

printf"{\n"printf? '\t'"\"data\":["

for((i=0;i<$length;i++))

do? ? ? ??

printf '\n\t\t{'

?printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"

if[$i-lt$[$length-1] ];

then

? ? ? ? ? ? ? ? printf ','

? ? ? ? fi

done

printf? "\n\t]\n"printf "}\n"

到此自動發(fā)現(xiàn)磁盤已完,有點簡單吧。?

添加監(jiān)控項

?按照上面的內(nèi)容添加第一個寫扇區(qū)的次數(shù)監(jiān)控,接下來按下面的內(nèi)容添加共6個內(nèi)容。

?內(nèi)容介紹

名稱: {#DISK_NAME}磁盤讀的次數(shù)

鍵值: disk.status[{#DISK_NAME},read.ops]

單位: ops/second

儲存值:差量(每秒速率)

名稱: {#DISK_NAME}磁盤寫的次數(shù)

鍵值: disk.status[{#DISK_NAME},write.ops]

單位: ops/second

儲存值:差量(每秒速率)

名稱: {#DISK_NAME}磁盤讀的毫秒數(shù)

鍵值: disk.status[{#DISK_NAME},read.ms]

單位: ms

儲存值:差量(每秒速率)

名稱: {#DISK_NAME}磁盤寫的毫秒數(shù)

鍵值: disk.status[{#DISK_NAME},write.ms]

單位: ms

儲存值:差量(每秒速率)

名稱: {#DISK_NAME}讀扇區(qū)的次數(shù)

鍵值:? disk.status[{#DISK_NAME},read.sectors]

單位:? B/sec

使用自定義倍數(shù): 512儲存值:差量(每秒速率)

名稱: {#DISK_NAME}寫扇區(qū)的次數(shù)

鍵值:? disk.status[{#DISK_NAME},write.sectors]

單位:? B/sec

使用自定義倍數(shù): 512儲存值:差量(每秒速率)


然后如果得到這些值是需要shell腳本的:

disk_status.sh

#/bin/sh

device=$1

DISK=$2

case $DISK in? ? ? ??

?read.ops)

? ? ? ? ? ? /bin/cat /proc/diskstats | grep"\b$device\b"| head -1 | awk '{print$4}'#//磁盤讀的次數(shù)? ? ? ? ? ?

?;;

? ? ? ? read.ms)

? ? ? ? ? ? /bin/cat /proc/diskstats | grep"\b$device\b"| head -1 | awk '{print$7}'#//磁盤讀的毫秒數(shù)? ? ? ? ? ??

;;

? ? ? ? write.ops)

? ? ? ? ? ? /bin/cat /proc/diskstats | grep"\b$device\b"| head -1 | awk '{print$8}'#//磁盤寫的次數(shù)? ? ? ? ? ??

;;

? ? ? ? write.ms)

? ? ? ? ? ? /bin/cat /proc/diskstats | grep"\b$device\b"| head -1 | awk '{print$11}'#//磁盤寫的毫秒數(shù)? ? ? ? ? ?

?;;

? ? ? ? io.active)

? ? ? ? ? ? /bin/cat /proc/diskstats | grep"\b$device\b"| head -1 | awk '{print$12}'#//I/O的當前進度,? ? ? ? ? ?

?;;

? ? ? ? read.sectors)

? ? ? ? ? ? /bin/cat /proc/diskstats | grep"\b$device\b"| head -1 | awk '{print$6}'#//讀扇區(qū)的次數(shù)(一個扇區(qū)的等于512B)? ? ? ? ? ?

?;;

? ? ? ? write.sectors)

? ? ? ? ? ? /bin/cat /proc/diskstats | grep"\b$device\b"| head -1 | awk '{print$10}'#//寫扇區(qū)的次數(shù)(一個扇區(qū)的等于512B)? ? ? ? ? ??

;;

? ? ? ? io.ms)

? ? ? ? ? ? /bin/cat /proc/diskstats | grep"\b$device\b"| head -1 | awk '{print$13}'#//花費在IO操作上的毫秒數(shù)? ? ? ? ? ?

?;;

esac

?在客戶端中的zabbix_agent.conf 中一起配置:

UserParameter=disk.discovery,/usr/local/share/zabbix/alertscripts/disk_discovery.sh

UserParameter=disk.status[*],/usr/local/share/zabbix/alertscripts/disk_status.sh $1 $2

要注意的是以上兩個文件需要給x 執(zhí)行權(quán)限。

添加圖形顯示

在圖形原型中添加,注意名稱中要帶哪個磁盤的動態(tài)名稱,不然會出現(xiàn)Disk IO 已注冊的錯誤信息。

zabbix3 Cannot create graph: graph with the same name "Disk IO" already exists

在監(jiān)控項中選擇上面添加的6個監(jiān)控項。

測試效果

重啟客戶端的zabbix_agentd,然后在zabbix服務端對服務發(fā)現(xiàn)和寫扇區(qū)次數(shù)進行測試。代碼如下,有顯示內(nèi)容說明已經(jīng)部署成功。

?查看圖形化,選擇監(jiān)控主機,圖形中查看,若還沒有項,需要等個幾分鐘再看。

?問題:

網(wǎng)上有網(wǎng)友用的是python來實現(xiàn)自動發(fā)現(xiàn)功能,但測試發(fā)現(xiàn)老是報錯:

python import: command not found

可能是依賴包有問題,考慮到集群服務器的python環(huán)境問題,因此就不考慮用python的實現(xiàn)。

以上的內(nèi)容也是基于之前的文章中的內(nèi)容作為介紹基礎(chǔ),若有其他問題可先看之前的文章中介紹的基礎(chǔ)環(huán)境。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 系統(tǒng)巡檢腳本:Version 2016.08.09 ############################ 系統(tǒng)...
    NamasAmitabha閱讀 1,466評論 0 0
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,268評論 2 33
  • 1.創(chuàng)建文件夾 !/bin/sh mkdir -m 777 "%%1" 2.創(chuàng)建文件 !/bin/sh touch...
    BigJeffWang閱讀 10,495評論 3 53
  • 一個夜的瘋狂。此時,我卻抽著煙。越來越醉。工作的電話未接有很多,老婆的也是。從未有過的坦然,因為我在醉中。我能想象...
    雲(yún)沉閱讀 365評論 0 0
  • 目的:核心肌群+背部 平衡交換肘支撐起來,單側(cè)手8次 單腿10--15次 左右交叉為一次,20次 高位下拉的器械,...
    Sonia華子閱讀 212評論 0 0

友情鏈接更多精彩內(nèi)容