1 自动发现已挂载的文件系统

Overview

可自动发现已挂载的文件系统及相关属性:

  • 挂载点名称
  • 文件系统类型
  • 文件系统大小
  • Inode 统计信息
  • 挂载选项

要想实现此功能,你可以使用:

  • 监控项vfs.fs.get 作为主监控项
  • 创建依赖监控项低级别自动发现规则和监控项原型

配置

主监控项

使用下面的键创建Zabbix agent监控项:

  1. vfs.fs.get

1 自动发现已挂载的文件系统 - 图1

JSON数据可能比较大,设置信息类型为 “Text”。

用于已挂载文件系统的监控项返回的数据会包含类似下面的信息:

  1. {
  2. "fsname": "/",
  3. "fstype": "rootfs",
  4. "bytes": {
  5. "total": 1000,
  6. "free": 500,
  7. "used": 500,
  8. "pfree": 50.00,
  9. "pused": 50.00
  10. },
  11. "inodes": {
  12. "total": 1000,
  13. "free": 500,
  14. "used": 500,
  15. "pfree": 50.00,
  16. "pused": 50.00
  17. }
  18. }
依赖LLD规则

创建 “依赖监控项” 类型的低级别自动发现规则:

1 自动发现已挂载的文件系统 - 图2

主监控项选择之前我们创建的 vfs.fs.get 监控项。.

在”LLD宏” 选项卡中自定义宏,使用对应的JSONPath:

1 自动发现已挂载的文件系统 - 图3

你可以在 “过滤器” 选项中添加正则表达式来过滤 read-write 文件系统:

1 自动发现已挂载的文件系统 - 图4

依赖监控项原型

在此LLD规则中创建一个监控项原型,类型选择 “依赖型监控项”。此原型的主监控项选择我们之前创建的 vfs.fs.get 监控项。

1 自动发现已挂载的文件系统 - 图5

注意,对于监控项原型的名称和键,其自定义宏的使用方式:

  • 名称: {#FSNAME}上的空闲磁盘空间, 类型: {#FSTYPE}
  • : Free[{#FSNAME}]

使用以下信息类型,:

  • 数字 (无正负) 用于像 ‘free’, ‘total’, ‘used’ 这样的指标
  • 浮点数 用于像 ‘pfree’, ‘pused’ (百分比) 这样的指标

在监控项原型 “预处理” 选项中选择JSONPath并使用下面的 JSONPath表达式作为参数:

  1. $.[?(@.fsname=='{#FSNAME}')].bytes.free.first()

1 自动发现已挂载的文件系统 - 图6

一旦自动发现开始工作,每个挂载点会创建一个监控项。 监控项会返回对应挂载点的空闲空间大小(字节)。