8 Descubrimiento de los servicios systemd

Descripción general

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

Clave de la métrica

La métrica a utilizar en la regla de descubrimiento es

systemd.unit.discovery

Esta clave de métrica solo es compatible con el agente 2 de Zabbix.

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.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 compatibles

Las siguientes macros son compatibles para su uso en el filtro de la regla de descubrimiento y en prototipos de métricas, iniciadores 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 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, que el estado activo no es)
{#UNIT.FOLLOWED} Unidad que está siendo seguida en su estado por esta unidad, si la hay; de lo contrario, una cadena vacía.
{#UNIT.PATH} Ruta del objeto unitario.
{#UNIT.JOBID} ID de trabajo numérico 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 de trabajo.
{#UNIT.UNITFILESTATE} El estado de instalación del archivo de unidad.

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]