zabbix給我們提供了一些較常用的監控模板,但現在我們如果想要監控我們磁盤的IO,這時候zabbix並沒有給我們提供這么一個模板,所以我們需要自己來創建一個模板來完成磁盤IO的監控。
1、
[root@pcidata-svr1 ~]# iostat Linux 2.6.32-431.el6.x86_64 (pcidata-svr1) 2018年10月31日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.93 0.00 0.74 0.65 0.00 97.68 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn scd0 0.00 0.00 0.00 360 0 sda 48.42 11.98 1768.03 128702020 18988493968
在linux系統中可以使用iostat命令查看磁盤io性能,單獨執行iostat,顯示的結果為從系統開機到當前執行時刻的統計信息。以上輸出中,除最上面指示系統版本、主機名和日期的一行外,另有兩部分:
avg-cpu: 總體cpu使用情況統計信息,對於多核cpu,這里為所有cpu的平均值;
Device: 各磁盤設備的IO統計信息.
2、
[root@pcidata-svr1 ~]# iostat -dxkt Linux 2.6.32-431.el6.x86_64 (pcidata-svr1) 2018年10月31日 _x86_64_ (4 CPU) 2018年10月31日 10時05分17秒 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util scd0 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 1.07 1.07 0.00 sda 0.01 172.80 0.21 48.21 5.99 884.02 36.77 0.15 3.18 1.38 6.66
rrqm/s: 每秒對該設備的讀請求被合並次數,文件系統會對讀取同塊(block)的請求進行合並
wrqm/s: 每秒對該設備的寫請求被合並次數
r/s: 每秒完成的讀次數
w/s: 每秒完成的寫次數
rkB/s: 每秒讀數據量(kB為單位)
wkB/s: 每秒寫數據量(kB為單位)
avgrq-sz:平均每次IO操作的數據量(扇區數為單位)
avgqu-sz: 平均等待處理的IO請求隊列長度
await: 平均每次IO請求等待時間(包括等待時間和處理時間,毫秒為單位)
svctm: 平均每次IO請求的處理時間(毫秒為單位)
%util: 采用周期內用於IO操作的時間比率,即IO隊列非空的時間比率
3、接下來我們在agentd中添加自定義監控項
在/etc/zabbix/zabbix_agentd.d下添加userparameter, 文件內容如下:
UserParameter=custom.vfs.dev.read.[*],cat /home/zabbix/disk.txt |grep $1 |tail -1 |awk '{print $$3}' UserParameter=custom.vfs.dev.write.[*],cat /home/zabbix/disk.txt |grep $1 |tail -1 |awk '{print $$4}'
4、然后在后台寫個腳本生成的記錄保存到disk.txt中。
[zabbix@pdrac01 ~]$ cat IO_Status.sh
#!/bin/bash
iostat 20 >> disk.txt
5、配置zabbix模板
key值添加相應盤符:custom.vfs.dev.read.[sde]
6、最后呈現的圖形結果