Empezando con los logs

Información general

Usa la herramienta Log Management de Datadog, también denominada “logs”, para recopilar logs en varias fuentes que los generen, como tu servidor, un contenedor, un entorno de nube, una aplicación, o los procesadores y reenviadores de logs existentes. Con la generación de logs convencional, tienes que elegir qué logs analizar y conservar para mantener la relación coste-eficiencia. En cambio, con Logging without Limits* de Datadog, puedes recopilar, procesar, archivar, explorar y monitorizar tus logs sin límites.

En esta página, te explicamos cómo puedes empezar a usar la herramienta Log Management en Datadog. Si aún no lo has hecho, crea una cuenta de Datadog.

Configura una fuente de logs

Con Log Management, puedes analizar y explorar datos en el Log Explorer (Navegador de logs), conectar trazas y métricas para correlacionar los datos de valor de Datadog, y usar los logs ingeridos en la herramienta Cloud SIEM de Datadog. El ciclo de vida de un log en Datadog comienza en el momento en el que se ingiere de una fuente de logs.

Diferentes tipos de configuraciones de logs

Servidor

Hay varias integraciones que pueden desviar logs desde tu servidor hacia Datadog. Para ello, dichas integraciones usan un bloque de configuración de logs en su archivo conf.yaml, disponible en la carpeta conf.d/ que se encuentra en la raíz del directorio de configuración de tu Agent.

logs:
  - type: file
    path: /path/to/your/integration/access.log
    source: integration_name
    service: integration_name
    sourcecategory: http_web_access

