Es posible descubrir unidades systemd (servicios, por defecto) con Zabbix.
La métrica a utilizar en la regla de descubrimiento es
Esta métrica solo es compatible con Zabbix agent 2.
Esta métrica devuelve un JSON con información sobre las unidades systemd, por ejemplo:
[{
           "{#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"
       }]También es posible descubrir unidades systemd deshabilitadas. En este caso, se devuelven tres macros en el JSON resultante:
Para que se creen métricas y disparadores a partir de prototipos para unidades systemd deshabilitadas, asegúrese de ajustar (o eliminar) los filtros LLD que prohíben {#UNIT.ACTIVESTATE} y {#UNIT.UNITFILESTATE}.
Las siguientes macros son compatibles para su uso en la regla de descubrimiento (filtro) y prototipos de métricas, disparadores y gráficos:
| Macro | Descripción | 
|---|---|
| {#UNIT.NAME} | Nombre de la unidad principal. | 
| {#UNIT.DESCRIPTION} | Descripción legible por humanos. | 
| {#UNIT.LOADSTATE} | Estado de carga (es decir, si el archivo de la unidad se ha cargado correctamente) | 
| {#UNIT.ACTIVESTATE} | Estado activo (es decir, si la unidad está actualmente iniciada o no) | 
| {#UNIT.SUBSTATE} | Subestado (una versión más detallada del estado activo que es específica del tipo de unidad, lo que el estado activo no es) | 
| {#UNIT.FOLLOWED} | Unidad cuyo estado está siendo seguido por esta unidad, si existe; de lo contrario, una cadena vacía. | 
| {#UNIT.PATH} | Ruta del objeto de la unidad. | 
| {#UNIT.JOBID} | ID de trabajo numérico si hay un trabajo en cola para la unidad de trabajo; 0en caso contrario. | 
| {#UNIT.JOBTYPE} | Tipo de trabajo. | 
| {#UNIT.JOBPATH} | Ruta del objeto de trabajo. | 
| {#UNIT.UNITFILESTATE} | El estado de instalación del archivo de la unidad. | 
| {#UNIT.SERVICETYPE} | Tipo de la unidad de servicio (por ejemplo, simple,forking,oneshot,idle, etc.). Esta macro solo se devuelve si la unidad es un servicio. | 
Los prototipos de métricas que se pueden crear basados en el descubrimiento de servicios systemd incluyen, por ejemplo:
{#UNIT.DESCRIPTION} información de estado activo; clave de la métrica: systemd.unit.info["{#UNIT.NAME}"]{#UNIT.DESCRIPTION} información de estado de carga; clave de la métrica: systemd.unit.info["{#UNIT.NAME}",LoadState]