1 Discovery of mounted filesystems

Overview

It is possible to discover mounted filesystems and their properties (mountpoint name, mountpoint type, filesystem size and inode statistics).

To do that, you may use a combination of:

  • the vfs.fs.get agent item as the master item
  • dependent low-level discovery rule and item prototypes

Configuration

Master item

Create a Zabbix agent item using the following key:

  1. vfs.fs.get

1 Discovery of mounted filesystems - 图1

Set the type of information to “Text” for possibly big JSON data.

The data returned by this item will contain something like the following for a mounted filesystem:

  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. }
Dependent LLD rule

Create a low-level discovery rule as “Dependent item” type:

1 Discovery of mounted filesystems - 图2

As master item select the vfs.fs.get item we created.

In the “LLD macros” tab define custom macros with the corresponding JSONPath:

1 Discovery of mounted filesystems - 图3

Dependent item prototype

Create an item prototype with “Dependent item” type in this LLD rule. As master item for this prototype select the vfs.fs.get item we created.

1 Discovery of mounted filesystems - 图4

Note the use of custom macros in the item prototype name and key:

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

As type of information, use:

  • Numeric (unsigned) for metrics like ‘free’, ‘total’, ‘used’
  • Numeric (float) for metrics like ‘pfree’, ‘pused’ (percentage)

In the item prototype “Preprocessing” tab select JSONPath and use the following JSONPath expression as parameter:

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

1 Discovery of mounted filesystems - 图5

When discovery starts, one item per each mountpoint will be created. This item will return the number of free bytes for the given mountpoint.