Supported OS Linux Mac OS Windows

Versión de la integración1.2.0

Información general

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:

  1. Instala el Agent en la instancia que ejecuta el diario.
  2. 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:

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: journald
      container_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.

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ámetroValor
<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.