[comment]: # translation:outdated

[comment]: # ({new-5067cf1d})
# 1 Discovery of mounted filesystems

[comment]: # ({/new-5067cf1d})

[comment]: # ({new-c3fe3cdd})
#### 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 (supported since Zabbix **4.0.17**) as
    the master item
-   a low-level discovery rule and dependent item prototypes

[comment]: # ({/new-c3fe3cdd})

[comment]: # ({new-5d32b87c})
#### Configuration

[comment]: # ({/new-5d32b87c})

[comment]: # ({new-82f5a992})
##### Master item

Create a Zabbix agent item using the following key:

    vfs.fs.get

![](../../../../assets/en/manual/discovery/low_level_discovery/fs_get_item.png)

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:

``` {.java}
{
  "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
  }
}
```

[comment]: # ({/new-82f5a992})

[comment]: # ({new-f87f64f6})
##### Low-level discovery rule

Create a low-level discovery rule using the in-built discovery key:

    vfs.fs.discovery

![](../../../../assets/en/manual/discovery/low_level_discovery/fs_get_lld_agent.png)

This discovery rule will return discovery macros such as {\#FSNAME},
{\#FSTYPE} that can be used in creating item prototypes.

[comment]: # ({/new-f87f64f6})

[comment]: # ({new-bf5b0590})
##### 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.

![](../../../../assets/en/manual/discovery/low_level_discovery/fs_get_prototype.png)

Note the use of 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()

![](../../../../assets/en/manual/discovery/low_level_discovery/fs_get_prototype_b0.png)

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

[comment]: # ({/new-bf5b0590})
