zabbix之磁碟效能監控
阿新 • • 發佈:2018-12-25
iostat統計磁碟資訊的時候,使用的是/proc/diskstats ,cat /proc/diskstats顯示如下
0 ram0 0 0 0 0 0 0 0 0 0 0 0 1 ram1 0 0 0 0 0 0 0 0 0 0 0 2 ram2 0 0 0 0 0 0 0 0 0 0 0 3 ram3 0 0 0 0 0 0 0 0 0 0 0 4 ram4 0 0 0 0 0 0 0 0 0 0 0 5 ram5 0 0 0 0 0 0 0 0 0 0 0 6 ram6 0 0 0 0 0 0 0 0 0 0 0 7 ram7 0 0 0 0 0 0 0 0 0 0 0 8 ram8 0 0 0 0 0 0 0 0 0 0 0 9 ram9 0 0 0 0 0 0 0 0 0 0 0 10 ram10 0 0 0 0 0 0 0 0 0 0 0 11 ram11 0 0 0 0 0 0 0 0 0 0 0 12 ram12 0 0 0 0 0 0 0 0 0 0 0 13 ram13 0 0 0 0 0 0 0 0 0 0 0 14 ram14 0 0 0 0 0 0 0 0 0 0 0 15 ram15 0 0 0 0 0 0 0 0 0 0 0 0 loop0 0 0 0 0 0 0 0 0 0 0 0 1 loop1 0 0 0 0 0 0 0 0 0 0 0 2 loop2 0 0 0 0 0 0 0 0 0 0 0 3 loop3 0 0 0 0 0 0 0 0 0 0 0 4 loop4 0 0 0 0 0 0 0 0 0 0 0 5 loop5 0 0 0 0 0 0 0 0 0 0 0 6 loop6 0 0 0 0 0 0 0 0 0 0 0 7 loop7 0 0 0 0 0 0 0 0 0 0 0 0 sda 3836 1551 149462 7579 3762686 31005542 278146400 23009652 0 14464012 23013470 1 sda1 668 242 24098 267 8 2 32 40 0 283 306 2 sda2 3015 1309 124140 7239 3762678 31005540 278146368 23009612 0 14463763 23013091 0 sr0 0 0 0 0 0 0 0 0 0 0 0 0 dm-0 3639 0 118434 13132 34768259 0 278146072 392988355 0 14464578 393025110 1 dm-1 300 0 2400 523 0 0 0 0 0 213 523 2 dm-2 321 0 2562 283 37 0 296 266 0 317 549
這個命令用於顯示磁碟、分割槽和統計資訊
sda為整個硬碟的統計資訊
sda1為第一個分割槽的統計資訊
sda2為第二個分割槽的統計資訊。
ramdisk裝置為通過軟體將RAM當做硬碟來使用的一項技術。
硬碟引數詳解如下:
8 0 sda 3836 1551 149462 7579 3762686 31005542 278146400 23009652 0 14464012 23013470 編號 裝置 讀完成次數 合併完成次數 讀扇區次數 讀操作花費毫秒數 寫完成次數 合併寫完成次數 寫扇區次數 寫操作花費的毫秒數 正在處理的輸入/輸出請求數 輸入/輸出操作花費的毫秒數 輸入/輸出操作花費的加權毫秒數。
有了這些資訊我們就可以新增進zabbix進行監控
1. 新增userparameter_io.conf配置檔案
在/etc/zabbix/zabbix_agentd.d下新增userparameter_io.conf, 檔案內容如下:
UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}' //磁碟讀的次數 UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}' //磁碟讀的毫秒數 UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}' //磁碟寫的次數 UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}' //磁碟寫的毫秒數 UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}' //正在處理的輸入輸出的請求數 UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}' //花費在IO操作上的毫秒數 UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}' //讀扇區的次數(一個扇區的等於512B) UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}' //寫扇區的次數(一個扇區的等於512B)
2、重啟zabbix-agent服務
systemctl restart zabbix-agent
3、測試zabbix-server獲取資料
zabbix_get -s 目標伺服器IP -p 10050 -k custom.vfs.dev.write.ops[sda]
4、配置zabbix-server
進入web介面—》配置—》模板—建立模板,或者直接在現有的Linux模板下新增監控項
配置第一個監控項
Name: Disk:$1:Read:Bytes/sec
Key: custom.vfs.dev.read.sectors[sda]
Units: B/sec
Store value: speed per second //會進行差值計算
Use custom multiplier 512 //會對值乘以512,因為這裡是一個扇區,轉換為位元組為512B
第二監控項:和第一個一樣的配置過程
Name:Disk:$1:Write:Bytes/sec
Key: custom.vfs.dev.write.sectors[sda]
Units: B/sec
Store value: speed per second
Use custom multiplier 512
第三個監控項配置引數
Name:Disk:$1:Read:ops per second
Key: custom.vfs.dev.read.ops[sda]
Units: ops/second
Store value: speed per second
第四個監控項配置引數:
Name: Disk:$1:Write:ops per second
Key: custom.vfs.dev.write.ops[sda]
Units: ops/second
Store value: speed per second
第五個監控項配置引數:
Name: Disk:$1:Read:ms
Key: custom.vfs.dev.read.ms[sda]
Units: ms
Store value: speed per second
第六個監控項配置引數:
Name:Disk:$1:Write:ms
Key: custom.vfs.dev.write.ms[sda]
Units: ms
Store value: speed per second
IO操作的輸入輸出沒有配置監控項,主要監控的是磁碟的讀寫情況,接著新增相應的圖形即可