Para empezar a recopilar logs desde un servidor:

  1. Si aún no lo has hecho, instala el Datadog Agent en función de la plataforma que utilices.

    Nota: Para recopilar logs, debes usar el Datadog Agent v6 o una versión posterior.

  2. La recopilación de logs no está activada de forma predeterminada en el Datadog Agent. Para activarla, establece logs_enabled como true en tu archivo datadog.yaml.

    datadog.yaml

    ## @param logs_enabled - boolean - optional - default: false
        ## @env DD_LOGS_ENABLED - boolean - optional - default: false
        ## Enable Datadog Agent log collection by setting logs_enabled to true.
        logs_enabled: false
        
        ## @param logs_config - custom object - optional
        ## Enter specific configurations for your Log collection.
        ## Uncomment this parameter and the one below to enable them.
        ## See https://docs.datadoghq.com/agent/logs/
        logs_config:
        
          ## @param container_collect_all - boolean - optional - default: false
          ## @env DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL - boolean - optional - default: false
          ## Enable container log collection for all the containers (see ac_exclude to filter out containers)
          container_collect_all: false
        
          ## @param logs_dd_url - string - optional
          ## @env DD_LOGS_CONFIG_LOGS_DD_URL - string - optional
          ## Define the endpoint and port to hit when using a proxy for logs. The logs are forwarded in TCP
          ## therefore the proxy must be able to handle TCP connections.
          logs_dd_url: <ENDPOINT>:<PORT>
        
          ## @param logs_no_ssl - boolean - optional - default: false
          ## @env DD_LOGS_CONFIG_LOGS_NO_SSL - optional - default: false
          ## Disable the SSL encryption. This parameter should only be used when logs are
          ## forwarded locally to a proxy. It is highly recommended to then handle the SSL encryption
          ## on the proxy side.
          logs_no_ssl: false
        
          ## @param processing_rules - list of custom objects - optional
          ## @env DD_LOGS_CONFIG_PROCESSING_RULES - list of custom objects - optional
          ## Global processing rules that are applied to all logs. The available rules are
          ## "exclude_at_match", "include_at_match" and "mask_sequences". More information in Datadog documentation:
          ## https://docs.datadoghq.com/agent/logs/advanced_log_collection/#global-processing-rules
          processing_rules:
            - type: <RULE_TYPE>
              name: <RULE_NAME>
              pattern: <RULE_PATTERN>
        
          ## @param force_use_http - boolean - optional - default: false
          ## @env DD_LOGS_CONFIG_FORCE_USE_HTTP - boolean - optional - default: false
          ## By default, the Agent sends logs in HTTPS batches to port 443 if HTTPS connectivity can
          ## be established at Agent startup, and falls back to TCP otherwise. Set this parameter to `true` to
          ## always send logs with HTTPS (recommended).
          ## Warning: force_use_http means HTTP over TCP, not HTTP over HTTPS. Please use logs_no_ssl for HTTP over HTTPS.
          force_use_http: true
        
          ## @param force_use_tcp - boolean - optional - default: false
          ## @env DD_LOGS_CONFIG_FORCE_USE_TCP - boolean - optional - default: false
          ## By default, logs are sent through HTTPS if possible, set this parameter
          ## to `true` to always send logs via TCP. If `force_use_http` is set to `true`, this parameter
          ## is ignored.
          force_use_tcp: true
        
          ## @param use_compression - boolean - optional - default: true
          ## @env DD_LOGS_CONFIG_USE_COMPRESSION - boolean - optional - default: true
          ## This parameter is available when sending logs with HTTPS. If enabled, the Agent
          ## compresses logs before sending them.
          use_compression: true
        
          ## @param compression_level - integer - optional - default: 6
          ## @env DD_LOGS_CONFIG_COMPRESSION_LEVEL - boolean - optional - default: false
          ## The compression_level parameter accepts values from 0 (no compression)
          ## to 9 (maximum compression but higher resource usage). Only takes effect if
          ## `use_compression` is set to `true`.
          compression_level: 6
        
          ## @param batch_wait - integer - optional - default: 5
          ## @env DD_LOGS_CONFIG_BATCH_WAIT - integer - optional - default: 5
          ## The maximum time (in seconds) the Datadog Agent waits to fill each batch of logs before sending.
          batch_wait: 5
        
          ## @param open_files_limit - integer - optional - default: 500
          ## @env DD_LOGS_CONFIG_OPEN_FILES_LIMIT - integer - optional - default: 500
          ## The maximum number of files that can be tailed in parallel.
          ## Note: the default for Mac OS is 200. The default for
          ## all other systems is 500.
          open_files_limit: 500
        
          ## @param file_wildcard_selection_mode - string - optional - default: `by_name`
          ## @env DD_LOGS_CONFIG_FILE_WILDCARD_SELECTION_MODE - string - optional - default: `by_name`
          ## The strategy used to prioritize wildcard matches if they exceed the open file limit.
          ##
          ## Choices are `by_name` and `by_modification_time`.
          ##
          ## `by_name` means that each log source is considered and the matching files are ordered
          ## in reverse name order. While there are less than `logs_config.open_files_limit` files
          ## being tailed, this process repeats, collecting from each configured source.
          ##
          ## `by_modification_time` takes all log sources and first adds any log sources that
          ## point to a specific file. Next, it finds matches for all wildcard sources.
          ## This resulting list is ordered by which files have been most recently modified
          ## and the top `logs_config.open_files_limit` most recently modified files are
          ## chosen for tailing.
          ##
          ## WARNING: `by_modification_time` is less performant than `by_name` and will trigger
          ## more disk I/O at the configured wildcard log paths.
          file_wildcard_selection_mode: by_name
        
          ## @param max_message_size_bytes - integer - optional - default: 256000
          ## @env DD_LOGS_CONFIG_MAX_MESSAGE_SIZE_BYTES - integer - optional - default : 256000
          ## The maximum size of single log message in bytes. If maxMessageSizeBytes exceeds
          ## the documented API limit of 1MB - any payloads larger than 1MB will be dropped by the intake.
          https://docs.datadoghq.com/api/latest/logs/
          max_message_size_bytes: 256000
        
          ## @param integrations_logs_files_max_size - integer - optional - default: 10
          ## @env DD_LOGS_CONFIG_INTEGRATIONS_LOGS_FILES_MAX_SIZE - integer - optional - default: 10
          ## The max size in MB that an integration logs file is allowed to use
          integrations_logs_files_max_size
        
          ## @param integrations_logs_total_usage - integer - optional - default: 100
          ## @env DD_LOGS_CONFIG_INTEGRATIONS_LOGS_TOTAL_USAGE - integer - optional - default: 100
          ## The total combined usage all integrations logs files can use
          integrations_logs_total_usage
  3. Reinicia el Datadog Agent.

  4. Sigue los pasos para activar la integración o los pasos para recopilar logs de archivos personalizados en el sitio de Datadog.

    Nota: Si vas a recopilar logs de archivos personalizados y necesitas ejemplos de archivos de cola, TCP/UDP, journald o eventos de Windows, consulta la sección Recopilación de logs personalizada.

