7 Обнаружение служб systemd

Обзор

Существует возможность обнаружения модулей (units) systemd (службы, по умолчанию) с помощью Zabbix.

Ключ элемента данных

Элемент данных для использования в правиле обнаружения:

systemd.unit.discovery

Этот ключ элемента данных поддерживается только в Zabbix агенте 2.

Этот элемент данных возвращает JSON с информацией о модулях (units) 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.UNITFILESTATE}": "enabled"
       }, {
           "{#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.UNITFILESTATE}": "enabled"
       }]
Обнаружение деактивированных модулей systemd

Начиная с версии Zabbix 6.0.1, возможно также обнаруживать и деактивированные (disabled) модули systemd. В этом случае в результирующем JSON-е возвращаются три макроса:

  • {#UNIT.PATH}
  • {#UNIT.ACTIVESTATE}
  • {#UNIT.UNITFILESTATE}.

Чтобы из прототипов создавались элементы данных и триггеры для деактивированных модулей systemd, убедитесь, что подправлены (или удалены) запрещающие фильтры LLD для {#UNIT.ACTIVESTATE} и {#UNIT.UNITFILESTATE}.

Поддерживаемые макросы

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

Макрос Описание
{#UNIT.NAME} Основное имя модуля.
{#UNIT.DESCRIPTION} Человеко-читаемое описание.
{#UNIT.LOADSTATE} Состояние загрузки (т.е. успешно ли загружен файл модуля)
{#UNIT.ACTIVESTATE} Активное состояние (т.е. запущен или нет модуль в данный момент)
{#UNIT.SUBSTATE} Подсостояние (более гранулярная версия активного состояния, нежели активное состояние, специфичная для типа модуля)
{#UNIT.FOLLOWED} Unit that is being followed in its state by this unit, если имеется; в противном случае пустая строка.
{#UNIT.PATH} Путь к объекту модуля.
{#UNIT.JOBID} Числовой идентификатор задачи (job ID), если имеется задача, поставленная в очередь для данного модуля задачи; 0 в противном случае.
{#UNIT.JOBTYPE} Тип задачи.
{#UNIT.JOBPATH} Путь к объекту задачи.
{#UNIT.UNITFILESTATE} Состояние установки файла модуля.

Прототипы элементов данных

Прототипы элементов данных, которые могут быть созданы на основе обнаружения служб systemd, включают, например:

  • Имя элемента данных: {#UNIT.DESCRIPTION} active state info; ключ элемента данных: systemd.unit.info["{#UNIT.NAME}"]
  • Имя элемента данных: {#UNIT.DESCRIPTION} load state info; ключ элемента данных: systemd.unit.info["{#UNIT.NAME}",LoadState]

Элемент данных systemd.unit.info поддерживается с версии Zabbix 4.4.