Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

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

概述

可对已挂载的文件系统及相关属性 (挂载点名称, 挂载点类型, 文件系统大小和inode 数据)进行自动发现。

要想实现此功能,需要结合使用:

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

配置

主监控项

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

vfs.fs.get

设置信息类型为 "Text",为了识别大块JSON数据。

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

{
         "fsname": "/",
         "fstype": "rootfs",
         "bytes": {
           "total": 1000,
           "free": 500,
           "used": 500,
           "pfree": 50.00,
           "pused": 50.00
         },
         "inodes": {
           "total": 1000,
           "free": 500,
           "used": 500,
           "pfree": 50.00,
           "pused": 50.00
         }
       }
依赖型LLD规则

创建一个低级别自动发现规则作为 "依赖型监控项" 类型:

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

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

依赖型监控项原型

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

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

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

信息类型使用:

  • 数字 (无符号) 用于像 'free', 'total', 'used' 这样的度量
  • 数字 (浮点数) 用于像 'pfree', 'pused' (百分比) 这样的度量

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

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

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