[comment]: # ({1825d7ea-ec525f2f})
# 8 Обнаружение сервисов systemd

[comment]: # ({/1825d7ea-ec525f2f})

[comment]: # ({f72274ad-6e5dadb8})
### Обзор

Можно [обнаружить](/manual/discovery/low_level_discovery)
systemd службы (службы, по умолчанию) используя Zabbix.

[comment]: # ({/f72274ad-6e5dadb8})

[comment]: # ({1b3710b6-e655c9cf})
### Ключ элемента данных

Элемент данных, который следует использовать в [правиле
обнаружения](/manual/discovery/low_level_discovery#discovery-rule), —

    systemd.unit.discovery

::: noteimportant
Этот ключ
[элемента данных](/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2)
поддерживается только в Zabbix агент 2.
:::

Этот элемент данных возвращает 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.UNITFILESTATE}": "enabled"
        "{#UNIT.SERVICETYPE}": "simple"
    }, {
        "{#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"
    }]

[comment]: # ({/1b3710b6-e655c9cf})

[comment]: # ({cbc19e2b-2d3b32d7})
##### Обнаружение отключённых systemd units

Также возможно обнаруживать **отключённые** systemd units. В этом случае
в результирующем JSON возвращаются три макроса:

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

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

[comment]: # ({/cbc19e2b-2d3b32d7})

[comment]: # ({9bd149f1-0272b801})
### Поддерживаемые макросы

Следующие макросы поддерживаются для использования в [фильтре](/manual/discovery/low_level_discovery#discovery-rule-filter) правила обнаружения и прототипах элементов данных, триггеров и графиков:

|Макрос|Описание|
|-----|-----------|
|{\#UNIT.NAME}|Имя основного модуля.|
|{\#UNIT.DESCRIPTION}|Понятное человеку описание.|
|{\#UNIT.LOADSTATE}|Состояние загрузки (то есть был ли файл модуля успешно загружен).|
|{\#UNIT.ACTIVESTATE}|Активное состояние (то есть запущен ли модуль в данный момент).|
|{\#UNIT.SUBSTATE}|Подсостояние (более детализированная версия активного состояния, специфичная для типа модуля, в отличие от самого активного состояния).|
|{\#UNIT.FOLLOWED}|Модуль, за состоянием которого следует данный модуль, если такой есть; в противном случае — пустая строка.|
|{\#UNIT.PATH}|Путь к объекту модуля.|
|{\#UNIT.JOBID}|Числовой ID задания, если для модуля задания поставлено задание в очередь; в противном случае `0`.|
|{\#UNIT.JOBTYPE}|Тип задания.|
|{\#UNIT.JOBPATH}|Путь к объекту задания.|
|{\#UNIT.UNITFILESTATE}|Состояние установки файла модуля.|
|{\#UNIT.SERVICETYPE}|Тип сервисного модуля (например, `simple`, `forking`, `oneshot`, `idle` и т. д.). Этот макрос возвращается только в том случае, если модуль является сервисом.|

[comment]: # ({/9bd149f1-0272b801})

[comment]: # ({93b3d9f5-c8363d40})
### Прототипы элементов данных

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

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

[comment]: # ({/93b3d9f5-c8363d40})
