This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

1 Discovery of mounted filesystems

Overview

It is possible to discover mounted filesystems and their properties:

  • mountpoint name
  • filesystem type
  • filesystem size
  • inode statistics
  • mount options

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:

vfs.fs.get
Copy
✔ Copied

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:

[
         {
           "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"
         }
       ]
Copy
✔ Copied
Dependent LLD rule

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

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

In the "LLD macros" tab define custom macros with the corresponding JSONPath:

In the "Filters" tab you may add a regular expression that filters only read-write filesystems:

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.

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:

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

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

To toggle search highlight, press Ctrl+Alt+H
Have an improvement suggestion for this page? Select the text that could be improved and press Ctrl+Enter to send it to the editors.