1. Обнаружение примонтированных файловых систем
Обзор
Можно обнаруживать смонтированные файловые системы и их свойства:
- имя точки монтирования
- тип файловой системы
- размер файловой системы
- статистика inode
- параметры монтирования
Для этого можно использовать сочетание:
vfs.fs.getэлемента данных агента в качестве основного элемента данных- зависимого правила низкоуровневого обнаружения и прототипов элементов данных
Статистика файловой системы возвращается только в том случае, если пользователь агента Zabbix имеет право прохода по всем каталогам в пути точки монтирования; в противном случае соответствующая файловая система не включается в вывод vfs.fs.get.
Настройка
Основной элемент данных
Создайте элемент данных агента Zabbix, используя следующий ключ:
vfs.fs.get

Установите тип информации в значение "Text" для потенциально больших JSON-данных.
Данные, возвращаемые этим элементом данных, будут содержать примерно следующее для смонтированной файловой системы:
[
{
"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"
}
]
Зависимое правило LLD
Создайте правило обнаружения на низком уровне типа Зависимый элемент данных:

В качестве мастер-элемента данных выберите элемент vfs.fs.get, который мы создали.
На вкладке LLD macros задайте пользовательские макросы с соответствующим JSONPath:

На вкладке Filters вы можете добавить регулярное выражение, которое отфильтрует только файловые системы read-write:

Прототип зависимого элемента данных
Создайте прототип элемента данных с типом "Dependent item" в этом правиле LLD.
В качестве мастер-элемента для этого прототипа выберите элемент vfs.fs.get, который мы создали.

Обратите внимание на использование пользовательских макросов в имени и ключе прототипа элемента данных:
- Name: Free disk space on {#FSNAME}, type: {#FSTYPE}
- Key: Free[{#FSNAME}]
В качестве типа информации используйте:
- Numeric (unsigned) для метрик, таких как 'free', 'total', 'used'
- Numeric (float) для метрик, таких как 'pfree', 'pused' (percentage)
На вкладке Preprocessing прототипа элемента данных выберите JSONPath и используйте следующее выражение JSONPath в качестве параметра:
$.[?(@.fsname=='{#FSNAME}')].bytes.free.first()

Когда обнаружение начнется, для каждой точки монтирования будет создан один элемент данных.
Этот элемент данных будет возвращать количество свободных байтов для указанной точки монтирования.