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 itemdependent low-level discovery rule and item prototypes
Configuration
Master item
Create a Zabbix agent item using the following key:
vfs.fs.get
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": "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
}
}
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:
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()
When discovery starts, one item per each mountpoint will be created. This item will return the number of free bytes for the given mountpoint.