1 Обнаружение примонтированных файловых систем

Обзор

Существует возможность обнаружения примонтированных файловых систем и их свойств (имя точки монтирования, тип файловой системы, размер файловой системы и статистика по файловам дескрипторам - inode).

Чтобы это сделать, можно использовать комбинацию из:

  • элемента данных агента vfs.fs.get в качестве основного элемента данных
  • зависимых от него элемента данных для правила низкоуровневого обнаружения и прототипов элементов данных

Настройка

Основной элемент данных

Создайте элемент данных агента Zabbix, используя следующий ключ:

vfs.fs.get

Задайте тип информации как «Текст», чтобы иметь возможность обрабатывать большие данные в формате JSON.

Данные, возвращаемые этим элементом данных, будут содержать для примонтированных файловых систем что-то наподобие следующего:

{
         "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
         }
       }
Зависимое правило LLD

Создайте правило низкоуровневого обнаружения с типом «Зависимый элемент данных»:

В качестве основного элемента данных выберите элемент данных vfs.fs.get, созданный ранее.

На вкладке «LLD Макросы» определите настраиваемые макросы с соответствующими путями JSONPath:

Зависимый прототип элемента данных

Создайте в этом правиле LLD прототип элемента данных с типом «Зависимый элемент данных». В качестве основного элемента данных для этого прототипа выберите созданный ранее элемент данных vfs.fs.get.

Обратите внимание на использование настраиваемых макросов в имени и ключе прототипа элемента данных:

  • Имя: Free disk space on {#FSNAME}, type: {#FSTYPE}
  • Ключ: Free[{#FSNAME}]

В качестве типа информации используйте:

  • Числовой (целое положительное) для метрик наподобие 'free', 'total', 'used'
  • Числовой (с плавающей точной) для метрик наподобие 'pfree', 'pused' (проценты)

На вкладке «Предобработка» прототипа элемента данных выберите JSONPath и используйте следующее выражение JSONPath как параметр:

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

При запуске обнаружения будет создано по одному элементу данных на каждую точку монтирования. Этот элемент данных вернёт для данной точки монтирования количество свободных байтов.