zabbix监控Linux磁盘IO
前置准备
首先是查询磁盘类型
1 2 3
| [root@localhost script]# fdisk -l
Disk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 sectors
|
服务器上,基本是在vda盘上进行的IO,所以本次就监控vda就可以了
或者直接iostat -dxk 2
看一下效果,哪个设备是需要进行监控的,直接grep即可
附linux硬件设备概览(/dev目录下):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ide硬盘:/dev/hd[a-d]
SCSI/SATA/USB硬盘:/dev/sd[a-p]
u盘:/dev/sd[a-p]
软驱:/dev/fd[0-1]
打印机:25针:/dev/lp[0-2];USB: /dev/usb/lp[0-15]
鼠标:usb: /dev/usb/mouse[0-15];ps2: /dev/psaux
当前cd rom/dvd rom:/dev/cdrom
当前鼠标:/dev/mouse
|
获取item值
使用zabbix监控磁盘IO,只需要在服务器装一个zabbix_agent就,配置完监控脚本即可,这边也就不多说怎么装,怎么配置了,直接上脚本:
userparameter_mysql.conf
(/etc/zabbix/zabbix_agentd.d)添加
1
| UserParameter=disk.status[*],/etc/zabbix/script/disk-status.sdisk-status.sh $1
|
相应的,在/etc/zabbix/script
文件下,创建磁盘信息获取脚本disk-status.sh
:
内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #!/bin/bash
# 参数是否正确 if [ $# -ne "1" ];then echo "arg error!" fi
case $1 in
rrqm) iostat -dxk 1 2|grep -w vda|tail -1 |awk '{print $2}' ;;
wrqm) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $3}' ;;
rps) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $4}' ;;
wps) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $5}' ;;
rKBps) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $6}' ;;
wKBps) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $7}' ;;
avgrq-sz) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $8}' ;;
avgqu-sz) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $9}' ;;
await) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $10}' ;; svctm) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $13}' ;;
util) iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $14}' ;;
*) echo "Usage:$0(rrqm|wrqm|rps|wps|rKBps|wKBps|avgqu-sz|avgrq-sz|await|svctm|util)" ;; esac
|
配置完成,重启zabbix_agent:systemctl restart zabbix-agent
验证:
使用zabbix_get来验证:
1 2
| [root@localhost script]# zabbix_get -s 192.168.0.110 -k disk.status[util] 3.77
|
util%当前是3.77%,表明zabbix_agent监控配置成功。
zabbix web配置
在zabbix web界面,配置-> 模板,创建模板,Disk IO
在创建的模板中,选择监控项,点击创建监控项,以await
为例:
1 2 3 4 5
| 名称:await IO等待时间 类型:zabbix客户端 键值:disk.status[await] 信息类型:浮点数 应用集:Disk IO(自建)
|
保存即可
Grafana展示
zabbix自己的监控图,说实话,有点别扭,可以截止grafana做展示。
配置datasource:
1 2 3 4
| Name: Zabbix test Type:Zabbix URL: http://IP/zabbix/api_jsonrpc.php(IP为zabbix server机器的IP) Access:Browser
|
配置Zabbix API details 用户名/密码。是否使用直连数据库的数据,有配置zabbix的数据量的话可以选,不然不选也行;是否启用告警,选启用好了。
监控的dashboard,创建很简单,也可以直接找做好的导入即可。
其实挺简单,dashboard设置里面:
General,就你dashboard的名字,描述,tag简单的信息;
Variables,配置变量,这样既不用写死一个host了:
$group
1 2 3 4 5 6
| Name:group Type:Query Data source: zabbix test Refresh On Dashboard Load Query:* Multi-value和include all option勾上
|
一个变量就结束了
第二个变量$host:
1 2 3 4 5 6
| Name:host Type:Query Data source: zabbix test Refresh On Dashboard Load Query:$group.* Multi-value和include all option勾上
|
保存,这样dashboard的设置就完成了。
绘图
进入dashboard,点击Add graph
新增图形
选择Graph,主要就是设置Metrics
:
1 2 3 4 5 6
| Data source:zabbix test Query Mode:Metrics Group: $group Host: $host Application: Disk io item: 选择想展示项即可
|
完~