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等。
配置好後,我們記得要從其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中去觀看,效果如下: