zabbix监控磁盘IO

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
vim 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: 选择想展示项即可

完~

文章目录
  1. 前置准备
  2. 获取item值
  3. zabbix web配置
  4. Grafana展示
    1. 绘图
|