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

概述

可以发现已挂载的文件系统及其属性:

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

为此,您可以组合使用以下内容:

  • vfs.fs.get agent 监控项作为主监控项
  • 从属低级别发现规则和监控项原型

配置

主监控项

使用以下 key 创建一个 Zabbix agent 监控项:

vfs.fs.get

对于可能较大的 JSON 数据,请将信息类型设置为“文本”。

此监控项返回的数据将包含已挂载文件系统的类似如下内容:

[
  {
    "fsname": "/",
    "fstype": "ext4",
    "bytes": {
      "total": 249405239296,
      "free": 24069537792,
      "used": 212595294208,
      "pfree": 10.170306,
      "pused": 89.829694
    },
    "inodes": {
      "total": 15532032,
      "free": 12656665,
      "used": 2875367,
      "pfree": 81.487503,
      "pused": 18.512497
    },
    "options": "rw,noatime,errors=remount-ro"
  }
]
依赖型 LLD 规则

创建一个类型为 Dependent item 的低级别发现规则:

将我们创建的 vfs.fs.get 监控项选为主监控项。

LLD macros 选项卡中,定义带有相应 JSONPath 的自定义宏:

Filters 选项卡中,您可以添加一个正则表达式,仅筛选 读写 文件系统:

依赖监控项原型

在此 LLD 规则中创建一个类型为“Dependent item”的监控项原型。
将我们创建的 vfs.fs.get 监控项选为此原型的主监控项。

请注意在监控项原型名称和键值中使用自定义宏:

  • Name: Free disk space on {#FSNAME}, type: {#FSTYPE}
  • Key: Free[{#FSNAME}]

信息类型请使用:

  • Numeric (unsigned) 用于 'free'、'total'、'used' 等指标
  • Numeric (float) 用于 'pfree'、'pused'(百分比)等指标

在监控项原型的 Preprocessing 选项卡中选择 JSONPath,并将以下 JSONPath 表达式作为参数使用:

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

当发现开始时,将为每个挂载点创建一个监控项。
此监控项将返回给定挂载点的可用字节数。