Supported OS

Información general

Este check monitoriza Systemd y las unidades que gestiona a través del Datadog Agent.

  • Seguimiento del estado de tu Systemd
  • Monitorización de las unidades, los servicios y los sockets gestionados por Systemd

Configuración

Instalación

El check de Systemd está incluido en el paquete del Datadog Agent. No es necesaria ninguna instalación adicional en tu servidor.

Configuración

Host

Para configurar este check para un Agent que se ejecuta en un host:

  1. Edita el archivo systemd.d/conf.yaml, que se encuentra en la carpeta conf.d/ en la raíz del directorio de configuración de tu Agent para empezar a recopilar tus datos de rendimiento de Systemd. Para conocer todas las opciones de configuración disponibles, consulta el systemd.d/conf.yaml de ejemplo.

  2. Reinicia el Agent.

En contenedores

Para entornos en contenedores, instala la carpeta /run/systemd/, que contiene el socket /run/systemd/private necesario para recuperar los datos de Systemd. Por ejemplo:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock:ro \
              -v /proc/:/host/proc/:ro \
              -v /sys/fs/cgroup/:/host/sys/fs/cgroup/:ro \
              -v /run/systemd/:/host/run/systemd/:ro \
              -e DD_API_KEY=<YOUR_API_KEY> \
              datadog/agent:latest

Helm

Para configuraciones Helm, puedes configurar el Datadog Agent para monitorizar unidades de Systemd (como: kubelet.service y ssh.service) definiendo instalaciones de volúmenes y volúmenes para acceder a archivos y directorios relacionados con Systemd dentro de los contenedores. Por ejemplo:

datadog:
  #(...)
  confd:      
    # Archivo de configuración personalizado para SystemD
    # Ejemplo: https://github.com/DataDog/datadog-agent/blob/main/cmd/agent/dist/conf.d/systemd.d/conf.yaml.example

    systemd.yaml: |-
      init_config:
      instances:
        - unit_names:
            - kubelet.service
            - ssh.service

agents:
  # Instalaciones personalizadas para el socket SystemD (/run/systemd/private)
  volumeMounts:
    - name: systemd
      mountPath: /host/run/systemd/ # ruta dentro del contenedor donde se instalará el volumen

  volumes:
    - name: systemd
      hostPath:
        path: /run/systemd/ # ruta en la máquina host que se instalará dentro del contenedor.

Validación

Ejecuta el subcomando de estado del Agent y busca systemd en la sección Checks.

Datos recopilados

Métricas

systemd.service.cpu_time_consumed
(gauge)
The overall cpu consumed by the service in nanoseconds (CPUUsageNSec), requires Systemd configuration CPUAccounting to be enabled and Systemd version >= 220
Shown as nanosecond
systemd.service.memory_usage
(gauge)
The memory currently used by the service in bytes (MemoryCurrent), requires Systemd configuration MemoryAccounting to be enabled
Shown as byte
systemd.service.restart_count
(gauge)
The number of times the service has been restarted due to Restart= (NRestarts), requires Systemd version >= 235
Shown as time
systemd.service.task_count
(gauge)
The current number of tasks in the service (TasksCurrent), requires Systemd configuration TasksAccounting to be enabled
Shown as task
systemd.socket.connection_accepted_count
(gauge)
The number of accepted socket connections (NAccepted)
Shown as connection
systemd.socket.connection_count
(gauge)
The current number of socket connections (NConnections)
Shown as connection
systemd.socket.connection_refused_count
(gauge)
The total number of refused socket connections (NRefused), requires Systemd version >= 239
Shown as connection
systemd.unit.active
(gauge)
Whether the unit is currently in active state
systemd.unit.loaded
(gauge)
Whether the unit is currently in loaded state
systemd.unit.monitored
(gauge)
Indicates that the unit is monitored (the value is always 1)
systemd.unit.uptime
(gauge)
The unit uptime in seconds since it's activation
Shown as second
systemd.units_by_state
(gauge)
Sum by state to count units
Shown as unit
systemd.units_loaded_count
(gauge)
The number of loaded units
Shown as unit
systemd.units_monitored_count
(gauge)
The number of monitored units
Shown as unit
systemd.units_total
(gauge)
The total number of units
Shown as unit

Algunas métricas sólo se notifican si están activadas las respectivas configuraciones:

  • systemd.service.cpu_time_consumed requiere la activación de la configuración de Systemd CPUAccounting
  • systemd.service.memory_usage requiere la activación de la configuración de SystemdMemoryAccounting
  • systemd.service.task_count requiere la activación de la configuración de Systemd TasksAccounting

Algunas métricas sólo están disponibles a partir de una versión específica de Systemd:

  • systemd.service.cpu_time_consumed requiere Systemd v220
  • systemd.service.restart_count requiere Systemd v235
  • systemd.socket.connection_refused_count requiere Systemd v239

Eventos

El check de Systemd no incluye eventos.

Checks de servicios

systemd.can_connect
Returns OK if Systemd is reachable, CRITICAL otherwise.
Statuses: ok, critical

systemd.system.state
Returns OK if Systemd’s system state is running. Returns CRITICAL if the state is degraded, maintenance, or stopping. Returns UNKNOWN if the state is initializing, starting, or other.
Statuses: ok, critical, unknown

systemd.unit.state
Returns OK if the unit active state is active. Returns CRITICAL if the state is inactive, deactivating, or failed. Returns UNKNOWN if the state is activating or other.
Statuses: ok, critical, unknown

systemd.unit.substate
Returns OK CRITICAL or UNKNOWN based on the substate of the unit and the user-provided mapping in systemd.d/conf.yaml.
Statuses: ok, critical, unknown

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.