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:
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.
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 v220systemd.service.restart_count
requiere Systemd v235systemd.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.