iostat統計磁盤信息的時候,使用的是/proc/diskstats ,cat /proc/diskstats顯示以下ios
1 0 ram0 0 0 0 0 0 0 0 0 0 0 0 1 1 ram1 0 0 0 0 0 0 0 0 0 0 0 1 2 ram2 0 0 0 0 0 0 0 0 0 0 0 1 3 ram3 0 0 0 0 0 0 0 0 0 0 0 1 4 ram4 0 0 0 0 0 0 0 0 0 0 0 1 5 ram5 0 0 0 0 0 0 0 0 0 0 0 1 6 ram6 0 0 0 0 0 0 0 0 0 0 0 1 7 ram7 0 0 0 0 0 0 0 0 0 0 0 1 8 ram8 0 0 0 0 0 0 0 0 0 0 0 1 9 ram9 0 0 0 0 0 0 0 0 0 0 0 1 10 ram10 0 0 0 0 0 0 0 0 0 0 0 1 11 ram11 0 0 0 0 0 0 0 0 0 0 0 1 12 ram12 0 0 0 0 0 0 0 0 0 0 0 1 13 ram13 0 0 0 0 0 0 0 0 0 0 0 1 14 ram14 0 0 0 0 0 0 0 0 0 0 0 1 15 ram15 0 0 0 0 0 0 0 0 0 0 0 7 0 loop0 0 0 0 0 0 0 0 0 0 0 0 7 1 loop1 0 0 0 0 0 0 0 0 0 0 0 7 2 loop2 0 0 0 0 0 0 0 0 0 0 0 7 3 loop3 0 0 0 0 0 0 0 0 0 0 0 7 4 loop4 0 0 0 0 0 0 0 0 0 0 0 7 5 loop5 0 0 0 0 0 0 0 0 0 0 0 7 6 loop6 0 0 0 0 0 0 0 0 0 0 0 7 7 loop7 0 0 0 0 0 0 0 0 0 0 0 8 0 sda 3836 1551 149462 7579 3762686 31005542 278146400 23009652 0 14464012 23013470 8 1 sda1 668 242 24098 267 8 2 32 40 0 283 306 8 2 sda2 3015 1309 124140 7239 3762678 31005540 278146368 23009612 0 14463763 23013091 11 0 sr0 0 0 0 0 0 0 0 0 0 0 0 253 0 dm-0 3639 0 118434 13132 34768259 0 278146072 392988355 0 14464578 393025110 253 1 dm-1 300 0 2400 523 0 0 0 0 0 213 523 253 2 dm-2 321 0 2562 283 37 0 296 266 0 317 549
這個命令用於顯示磁盤、分區和統計信息web
sda爲整個硬盤的統計信息服務器
sda1爲第一個分區的統計信息oop
sda2爲第二個分區的統計信息。測試
ramdisk設備爲經過軟件將RAM當作硬盤來使用的一項技術。spa
硬盤參數詳解以下:.net
8 0 sda 3836 1551 149462 7579 3762686 31005542 278146400 23009652 0 14464012 23013470
編號 設備 讀完成次數 合併完成次數 讀扇區次數 讀操做花費毫秒數 寫完成次數 合併寫完成次數 寫扇區次數 寫操做花費的毫秒數 正在處理的輸入/輸出請求數 輸入/輸出操做花費的毫秒數 輸入/輸出操做花費的加權毫秒數。
有了這些信息咱們就能夠添加進zabbix進行監控rest
1. 添加userparameter_io.conf配置文件code
在/etc/zabbix/zabbix_agentd.d下添加userparameter_io.conf, 文件內容以下:server
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)
二、重啓zabbix-agent服務
systemctl restart zabbix-agent
三、測試zabbix-server獲取數據
zabbix_get -s 目標服務器IP -p 10050 -k custom.vfs.dev.write.ops[sda]
四、配置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操做的輸入輸出沒有配置監控項,主要監控的是磁盤的讀寫狀況,接着添加相應的圖形便可