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