Contenedor

Con Datadog Agent v6 y versiones posteriores, el Agent puede recopilar logs a partir de contenedores. Todos los servicios de contenedorización cuentan con instrucciones de configuración concretas según dónde se despliegue o ejecute el Agent, o cómo se redirijan los logs.

Por ejemplo, Docker dispone de dos tipos de instalación diferentes para el Agent, a saber: en tu host, donde el Agent es externo al entorno del Docker, o mediante el despliegue de una versión contenedorizada del Agent en el entorno de tu Docker.

Kubernetes requiere que el Datadog Agent se ejecute en tu clúster de Kubernetes. La recopilación de logs puede configurarse con una especificación de DaemonSet, un Helm chart o con el Datadog Operator.

Para empezar a recopilar logs a partir de un servicio de contenedor, sigue las instrucciones de la aplicación.

Nube

Puedes reenviar logs desde varios proveedores de nube, como AWS, Azure y Google Cloud, a Datadog. Cada proveedor de nube tiene su propio conjunto de instrucciones de configuración.

Por ejemplo, los logs de los servicios de AWS suelen almacenarse en buckets de S3 o en grupos de logs de CloudWatch. Puedes suscribirte a estos logs y desviarlos hacia un flujo (stream) de Amazon Kinesis para luego transferirlos a uno o varios destinos. Uno de los destinos predeterminados de los flujos de entrega de Amazon Kinesis es Datadog.

Para empezar a recopilar logs a partir de un servicio en la nube, sigue las instrucciones de la aplicación.

Cliente

Datadog autoriza la recopilación de logs desde clientes a través de SDK o bibliotecas. Por ejemplo, puedes usar el SDK datadog-logs para enviar logs a Datadog desde clientes de JavaScript.

Para empezar a recopilar logs de un cliente, sigue las instrucciones de la aplicación.

Otro

Si usas servicios o herramientas de logs ya existentes, como Rsyslog, FluentD o Logstash, ten en cuenta que Datadog ofrece plugins y opciones para desviar los logs.

Si no encuentras tu integración, escribe su nombre en el campo otras integraciones para recibir notificaciones cuando esté disponible.

Para empezar a recopilar logs a partir de un servicio en la nube, sigue las instrucciones de la aplicación.

Explora tus logs

Cuando se configura una fuente de logs, tus logs pasan a estar disponibles en el Log Explorer. Puedes usar esta herramienta para filtrar, agregar y visualizar tus logs.

Por ejemplo, si te llegan logs procedentes de un servicio que desees examinar de forma más detallada, filtra por service. Puedes acotar la búsqueda con un status, como ERROR, así como seleccionar Aggregate by Patterns (Agrupar por patrones) para ver qué parte de tu servicio registra más errores.

Filtrar por patrón de error en el Log Explorer

Agrupa tus logs por Field de Source y cambia a la opción de visualización Top List (Lista principal) para ver tus principales servicios de logs. Elige una fuente (“source”), como puede ser error, y selecciona View Logs (Ver logs) en el menú desplegable. El panel lateral se rellenará con los logs que tengan errores para que puedas ver rápidamente qué host y servicios necesitan atención.

Lista principal del Log Explorer

¿Qué toca hacer ahora?

Una vez que se haya configurado una fuente de logs y que tus logs estén disponibles en el Log Explorer, podrás empezar a explorar algunas otras áreas de la gestión de logs.

Configuración de logs

  • Establece atributos y alias para unificar el entorno de tus logs.
  • Controla cómo se procesan tus logs con pipelines y procesadores.
  • Dado que Logging without Limits* desconecta la ingesta e indexación de logs, puedes configurar tus logs eligiendo cuáles deben indexarse, conservarse o archivarse.

Correlación de logs

Guías

Leer más


*Logging without Limits es una marca registrada de Datadog, Inc.
PREVIEWING: antoine.dussault/service-representation-ga-docs-us1