Esta página aborda la configuración del proxy para el Agent 5. Para obtener información sobre la última versión del Agent, consulta Configuración del proxy del Agent.
Si la configuración de la red restringe el tráfico de salida, redirige mediante proxy todo el tráfico del Agent a través de uno o varios hosts que tengan políticas de salida más permisivas.
En el caso de los hosts que no están directamente conectados a Internet, se puede enviar tráfico a Datadog a través de SSL/TLS de las siguientes maneras:
Mediante un proxy web, como Squid o Microsoft Web Proxy, que ya se haya desplegado en la red.
Mediante HAProxy (en caso de que quieras redirigir más de 16 a 20 Agents a través del mismo proxy).
Mediante el Agent como proxy para un máximo de 16 Agents por proxy. La utilización del Agent como proxy sólo es posible en el Agent 5.
Para obtener información sobre la configuración de Datadog Agent FIPS Proxy con el Datadog Agent, consulta el cumplimiento de FIPS de Datadog. El proxy FIPS solo se encuentra disponible en la región US1-FED. El Datadog Agent FIPS Proxy no se puede utilizar junto con un proxy normal.
Para obtener información específica sobre Squid, consulta la sección Squid de esta página.
El Agent es compatible de forma nativa con los proxies web tradicionales. Si necesitas conectarte a Internet mediante un proxy, edita el archivo de configuración del Agent.
El <HOST>:<PORT> que se utiliza para redirigir mediante proxy las métricas NO se utilizará para redirigir los logs. Consulta la página Proxy para logs.
Edita el archivo datadog.conf con la información de tu proxy:
# If you need a proxy to connect to the Internet, provide the settings here
proxy_host: my-proxy.example.com
proxy_port: 3128
proxy_user: my_user
proxy_password: my_password
No olvides reiniciar el Agent para que se aplique la nueva configuración.
Squid es un proxy de reenvío para la web compatible con HTTP, HTTPS y FTP, entre otros protocolos. Funciona en la mayoría de los sistemas operativos disponibles, incluido Windows, y cuenta con la autorización de la Licencia Pública General de GNU. Squid es una opción sencilla si aún no tienes ningún proxy web configurado en tu red.
Instala Squid en un host que tenga conectividad tanto con tus Agents internos como con Datadog. Utiliza el gestor de paquetes de tu sistema operativo o instala el software directamente desde la página de proyectos de Squid.
Para configurar Squid, edita el archivo de configuración. Por lo general, este archivo se encuentra en /etc/squid/squid.conf en Linux o en C:\squid\etc\squid.conf en Windows.
Edita el archivo de configuración squid.conf para que Squid pueda aceptar tráfico local y reenviarlo a las ingestas necesarias de Datadog:
http_port 0.0.0.0:3128
acl local src 127.0.0.1/32
acl Datadog dstdomain .datadoghq.comhttp_access allow Datadog
http_access allow local manager
Si Squid ya se está ejecutando, es mejor reiniciarlo con el siguiente comando:
sudo systemctl restart squid
Si vas a configurar Squid en Windows, primero debes configurarlo como un servicio del sistema. Luego, puedes ejecutar lo siguiente en un símbolo del sistema de administrador:
net start squid
Si Squid ya se está ejecutando, es mejor reiniciarlo con los siguientes comandos:
HAProxy es una solución gratuita, rápida y fiable que ofrece conexiones proxy para aplicaciones TCP y HTTP. A pesar de que HAProxy suele utilizarse como un equilibrador de carga para distribuir las solicitudes entrantes hacia servidores de grupo, también puedes utilizarlo para redirigir mediante proxy el tráfico del Agent a Datadog desde hosts que no tengan conectividad externa:
agent ---> haproxy ---> Datadog
Se trata de otra opción recomendable si no tienes un proxy web de fácil acceso disponible en tu red y quieres redirigir mediante proxy una gran cantidad de Agents. En algunos casos, basta una sola instancia de HAProxy para gestionar todo el tráfico local de Agents de tu red, ya que cada proxy puede distribuir más de 1000 Agents.
Nota: Esta cifra es una estimación conservadora basada, específicamente, en el rendimiento de instancias m3.xl. Existe una gran cantidad de variables relacionadas con redes y hosts que pueden alterar el funcionamiento de HAProxy, por lo que deberías supervisar el despliegue del proxy tanto antes como después de ponerlo en marcha. Para más información, consulta la documentación sobre HAProxy.
La comunicación entre HAProxy y Datadog se cifra siempre con TLS. No obstante, la comunicación entre el host del Agent y el host de HAProxy no se cifra por defecto, dado que se parte del principio de que el proxy y el Agent se encuentran en el mismo host. Si el host de HAProxy y el host del Agent no comparten la misma red local aislada, te recomendamos proteger dicha comunicación con el cifrado TLS.
Para cifrar datos entre el Agent y HAProxy, será necesario que crees un certificado x509 con la extensión de nombre alternativo del firmante (SAN) del host de HAProxy. Lo normal es que este paquete de certificados (*.pem) contenga tanto el certificado público como la clave privada. Para más información, consulta esta entrada del blog de HAProxy.
Nota: Descarga el certificado de Datadog con uno de los siguientes comandos:
La ruta del certificado es /etc/ssl/certs/ca-certificates.crt en el caso de Debian y Ubuntu, o /etc/ssl/certs/ca-bundle.crt en el caso de CentOS y Red Hat.
HAProxy se debe instalar en un host que tenga conectividad con Datadog. Puedes utilizar uno de los siguientes archivos de configuración si aún no lo tienes configurado. La configuración depende del servicio y sitio de Datadog. Para ver las configuraciones basadas en tu sitio de Datadog, utiliza el selector DATADOG SITE de la derecha.
Nota: Se recomienda utilizar el archivo de configuración HTTPS si el Agent y HAProxy no forman parte de la misma red local aislada.
# 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 metrics (for example, the value of "dd_url").frontendmetrics-forwarderbind*:3834modehttpoptiontcplogdefault_backenddatadog-metricsuse_backenddatadog-apiif{path_beg-i/api/v1/validate}use_backenddatadog-flareif{path_beg-i/support/flare/}# This declares the endpoint where your Agents connects for# sending traces (for example, the value of "endpoint" in the APM# configuration section).frontendtraces-forwarderbind*:3835modetcpoptiontcplogdefault_backenddatadog-traces# This declares the endpoint where your Agents connects for# sending profiles (for example, the value of "apm_config.profiling_dd_url").frontendprofiles-forwarderbind*:3836modetcpoptiontcplogdefault_backenddatadog-profiles# This declares the endpoint where your agents connects for# sending processes (for example, the value of "url" in the process# configuration section).frontendprocesses-forwarderbind*:3837modetcpoptiontcplogdefault_backenddatadog-processes# This declares the endpoint where your Agents connects for# sending Logs (e.g the value of "logs.config.logs_dd_url")# If sending logs with force_use_http: truefrontendlogs_http_frontendbind*:3838modehttpoptiontcplogdefault_backenddatadog-logs-http# If sending logs with force_use_tcp: true# frontend logs_frontend# bind *:10514# mode tcp# option tcplog# default_backend datadog-logs# This declares the endpoint where your Agents connects for# sending database monitoring metrics and activity (e.g the value of "database_monitoring.metrics.dd_url" and "database_monitoring.activity.dd_url")frontenddatabase_monitoring_metrics_frontendbind*:3839modehttpoptiontcplogdefault_backenddatadog-database-monitoring-metrics# This declares the endpoint where your Agents connects for# sending database monitoring samples (e.g the value of "database_monitoring.samples.dd_url")frontenddatabase_monitoring_samples_frontendbind*:3840modehttpoptiontcplogdefault_backenddatadog-database-monitoring-samples# This declares the endpoint where your Agents connects for# sending Network Devices Monitoring metadata (e.g the value of "network_devices.metadata.dd_url")frontendnetwork_devices_metadata_frontendbind*:3841modehttpoptiontcplogdefault_backenddatadog-network-devices-metadata# This declares the endpoint where your Agents connects for# sending Network Devices SNMP Traps data (e.g the value of "network_devices.snmp_traps.forwarder.dd_url")frontendnetwork_devices_snmp_traps_frontendbind*:3842modehttpoptiontcplogdefault_backenddatadog-network-devices-snmp-traps# This declares the endpoint where your Agents connect for# sending Instrumentation Telemetry data (e.g. the value of "apm_config.telemetry.dd_url")frontendinstrumentation_telemetry_data_frontendbind*:3843modetcpoptiontcplogdefault_backenddatadog-instrumentations-telemetry# This declares the endpoint where your Agents connect for# sending Network Devices Monitoring NetFlow flows (for example, the value of "network_devices.netflow.forwarder.dd_url")frontendnetwork_devices_netflow_frontendbind*:3845modehttpoptiontcplogdefault_backenddatadog-network-devices-netflow# This declares the endpoint where your Agents connects for# receiving Remote Configurations (for example, the value of "remote_configuration.rc_dd_url")frontendremote_configuration_frontendbind*:3846modehttpoptiontcplogdefault_backenddatadog-remote-configuration# This declares the endpoint where your Agents connect for# sending Network Path data (for example, the value of "network_path.forwarder.dd_url")frontendnetwork_path_frontendbind*:3847modehttpoptiontcplogdefault_backenddatadog-network-path# 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-metricsbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5metrics.agent.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership metrics.agent.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-apimodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5api.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership api.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-flaremodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5flare.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership flare.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-tracesbalanceroundrobinmodetcp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5trace.agent.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership trace.agent.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-profilesbalanceroundrobinmodetcp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5intake.profile.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership profile.agent.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-processesbalanceroundrobinmodetcp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5process.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership process.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-logs-httpbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5agent-http-intake.logs.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server datadog agent-http-intake.logs.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-database-monitoring-metricsbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5dbm-metrics-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server datadog agent-http-intake.logs.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-database-monitoring-samplesbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5dbquery-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server datadog agent-http-intake.logs.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-network-devices-metadatabalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5ndm-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership ndm-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-network-devices-snmp-trapsbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5snmp-traps-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership snmp-traps-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-instrumentations-telemetrybalanceroundrobinmodetcp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5instrumentation-telemetry-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership instrumentation-telemetry-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-network-devices-netflowbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5ndmflow-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership ndmflow-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-remote-configurationbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5config.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership config.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>backenddatadog-network-pathbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5netpath-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_CERTIFICATES>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership netpath-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_CERTIFICATES>
Esta configuración añade el cifrado SSL/TLS a la comunicación entre el Agent y HAProxy. Reemplaza la variable <PATH_TO_PROXY_CERTIFICATE_PEM> por la ruta de acceso al paquete de certificados del proxy (*.pem).
# 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 connect for# sending metrics (for example, the value of "dd_url").frontendmetrics-forwarderbind*:3834sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-metricsuse_backenddatadog-apiif{path_beg-i/api/v1/validate}use_backenddatadog-flareif{path_beg-i/support/flare/}# This declares the endpoint where your Agents connect for# sending traces (for example, the value of "endpoint" in the APM# configuration section).frontendtraces-forwarderbind*:3835sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modetcpoptiontcplogdefault_backenddatadog-traces# This declares the endpoint where your Agents connect for# sending profiles (for example, the value of "apm_config.profiling_dd_url").frontendprofiles-forwarderbind*:3836sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modetcpoptiontcplogdefault_backenddatadog-profiles# This declares the endpoint where your Agents connect for# sending processes (for example, the value of "url" in the process# configuration section).frontendprocesses-forwarderbind*:3837sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modetcpoptiontcplogdefault_backenddatadog-processes# This declares the endpoint where your Agents connect for# sending Logs (e.g the value of "logs.config.logs_dd_url")# If sending logs with force_use_http: truefrontendlogs_http_frontendbind*:3838sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-logs-http# If sending logs with force_use_tcp: true# frontend logs_frontend# bind *:10514 ssl crt <PATH_TO_PROXY_CERTIFICATE_PEM># mode tcp# option tcplog# default_backend datadog-logs# This declares the endpoint where your Agents connect for# sending database monitoring metrics and activity (e.g the value of "database_monitoring.metrics.dd_url" and "database_monitoring.activity.dd_url")frontenddatabase_monitoring_metrics_frontendbind*:3839sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-database-monitoring-metrics# This declares the endpoint where your Agents connect for# sending database monitoring samples (e.g the value of "database_monitoring.samples.dd_url")frontenddatabase_monitoring_samples_frontendbind*:3840sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-database-monitoring-samples# This declares the endpoint where your Agents connect for# sending Network Devices Monitoring metadata (e.g the value of "network_devices.metadata.dd_url")frontendnetwork_devices_metadata_frontendbind*:3841sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-network-devices-metadata# This declares the endpoint where your Agents connect for# sending Network Devices SNMP Traps data (e.g the value of "network_devices.snmp_traps.forwarder.dd_url")frontendnetwork_devices_snmp_traps_frontendbind*:3842sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-network-devices-snmp-traps# This declares the endpoint where your Agents connect for# sending Instrumentation Telemetry data (e.g. the value of "apm_config.telemetry.dd_url")frontendinstrumentation_telemetry_data_frontendbind*:3843sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modetcpoptiontcplogdefault_backenddatadog-instrumentations-telemetry# This declares the endpoint where your Agents connect for# sending Network Devices Monitoring NetFlow flows (for example, the value of "network_devices.netflow.forwarder.dd_url")frontendnetwork_devices_netflow_frontendbind*:3845sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-network-devices-netflow# This declares the endpoint where your Agents connects for# receiving Remote Configurations (for example, the value of "remote_configuration.rc_dd_url")frontendremote_configuration_frontendbind*:3846sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-remote-configuration# This declares the endpoint where your Agents connect for# sending Network Path data (for example, the value of "network_path.forwarder.dd_url")frontendnetwork_path_frontendbind*:3847sslcrt<PATH_TO_PROXY_CERTIFICATE_PEM>modehttpoptiontcplogdefault_backenddatadog-network-path# 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-metricsbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5metrics.agent.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership metrics.agent.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-apimodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5api.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership api.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-flaremodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5flare.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership flare.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-tracesbalanceroundrobinmodetcp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5trace.agent.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership trace.agent.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-profilesbalanceroundrobinmodetcp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5intake.profile.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership profile.agent.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-processesbalanceroundrobinmodetcp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5process.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership process.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-logs-httpbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5agent-http-intake.logs.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server datadog agent-http-intake.logs.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-database-monitoring-metricsbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5dbm-metrics-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server datadog agent-http-intake.logs.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-database-monitoring-samplesbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5dbquery-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server datadog agent-http-intake.logs.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-network-devices-metadatabalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5ndm-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership ndm-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-network-devices-snmp-trapsbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5snmp-traps-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership snmp-traps-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-instrumentations-telemetrybalanceroundrobinmodetcp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5instrumentation-telemetry-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership instrumentation-telemetry-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-network-devices-netflowbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5ndmflow-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership ndmflow-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-remote-configurationbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5config.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership config.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>backenddatadog-network-pathbalanceroundrobinmodehttp# The following configuration is for HAProxy 1.8 and newerserver-templatemothership5netpath-intake.datadoghq.com:443checkport443sslverifyrequiredca-file<PATH_TO_DATADOG_CERTIFICATES_CRT>checkresolversmy-dnsinit-addrnoneresolve-preferipv4# Uncomment the following configuration for older HAProxy versions# server mothership netpath-intake.datadoghq.com:443 check port 443 ssl verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT>
Nota: Puedes utilizar verify none en lugar de verify required ca-file <PATH_TO_DATADOG_CERTIFICATES_CRT> si no logras obtener los certificados en el host del proxy, pero ten en cuenta que, en ese caso, HAProxy no podrá verificar el certificado de ingesta de Datadog.
HAProxy 1.8 y sus versiones posteriores permiten que la detección de servicios DNS identifique los cambios del servidor y los aplique automáticamente en tu configuración.
Si utilizas una versión de HAProxy anterior, tendrás que refrescar o reiniciar HAProxy. Se recomienda tener una versión de HAProxy que refresque una tarea cron cada 10 minutos (como service haproxy reload) para forzar la actualización de la caché del DNS de HAProxy en caso de que app.datadoghq.com cambie a otra IP.
Cuando se utiliza el cifrado entre el Agent y HAProxy, si el Agent no tiene acceso al certificado del proxy, no puede validarlo o no necesita validarlo, puedes editar el archivo de configuración del Agent datadog.yaml y establecer skip_ssl_validation como true.
Cuando se establece esta opción como true, el Agent omite el paso correspondiente a la validación del certificado y no verifica la identidad del proxy, pero se sigue cifrando la comunicación con SSL/TLS.
Para verificar que todo funcione de manera adecuada, revisa las estadísticas de HAProxy en http://haproxy.example.com:3833 y la información general de la infraestructura.
Edita cada Agent para dirigir datos hacia HAProxy al configurar su dd_url en la dirección de HAProxy. Por ejemplo: haproxy.example.com.
Este parámetro dd_url se podrá encontrar en el archivo datadog.conf.
dd_url: http://haproxy.example.com:3834
Para enviar trazas o procesos mediante el proxy, efectúa la siguiente configuración en el archivo datadog.conf:
Edita la configuración del supervisor para deshabilitar la verificación del certificado SSL. Este paso es necesario para que Python no señale la discrepancia entre el nombre de host que figura en el certificado SSL (app.datadoghq.com) y tu nombre de host de HAProxy. La configuración del supervisor se encuentra en:
/etc/dd-agent/supervisor_ddagent.conf en sistemas basados en Debian
/etc/dd-agent/supervisor.conf en sistemas basados en Red Hat
/opt/local/datadog/supervisord/supervisord.conf en SmartOS
/usr/local/etc/datadog/supervisord/supervisord.conf en FreeBSD
~/.datadog-agent/supervisord/supervisord.conf en macOS
Supongamos que el archivo del supervisor se encuentra en <SUP_FILE>
sed -i 's/ddagent.py/ddagent.py --sslcheck=0/' <SUP_FILE>
En el Windows Agent, edita el archivo de configuración datadog.conf y añade esta opción:
Para verificar que todo funcione de manera adecuada, revisa las estadísticas de HAProxy en http://haproxy.example.com:3833 y la información general de la infraestructura.
NGINX es un servidor web que también se puede utilizar como proxy inverso, equilibrador de carga, proxy de correo electrónico y caché HTTP. Asimismo, puedes utilizar NGINX como proxy en tus Datadog Agents:
agent ---> nginx ---> Datadog
La comunicación entre NGINX y Datadog se cifra siempre con TLS. No obstante, la comunicación entre el host del Agent y el host de NGINX no se cifra por defecto, dado que se parte del principio de que el proxy y el Agent se encuentran en el mismo host. Si no comparten la misma red local aislada, te recomendamos proteger dicha comunicación con el cifrado TLS.
Para cifrar datos entre el Agent y NGINX, será necesario que crees un certificado x509 con la extensión de nombre alternativo del firmante (SAN) del host de NGINX.
Nota: Descarga el certificado de Datadog con uno de los siguientes comandos:
La ruta del certificado es /etc/ssl/certs/ca-certificates.crt en el caso de Debian y Ubuntu, o /etc/ssl/certs/ca-bundle.crt en el caso de CentOS y Red Hat.
NGINX se debe instalar en un host que tenga conectividad con Datadog. Puedes utilizar uno de los siguientes archivos de configuración si aún no lo tienes configurado. La configuración depende del servicio y sitio de Datadog. Para ver las configuraciones basadas en tu sitio de Datadog, utiliza el selector DATADOG SITE de la derecha.
Nota: Se recomienda utilizar el archivo de configuración HTTPS si el Agent y NGINX no forman parte de la misma red local aislada.
usernginx;worker_processesauto;error_log/var/log/nginx/error.log;pid/run/nginx.pid;events{worker_connections1024;}# HTTP Proxy for Datadog Agenthttp{proxy_ssl_trusted_certificate<PATH_TO_CERTIFICATES>;server{listen3834;#listen for metricsaccess_logoff;location/api/v1/validate{proxy_ssl_verifyon;proxy_passhttps://api.datadoghq.com:443/api/v1/validate;}location/support/flare/{proxy_ssl_verifyon;proxy_passhttps://flare.datadoghq.com:443/support/flare/;}location/{proxy_ssl_verifyon;proxy_passhttps://metrics.agent.datadoghq.com:443/;}}}# TCP Proxy for Datadog Agentstream{proxy_ssl_trusted_certificate<PATH_TO_CERTIFICATES>;server{listen3835;#listen for tracesproxy_ssl_verifyon;proxy_sslon;proxy_passtrace.agent.datadoghq.com:443;}server{listen3836;#listen for profilesproxy_ssl_verifyon;proxy_sslon;proxy_passintake.profile.datadoghq.com:443;}server{listen3837;#listen for processesproxy_ssl_verifyon;proxy_sslon;proxy_passprocess.datadoghq.com:443;}server{listen3838;#listen for logs with force_use_http: trueproxy_ssl_verifyon;proxy_sslon;proxy_passagent-http-intake.logs.datadoghq.com:443;}server{listen3839;#listen for database monitoring metricsproxy_ssl_verifyon;proxy_sslon;proxy_passdbm-metrics-intake.datadoghq.com:443;}server{listen3840;#listen for database monitoring samplesproxy_ssl_verifyon;proxy_sslon;proxy_passdbquery-intake.datadoghq.com:443;}server{listen3841;#listen for network devices metadataproxy_ssl_verifyon;proxy_sslon;proxy_passndm-intake.datadoghq.com:443;}server{listen3842;#listen for network devices trapsproxy_ssl_verifyon;proxy_sslon;proxy_passsnmp-traps-intake.datadoghq.com:443;}server{listen3843;#listen for instrumentations telemetry dataproxy_ssl_verifyon;proxy_sslon;proxy_passinstrumentation-telemetry-intake.datadoghq.com:443;}server{listen3845;#listen for network devices netflowproxy_ssl_verifyon;proxy_sslon;proxy_passndmflow-intake.datadoghq.com:443;}server{listen3846;#listen for Remote Configuration requestsproxy_ssl_verifyon;proxy_sslon;proxy_passconfig.datadoghq.com:443;}server{listen3847;#listen for network pathproxy_ssl_verifyon;proxy_sslon;proxy_passnetpath-intake.datadoghq.com:443;}}
Esta configuración añade el cifrado SSL/TLS a la comunicación entre el Agent y NGINX. Reemplaza <PATH_TO_PROXY_CERTIFICATE> por la ruta de acceso al certificado público del proxy y <PATH_TO_PROXY_CERTIFICATE_KEY> por la ruta de acceso a la clave privada.
usernginx;worker_processesauto;error_log/var/log/nginx/error.log;pid/run/nginx.pid;events{worker_connections1024;}# HTTP Proxy for Datadog Agenthttp{proxy_ssl_trusted_certificate<PATH_TO_CERTIFICATES>;ssl_certificate<PATH_TO_PROXY_CERTIFICATE>;ssl_certificate_key<PATH_TO_PROXY_CERTIFICATE_KEY>;server{listen3834ssl;#listen for metricsaccess_logoff;location/api/v1/validate{proxy_ssl_verifyon;proxy_passhttps://api.datadoghq.com:443/api/v1/validate;}location/support/flare/{proxy_ssl_verifyon;proxy_passhttps://flare.datadoghq.com:443/support/flare/;}location/{proxy_ssl_verifyon;proxy_passhttps://metrics.agent.datadoghq.com:443/;}}}# TCP Proxy for Datadog Agentstream{proxy_ssl_trusted_certificate<PATH_TO_CERTIFICATES>;ssl_certificate<PATH_TO_PROXY_CERTIFICATE>;ssl_certificate_key<PATH_TO_PROXY_CERTIFICATE_KEY>;server{listen3835ssl;#listen for tracesproxy_ssl_verifyon;proxy_sslon;proxy_passtrace.agent.datadoghq.com:443;}server{listen3836ssl;#listen for profilesproxy_ssl_verifyon;proxy_sslon;proxy_passintake.profile.datadoghq.com:443;}server{listen3837ssl;#listen for processesproxy_ssl_verifyon;proxy_sslon;proxy_passprocess.datadoghq.com:443;}server{listen3838ssl;#listen for logs with force_use_http: trueproxy_ssl_verifyon;proxy_sslon;proxy_passagent-http-intake.logs.datadoghq.com:443;}server{listen3839ssl;#listen for database monitoring metricsproxy_ssl_verifyon;proxy_sslon;proxy_passdbm-metrics-intake.datadoghq.com:443;}server{listen3840ssl;#listen for database monitoring samplesproxy_ssl_verifyon;proxy_sslon;proxy_passdbquery-intake.datadoghq.com:443;}server{listen3841ssl;#listen for network devices metadataproxy_ssl_verifyon;proxy_sslon;proxy_passndm-intake.datadoghq.com:443;}server{listen3842ssl;#listen for network devices trapsproxy_ssl_verifyon;proxy_sslon;proxy_passsnmp-traps-intake.datadoghq.com:443;}server{listen3843ssl;#listen for instrumentations telemetry dataproxy_ssl_verifyon;proxy_sslon;proxy_passinstrumentation-telemetry-intake.datadoghq.com:443;}server{listen3845ssl;#listen for network devices netflowproxy_ssl_verifyon;proxy_sslon;proxy_passndmflow-intake.datadoghq.com:443;}server{listen3846ssl;#listen for Remote Configuration requestsproxy_ssl_verifyon;proxy_sslon;proxy_passconfig.datadoghq.com:443;}server{listen3847ssl;#listen for network pathproxy_ssl_verifyon;proxy_sslon;proxy_passnetpath-intake.datadoghq.com:443;}}
Nota: Puedes eliminar proxy_ssl_verify on si no consigues obtener los certificados en el host del proxy, pero ten en cuenta que, si lo haces, NGINX no podrá verificar el certificado de ingesta de Datadog.
Edita el archivo de configuración de cada Agent para dirigir datos hacia NGINX al configurar su dd_url en la dirección de NGINX. Por ejemplo: nginx.example.com.
Este parámetro dd_url se podrá encontrar en el archivo datadog.yaml.
dd_url: "<SCHEME>://nginx.example.com:3834"
Reemplaza <SCHEME> por https si optaste por la configuración HTTPS de HAProxy con anterioridad, o bien por http si no optaste por HTTPS.
Para enviar trazas (traces), perfiles, procesos y logs mediante el proxy, efectúa la siguiente configuración en el archivo datadog.yaml:
apm_config:apm_dd_url:<SCHEME>://nginx.example.com:3835profiling_dd_url:<SCHEME>://nginx.example.com:3836/api/v2/profiletelemetry:dd_url:<SCHEME>://nginx.example.com:3843process_config:process_dd_url:<SCHEME>://nginx.example.com:3837logs_config:force_use_http:truelogs_dd_url:nginx.example.com:3838# Comment the line below to use encryption between the Agent and NGINXlogs_no_ssl:truedatabase_monitoring:metrics:logs_dd_url:nginx.example.com:3839# Comment the line below to use encryption between the Agent and NGINXlogs_no_ssl:trueactivity:logs_dd_url:nginx.example.com:3839# Comment the line below to use encryption between the Agent and NGINXlogs_no_ssl:truesamples:logs_dd_url:nginx.example.com:3840# Comment the line below to use encryption between the Agent and NGINXlogs_no_ssl:truenetwork_devices:metadata:logs_dd_url:nginx.example.com:3841# Comment the line below to use encryption between the Agent and NGINXlogs_no_ssl:truesnmp_traps:forwarder:logs_dd_url:nginx.example.com:3842# Comment the line below to use encryption between the Agent and NGINXlogs_no_ssl:truenetflow:forwarder:logs_dd_url:nginx.example.com:3845# Comment the line below to use encryption between the Agent and NGINXlogs_no_ssl:trueremote_configuration:rc_dd_url:nginx.example.com:3846# Comment the line below to use encryption between the Agent and NGINXno_tls:true
Cuando se utiliza el cifrado entre el Agent y NGINX, si el Agent no tiene acceso al certificado del proxy, no puede validarlo o no necesita validarlo, puedes editar el archivo de configuración del Agent datadog.yaml y establecer skip_ssl_validation como true.
Cuando se establece esta opción como true, el Agent omite el paso correspondiente a la validación del certificado y no verifica la identidad del proxy, pero se sigue cifrando la comunicación con SSL/TLS.
skip_ssl_validation:true
Cuando envíes logs a través de TCP, consulta la sección acerca del proxy de TCP para logs.
Se recomienda utilizar un proxy real (un proxy web o HAProxy) para reenviar el tráfico hacia Datadog. No obstante, si no dispones de esas opciones, puedes configurar una instancia del Agent v5 para que actúe como un proxy.
Designa como proxy un nodo que ejecute datadog-agent.
En este ejemplo, supongamos que el nombre del proxy es proxy-node. El nodo debe poder llegar a https://app.datadoghq.com.
Modifica la siguiente línea de datadog.conf para permitir que haya tráfico no local en proxy-node.
# non_local_traffic: no debería ser non_local_traffic: yes.
Asegúrate de que se pueda llegar a proxy-node desde los demás nodos a través del puerto 17123. Inicia el Agent en proxy-node y ejecútalo en los demás nodos: