Descubrimiento de servicios systemd

Descripción general

Es posible descubrir unidades systemd (servicios, por defecto) con Zabbix.

Clave del item

Para configurar la regla de descubrimiento, use la clave de item del agent de Zabbix systemd.unit.discovery.

Esta clave de item solo es compatible con Zabbix agent 2.

Esta clave de 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 que se creen items y triggers a partir de prototipos para unidades systemd deshabilitadas, asegúrese de ajustar (o eliminar) los filtros LLD que las prohíben para {#UNIT.ACTIVESTATE} y {#UNIT.UNITFILESTATE}.

Macros compatibles

Las siguientes macros son compatibles para su uso en el filtro de la regla de descubrimiento filter y en prototipos de items, triggers 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á iniciada actualmente o no)
{#UNIT.SUBSTATE} Subestado (una versión más detallada del estado activo, específica del tipo de unidad, que no es el estado activo)
{#UNIT.FOLLOWED} Unidad cuyo estado está siendo seguido por esta unidad, si existe; en caso 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 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.

Prototipos de métricas

Los prototipos de métricas que se pueden crear basados 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 de estado de carga; clave de la métrica: systemd.unit.info["{#UNIT.NAME}",LoadState]