С Zabbix имеется возможность обнаружения systemd модулей (сервисов, по умолчанию).
Ключом элемента данных, который используется в правиле обнаружения является
systemd.unit.discovery
Этот элемент данных возвращает JSON с информацией о systemd модулях, например:
[{ "{#UNIT.NAME}": "mysqld.service", "{#UNIT.DESCRIPTION}": "MySQL Server", "{#UNIT.LOADSTATE}": "loaded", "{#UNIT.ACTIVESTATE}": "active", "{#UNIT.SUBSTATE}": "running", "{#UNIT.FOLLOWED}": "", "{#UNIT.PATH}": "/org/freedesktop/systemd1/unit/mysqld_2eservice", "{#UNIT.JOBID}": 0, "{#UNIT.JOBTYPE}": "" "{#UNIT.JOBPATH}": "/", }, { "{#UNIT.NAME}": "systemd-journald.socket", "{#UNIT.DESCRIPTION}": "Journal Socket", "{#UNIT.LOADSTATE}": "loaded", "{#UNIT.ACTIVESTATE}": "active", "{#UNIT.SUBSTATE}": "running", "{#UNIT.FOLLOWED}": "", "{#UNIT.PATH}": "/org/freedesktop/systemd1/unit/systemd_2djournald_2esocket", "{#UNIT.JOBID}": 0, "{#UNIT.JOBTYPE}": "", "{#UNIT.JOBPATH}": "/" }]
Следующие макросы поддерживаются для использования в фильтре правила обнаружения и прототипах элементов данных, триггеров и графиков:
Макрос | Описание |
---|---|
{#UNIT.NAME} | Имя основного модуля. |
{#UNIT.DESCRIPTION} | Удобочитаемое описание. |
{#UNIT.LOADSTATE} | Состояние загрузки (то есть был ли файл модуля загружен успешно) |
{#UNIT.ACTIVESTATE} | Состояние активности (то есть запущен ли в данный момент модуль или нет) |
{#UNIT.SUBSTATE} | Подстостояние (более детальная версия состояния активности, которое специфично для типа этого модуля, какое состояние не является активным) |
{#UNIT.FOLLOWED} | Модуль, за которым следует в этом состояние этот модуль, если имеется какой-либо; в противном случае пустая строка. |
{#UNIT.PATH} | Путь объекта модуля. |
{#UNIT.JOBID} | Числовой ID задачи, если у модуля задач имеется задача помещённая в очередь; 0 в противном случае. |
{#UNIT.JOBTYPE} | Тип задачи. |
{#UNIT.JOBPATH} | Путь объекта задачи. |
На основе обнаружения systemd сервисов можно создать прототипы элементов данных, включая, к примеру:
{#UNIT.DESCRIPTION}
; ключ элемента данных: systemd.unit.info["{#UNIT.NAME}"]
{#UNIT.DESCRIPTION}
; ключ элемента данных: systemd.unit.info["{#UNIT.NAME}",LoadState]
Элементы данных агента systemd.unit.info
поддерживаются начиная Zabbix 4.4.