La recopilación de logs requiere la versión 6.0 o posterior del Datadog Agent. Las versiones anteriores del Agent no incluyen la interfaz log collection.
A partir del Agent v6.14/v7.14, Datadog recomienda utilizar y aplicar el transporte HTTPS (consulta Transporte de logs del Agent).
Si utiliza el transporte de logs HTTPS, consulta la documentación del proxy del Agent y utiliza el mismo conjunto de parámetros de proxy que otros tipos de datos.
Si utilizas un proxy para la transmisión TCP, configura el Datadog Agent para enviar logs a tu proxy a través de TCP utilizando los siguientes parámetros del archivo de configuración datadog.yaml:
Los parámetros anteriores también se pueden configurar con las siguientes variables de entorno:
DD_LOGS_CONFIG_LOGS_DD_URL
DD_LOGS_CONFIG_LOGS_NO_SSL
Nota: El parámetro logs_no_ssl es necesario para que el Agent ignore la discrepancia entre el nombre de host del certificado SSL (agent-intake.logs.datadoghq.com) y el nombre de host de tu proxy. Se recomienda utilizar una conexión cifrada SSL entre tu proxy y el endpoint de admisión de Datadog.
A continuación, configura tu proxy para escuchar en el <PROXY_PORT> y reenviar los logs recibidos. Para datadoghq.com, utiliza agent-intake.logs.datadoghq.com en el puerto 10514 y activa el cifrado SSL.
Descargua los CA certificates para el cifrado TLS del cifrado SSL con el siguiente comando:
Y utiliza el archivo del certificado ubicado en /etc/ssl/certs/ca-certificates.crt(Debian, Ubuntu) o en /etc/ssl/certs/ca-bundle.crt (CentOS, Redhat)
Para enviar tus logs a tu cuenta de Datadog con un servidor proxy SOCKS5, utiliza los siguientes parámetros en su archivo de configuración datadog.yaml:
Este ejemplo explica cómo configurar el Datadog Agent para enviar logs en TCP a un servidor con HAProxy, instalado y escuchando en el puerto 10514, para luego reenviarlos a Datadog.
agent ---> haproxy ---> Datadog
El cifrado está desactivado entre el Agent y HAProxy, que se configura para cifrar los datos antes de enviarlos a Datadog.
Edita el archivo de configuración del Agent datadog.yaml y configura logs_no_ssl como true. Esto es necesario, ya que HAProxy no reenvía el tráfico y no es el backend de Datadog, por lo que no puede utilizar el mismo certificado.
Nota: logs_no_ssl puede estar configurado como verdadero, ya que HAProxy está configurado para encriptar los datos. De lo contrario, no configures este parámetro como true.
HAProxy debe instalarse en un host que tenga conectividad con Datadog. Utiliza el siguiente archivo de configuración, si aún no lo tienes configurado.
# Basic configurationgloballog127.0.0.1local0maxconn4096statssocket/tmp/haproxy# Some sane defaultsdefaultslogglobaloptiondontlognullretries3optionredispatchtimeoutclient5stimeoutserver5stimeoutconnect5s# This declares a view into HAProxy statistics, on port 3833# You do not need credentials to view this page and you can# turn it off once you are done with setup.listenstatsbind*:3833modehttpstatsenablestatsuri/# This section is to reload DNS Records# Replace <DNS_SERVER_IP> and <DNS_SECONDARY_SERVER_IP> with your DNS Server IP addresses.# For HAProxy 1.8 and newerresolversmy-dnsnameserverdns1<DNS_SERVER_IP>:53nameserverdns2<DNS_SECONDARY_SERVER_IP>:53resolve_retries3timeoutresolve2stimeoutretry1saccepted_payload_size8192holdvalid10sholdobsolete60s# This declares the endpoint where your Agents connects for# sending Logs (e.g the value of "logs.config.logs_dd_url")frontendlogs_frontendbind*:10514modetcpoptiontcplogdefault_backenddatadog-logs# This is the Datadog server. In effect any TCP request coming# to the forwarder frontends defined above are proxied to# Datadog's public endpoints.backenddatadog-logsbalanceroundrobinmodetcpoptiontcplogserverdatadogagent-intake.logs.datadoghq.com:10516sslverifyrequiredca-file/etc/ssl/certs/ca-certificates.crtcheckport10516
Nota: Descarga el certificado con el siguiente comando:
Si todo sale bien, el archivo se ubicará en /etc/ssl/certs/ca-bundle.crt para CentOS, Redhat.
Una vez que se haya realizado la configuración de HAProxy, puedes volver a cargarlo o reiniciar HAProxy. Se recomienda tener una tarea cron que vuelva a cargar HAProxy cada 10 minutos (por ejemplo, service haproxy reload) para forzar una actualización de la caché DNS de HAProxy, en caso de que app.datadoghq.com conmute a otra IP.
# Basic configurationgloballog127.0.0.1local0maxconn4096statssocket/tmp/haproxy# Some sane defaultsdefaultslogglobaloptiondontlognullretries3optionredispatchtimeoutclient5stimeoutserver5stimeoutconnect5s# This declares a view into HAProxy statistics, on port 3833# You do not need credentials to view this page and you can# turn it off once you are done with setup.listenstatsbind*:3833modehttpstatsenablestatsuri/# This section is to reload DNS Records# Replace <DNS_SERVER_IP> and <DNS_SECONDARY_SERVER_IP> with your DNS Server IP addresses.# For HAProxy 1.8 and newerresolversmy-dnsnameserverdns1<DNS_SERVER_IP>:53nameserverdns2<DNS_SECONDARY_SERVER_IP>:53resolve_retries3timeoutresolve2stimeoutretry1saccepted_payload_size8192holdvalid10sholdobsolete60s# This declares the endpoint where your Agents connects for# sending Logs (e.g the value of "logs.config.logs_dd_url")frontendlogs_frontendbind*:10514modetcpdefault_backenddatadog-logs# This is the Datadog server. In effect any TCP request coming# to the forwarder frontends defined above are proxied to# Datadog's public endpoints.backenddatadog-logsbalanceroundrobinmodetcpoptiontcplogserverdatadogagent-intake.logs.datadoghq.eu:443sslverifyrequiredca-file/etc/ssl/certs/ca-bundle.crtcheckport443
Si todo sale bien, el archivo se ubicará en /etc/ssl/certs/ca-bundle.crt para CentOS, Redhat.
Una vez que se haya realizado la configuración de HAProxy, puedes volver a cargarlo o reiniciar HAProxy. Se recomienda tener una tarea cron que vuelve a cargar HAProxy cada 10 minutos (por ejemplo, service haproxy reload) para forzar una actualización de la caché DNS de HAProxy, en caso de que app.datadoghq.com conmute a otra IP.
Edita el archivo de configuración datadog.yaml del Agent y define logs_config.logs_dd_url para que utilice el nuevo proxy en vez de establecer una conexión directa con Datadog:
En este ejemplo, nginx.conf se puede utilizar para representar el tráfico del Agent a Datadog. El último bloque de servidor en esta configuración envuelve TLS para asegurar que los logs internos de texto plano sean encriptados entre tu proxy y el endpoint de la API de admisión de logs de Datadog:
usernginx;worker_processesauto;error_log/var/log/nginx/error.log;pid/run/nginx.pid;events{worker_connections1024;}# TCP Proxy for Datadog Agentstream{server{listen10514;#listen for logsproxy_sslon;proxy_passagent-intake.logs.datadoghq.com:10516;}}
usernginx;worker_processesauto;error_log/var/log/nginx/error.log;pid/run/nginx.pid;events{worker_connections1024;}# TCP Proxy for Datadog Agentstream{server{listen10514;#listen for logsproxy_sslon;proxy_passagent-intake.logs.datadoghq.eu:443;}}