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.
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:
La recopilación de Logs está desactivada por defecto en el Datadog Agent, debe activarla en datadog.yaml con:
logs_enabled:true
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:journaldcontainer_mode:true
Para rellenar los atributos source y service, el Agent recopila SYSLOG_IDENTIFIER, _SYSTEMD_UNIT y _COMMy 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.
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.
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:journaldexclude_user_units:- '*'
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.