1. 程式人生 > >zabbix-監控磁碟i/o

zabbix-監控磁碟i/o

1、監控伺服器上所有的磁碟瞬時讀寫操作:

  • 首先獲取要監控的選項是什麼
  • 其次對選取的值的一個獲取
  • 最後對選取出來的值配置item,然後監控

我們檢視每個磁碟的瞬時讀寫的頻率:

[root@hadoop9 ~]# cat /proc/diskstats 
   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 32 sdc 27568028 139712 5047502418 272592849 100208550 540378156 5124713960
148705858 0 124497117 421062896 8 33 sdc1 27567761 139687 5047500082 272592791 100208550 540378156 5124713960 148705858 0 124497061 421062848 8 112 sdh 29756013 135419 5093584570 281550386 101623899 560636431 5298107656 151310233 0 132534153 432617247 8 113 sdh1 29755746 135394 5093582234 281550339 101623899 560636431 5298107656 151310233 0 132534105 432617200 8 64 sde 48247553 142767 6926249874 354775237 155898176 976986048 9063097720 352993551 0 142729954 707406126 8 65 sde1 48247286 142742 6926247538 354775186 155898176 976986048 9063097720 352993551 0 142729903 707406087 8 96 sdg 46487295 151530 6854341546 570893869 176058483 1122842683 10391240968 920896943 0 182101626 1491395362 8 97 sdg1 46487028 151505 6854339210 570893827 176058483 1122842683 10391240968 920896943 0 182101604 1491395345 8 16 sdb 35040109 139470 5691850418 330985376 148242071 703372440 6812941320 268760333 0 141995863 599404778 8 17 sdb1 35039842 139445 5691848082 330985321 148242071 703372440 6812941320 268760333 0 141995808 599404717 8 192 sdm 22982706 126199 4152673458 231820580 78702471 536012473 4917738480 128750123 0 111267441 360384297 8 193 sdm1 22982439 126174 4152671122 231820507 78702471 536012473 4917738480 128750123 0 111267369 360384241 8 144 sdj 48903503 147517 6769875970 376366803 177089443 1112566006 10317273528 526485295 0 166151968 902451435 8 145 sdj1 48903236 147492 6769873634 376366734 177089443 1112566006 10317273528 526485295 0 166151898 902451368 8 160 sdk 48234486 142131 7165051530 290089227 166809180 1072230661 9912340944 389450343 0 132839061 679162823 8 161 sdk1 48234219 142106 7165049194 290089165 166809180 1072230661 9912340944 389450343 0 132838998 679162744 8 80 sdf 42728107 142937 6289364010 340932591 143533432 981483756 9000163936 425272111 0 145636015 765873342 8 81 sdf1 42727840 142912 6289361674 340932532 143533432 981483756 9000163936 425272111 0 145635956 765873283 8 176 sdl 37774667 127702 5932219178 270326523 142362976 847141452 7916061368 299053055 0 126453771 569058408 8 177 sdl1 37774400 127677 5932216842 270326454 142362976 847141452 7916061368 299053055 0 126453707 569058340 8 128 sdi 28930902 138686 6029022914 298432052 73859774 543128014 4935922672 139671086 0 127137683 437911829 8 129 sdi1 28930635 138661 6029020578 298431988 73859774 543128014 4935922672 139671086 0 127137610 437911749 8 48 sdd 37130208 142730 5766481674 302063893 147055045 878211155 8202159752 428668631 0 135785861 730402827 8 49 sdd1 37129941 142705 5766479338 302063843 147055045 878211155 8202159752 428668631 0 135785799 730402764 8 0 sda 531503 188935 28396196 1222396 8051980 9411114 139704776 4229980 0 2183762 5446637 8 1 sda1 581 12 21978 72 8 2 80 8 0 80 80 8 2 sda2 16132 98916 920384 20780 1188 6469 61264 3277 0 22130 24015 8 3 sda3 514565 90007 27452034 1201514 8050784 9404643 139643432 4226695 0 2161628 5422512

每項以及每列的數字表達的含義,這裡引用他人的部落格:

第一至第三個域,分別是主裝置號,次裝置號,裝置名稱

第4個域:讀完成次數 —– 讀磁碟的次數,成功完成讀的總次數。

第5個域:合併讀完成次數, 第9個域:合併寫完成次數。為了效率可能會合並相鄰的讀和寫。從而兩次4K的讀在它最終被處理到磁碟上之前可能會變成一次8K的讀,才被計數(和排隊),因此只有一次I/O操作。這個域使你知道這樣的操作有多頻繁。

第6個域:讀扇區的次數,成功讀過的扇區總次數。

第7個域:讀花費的毫秒數,這是所有讀操作所花費的毫秒數(用__make_request()到end_that_request_last()測量)。

第8個域:寫完成次數 —-寫完成的次數,成功寫完成的總次數。

第9個域:合併寫完成次數 —–合併寫次數。

第10個域:寫扇區次數 —- 寫扇區的次數,成功寫扇區總次數。

第11個域:寫操作花費的毫秒數 — 寫花費的毫秒數,這是所有寫操作所花費的毫秒數(用__make_request()到end_that_request_last()測量)。

第12個域:正在處理的輸入/輸出請求數 – -I/O的當前進度,只有這個域應該是0。當請求被交給適當的request_queue_t時增加和請求完成時減小。

第13個域:輸入/輸出操作花費的毫秒數 —-花在I/O操作上的毫秒數,這個域會增長只要field 9不為0。

第14個域:輸入/輸出操作花費的加權毫秒數 —– 加權, 花在I/O操作上的毫秒數,在每次I/O開始,I/O結束,I/O合併時這個域都會增加。這可以給I/O完成時間和儲存那些可以累積的提供一個便利的測量標準。

這裡我們選取第4列和第8列,讀和寫的頻率

cat /proc/diskstats | grep sdc |head -1 | awk '{print $4}'


由於上面監控的磁碟較多,所以我們選擇傳參的方式進行配置Userparameter.如下圖所示:
這裡寫圖片描述
註釋:這裡因為牽涉到很多磁碟,所以我們可以寫【*】,到時候我們填引數的時候 星號指所特定的磁碟,如sdc等。 1$4表示列印的第4列,具體的解釋可看官網,或者之前寫的zabbix文件中去檢視。

配置好後,我們記得要從其zabbix-agent,重啟就不多說了。重啟後我們在zabbix-get端去執行一下,看看能不能獲取到該值:

[root@kafzook1 ~]# zabbix_get -s 192.168.14.156 -k check_disk_io_read[sdc]

獲取到該值後,說明zabbix可以獲取到該值了,下面就是把該值配置到zabbix-web中去了。由於這裡監控的機器是14臺比較多,每臺磁碟數都在12個左右,所以我們選擇模板方式。
具體的配置我們這裡不多說了,之前zabbix的介紹文件中有寫。
配置後的情況如下:

模板中有兩個application,分別是讀,寫。

點進items模組,我們會看到新增的所有磁碟的監控項:

配置完後,我們去配置一下graph,這樣資料就會很直觀的表現在我們的面前

然後我們讓所有的機器hadoop-hadoop14,14臺機器的每個磁碟的讀寫監控放在一個screen中去觀看,效果如下: