Versión de la integración1.2.0
Systemd-journald es un servicio de sistema que recopila y almacena datos de registro.
Crea y mantiene diarios estructurados e indexados basados en información de registro procedente de diversas fuentes.
Configuración
Instalación
El check de journald está incluido en el paquete del Datadog Agent .
No es necesaria ninguna instalación adicional en tu servidor.
Configuración
Los archivos del diario, por defecto, son propiedad del grupo del sistema systemd-journal y pueden ser leidos por él. Para empezar a recopilar tus logs de diario, debes hacer lo siguiente:
- Instala el Agent en la instancia que ejecuta el diario.
- Añade el usuario
dd-agent
al grupo systemd-journal
ejecutando: usermod -a -G systemd-journal dd-agent
Para configurar este check para un Agent que se ejecuta en un host:
Edita el archivo journald.d/conf.yaml
, en la carpeta conf.d/
en la raíz de tu directorio de configuración del Agent para empezar a recopilar logs.
Recopilación de logs
La recopilación de Logs está desactivada por defecto en el Datadog Agent, debe activarla en datadog.yaml
con:
A continuación, añade este bloque de configuración a tu archivo journald.d/conf.yaml
para empezar a recopilar tus logs:
logs:
- type: journald
container_mode: true
Para rellenar los atributos source
y service
, el Agent recopila SYSLOG_IDENTIFIER
, _SYSTEMD_UNIT
y _COMM
y los establece en el primer valor no vacío. Para aprovechar las ventajas de pipelines de integración, Datadog recomienda establecer el parámetro SyslogIdentifier
en el archivo de servicio systemd
directamente, o en un archivo de anulación de servicio systemd
. Su localización depende de tu distribución, pero puedes encontrar la localización del archivo de servicio systemd
usando el comando systemctl show -p FragmentPath <unit_name>
.
Nota: Con Agent 7.17+, si container_mode
se establece en true
, el comportamiento por defecto cambia para logs procedentes de contenedores de Docker. El atributo source
de tus logs se establecen automáticamente en el nombre corto de imagen correspondiente del contenedor en lugar de simplemente docker
.
Reinicia el Agent.
Para entornos en contenedores, consulta las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de los parámetros que se indican a continuación.
Recopilación de logs
La recopilación de logs está desactivada por defecto en Datadog Agent. Para activarla, consulta recopilación de logs de Kubernetes.
Parámetro | Valor |
---|
<LOG_CONFIG> | {"source": "journald", "service": "<YOUR_APP_NAME>"} |
Funciones avanzadas
Cambiar la localización del diario
Por defecto, el Agent busca el diario en las siguientes localizaciones:
/var/log/journal
/run/log/journal
Si tu diario se encuentra en otro lugar, añade un parámetro path
con la ruta del diario correspondiente.
Filtrar unidades del diario
Puedes filtrar unidades específicas a nivel de sistema utilizando estos parámetros:
include_units
: incluye todas las unidades de nivel de sistema especificadas.exclude_units
: excluye todas las unidades de nivel de sistema especificadas.
Ejemplo:
logs:
- type: journald
path: /var/log/journal/
include_units:
- docker.service
- sshd.service
En el Datadog Agent versión 7.37.0
+, puedes filtrar unidades a nivel de usuario mediante el uso de estos parámetros:
include_user_units
: incluye todas las unidades de nivel de usuario especificadas.exclude_user_units
: excluye todas las unidades de nivel de usuario especificadas.
Nota: Utiliza el comodín *
en exclude_units
o exclude_user_units
para especificar un log de JournaId particular. El comodín *
no funciona con include_units
. Por defecto, si no hay unidades ni para el sistema ni para el usuario, y no se definen coincidencias, se recopilan todos los logs diarios.
Ejemplo:
logs:
# Recopila todos los logs de unidad a nivel de sistema.
- type: journald
exclude_user_units:
- '*'
Filtrar los mensajes del diario
En el Datadog Agent versión 7.39.0
+, puedes filtrar mensajes arbitrarios utilizando pares de clave-valor con estos parámetros:
include_matches
: incluye mensajes coincidentes con key=value
exclude_matches
: excluye los mensajes que coinciden con key=value
Ejemplo:
logs:
- type: journald
path: /var/log/journal/
include_matches:
- _TRANSPORT=kernel
Seguimiento del mismo diario varias veces
Si deseas informar de unidades con diferentes fuentes o etiquetas de servicio, éstas deben aparecer en configuraciones de journald separadas.
Para ello debes identificar unívocamente la configuración del diario con un config_id
(disponible en Agent 7.41.0
+).
logs:
- type: journald
config_id: my-app1
source: my-app1
service: my-app1
include_units:
- my-app1.service
- type: journald
config_id: my-app2
source: my-app2
service: my-app2
include_units:
- my-app2.service
Recopilar etiquetas de contenedor
Las etiquetas son fundamentales para encontrar información en entornos en contenedores altamente dinámicos, por lo que el Agent puede recopilar etiquetas de contenedor en logs de journald.
Esto funciona automáticamente cuando el Agent se está ejecutando desde el host. Si estás utilizando la versión en contenedores del Datadog Agent, integra la ruta de tu diario y el siguiente archivo:
/etc/machine-id
: esto asegura que el Agent puede consultar el diario almacenado en el host.
Validación
Ejecuta el subcomando de estado del Agent y busca journald
en la sección Logs del Agent.
Datos recopilados
Métricas
journald no incluye ninguna métrica.
Checks de servicio
journald no incluye ningún check de servicio.
Eventos
journald no incluye ningún evento.
Solucionar problemas
¿Necesitas ayuda? Ponte en contacto con el soporte de Datadog.