[comment]: # ({ec525f2f-ec525f2f})
# 7 systemd 服务发现

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

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

可以通过[discover](/manual/discovery/low_level_discovery)
使用Zabbix监控systemd单元（默认情况下为服务）。

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

[comment]: # ({1f2028b1-e655c9cf})
### 监控项键

在[发现规则](/manual/discovery/low_level_discovery#发现规则)中使用的监控项是

    systemd.unit.discovery

::: noteimportant
此
[item](/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2)键仅
在Zabbix agent 2中受支持.

:::

该监控项返回一个包含systemd单元信息的JSON,例如:

    
[{
        "{#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"
    }]

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

[comment]: # ({86dfc2a0-06ebf923})
##### 已禁用 systemd 单元的发现

自Zabbix 6.0.1起，还可以发现已禁用的systemd单元。在这种情况下，
返回的JSON结果中包含三个宏：

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

::: noteimportant
要为已禁用的systemd单元创建监控项和触发器原型，请确保调整（或移除）
针对{#UNIT.ACTIVESTATE}和{#UNIT.UNITFILESTATE}的禁止LLD过滤器。

:::

[comment]: # ({/86dfc2a0-06ebf923})

[comment]: # ({85c44d09-0272b801})
### 支持的宏

以下宏支持用于发现规则
[过滤器](/manual/discovery/low_level_discovery#过滤器)
以及监控项、触发器和图形的原型：

| 宏 | 描述 |
|-----|-----------|
| {\#UNIT.NAME} | 主单元名称 |
| {\#UNIT.DESCRIPTION} | 人类可读描述 |
| {\#UNIT.LOADSTATE} | 加载状态（即单元file是否已成功加载） |
| {\#UNIT.ACTIVESTATE} | 活动状态（即单元当前是否已启动） |
| {\#UNIT.SUBSTATE} | 子状态（对活动状态的更细粒度version，特定于单元类型，而活动状态不具备此特性） |
| {\#UNIT.FOLLOWED} | 该单元跟踪其状态的单元（如果有）；否则为空string |
| {\#UNIT.PATH} | 单元object路径 |
| {\#UNIT.JOBID} | 如果作业单元有排队作业则为数字作业ID；否则为0 |
| {\#UNIT.JOBTYPE} | 作业类型 |
| {\#UNIT.JOBPATH} | 作业object路径 |
| {\#UNIT.UNITFILESTATE} | 单元file的安装状态 |

[comment]: # ({/85c44d09-0272b801})

[comment]: # ({7dcfb593-c8363d40})
### 监控项原型

基于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["{#UNIT.NAME}",LoadState]`

`systemd.unit.info` [agent
items](/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2) 
从Zabbix 4.4版本开始支持。

[comment]: # ({/7dcfb593-c8363d40})
