1 已挂载文件系统的发现

概述

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

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

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

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

配置

Master 监控项

使用以下键值创建一个 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规则

创建一个低级别自动发现规则,类型为“依赖式 监控项”:

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

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

在“过滤器”选项卡中,您可以添加一个正则表达式,仅过滤出读写文件系统:

依赖 监控项 原型

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

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

  • 名称:Free disk space on {#FSNAME}, type: {#FSTYPE}
  • :Free[{#FSNAME}]

在信息类型中使用:

  • 数值(无符号) 用于如 'free'、'total'、'使用率' 等指标
  • 数值(float) 用于如 'pfree'、'pused'(百分比)等指标

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

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

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