Descripción general
La configuración de Network Path implica configurar su entorno para hacer un seguimiento y trazar las rutas de red entre sus servicios y puntos finales. Esto ayuda a identificar cuellos de botella, problemas de latencia y posibles puntos de falla en su infraestructura de red. Network Path le permite configurar manualmente rutas de red individuales, descubrirlas automáticamente o utilizar ambos métodos simultáneamente, según sus necesidades.
Nota: Si su configuración de red restringe el tráfico saliente, siga las instrucciones de configuración en la documentación de Configuración de proxy del Agent.
Configuración
Esta página cubre la configuración de Network Path para la configuración basada en el Agent en Network Monitoring. Para crear pruebas de Network Path en Synthetic Monitoring, consulte
Network Path Testing in Synthetic Monitoring.
Datadog proporciona tres métodos de recopilación basados en el Agent. Puede utilizar un método por sí solo o combinar varios métodos:
| Método | Cuándo utilizarlo |
|---|
| Pruebas programadas | Haga un seguimiento de pares específicos de fuente-destino que usted defina en la configuración del Agent. Ideal para realizar un seguimiento de un conjunto conocido de puntos finales, como API críticas o servicios de socios. |
| Pruebas dinámicas | Descubra y haga un seguimiento de rutas automáticamente según el tráfico observado por Cloud Network Monitoring. Ideal para una visibilidad amplia sin tener que enumerar manualmente cada destino. |
| Pruebas dinámicas para NetFlow | Ejecute automáticamente pruebas de Network Path desde el servidor del Agent a las IP de destino observadas en NetFlow Monitoring. Ideal para agregar visibilidad de rutas salto a salto al tráfico de NetFlow sin configurar manualmente destinos individuales. |
Pruebas programadas
Puede hacer un seguimiento de rutas de red específicas definiéndolas en el archivo de configuración del Agent ubicado en /etc/datadog-agent/conf.d/network_path.d/conf.yaml.
Para comenzar, copie la configuración de ejemplo, elimine la extensión .example y actualícela con la configuración deseada, o utilice una de las configuraciones específicas del entorno a continuación. Para la optimización del rendimiento en entornos grandes, consulte aumentar el número de trabajadores.
Se requiere el Agent v7.59+.
Habilite el módulo de traceroute system-probe en /etc/datadog-agent/system-probe.yaml agregando lo siguiente:
traceroute:
enabled: true
Habilite network_path para hacer un seguimiento de nuevos destinos desde este Agent creando o editando el archivo /etc/datadog-agent/conf.d/network_path.d/conf.yaml:
init_config:
min_collection_interval: 60 # in seconds, default 60 seconds
instances:
# configure the endpoints you want to monitor, one check instance per endpoint
# warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination.
- hostname: api.datadoghq.eu # endpoint hostname or IP
protocol: TCP
port: 443
tags:
- "tag_key:tag_value"
- "tag_key2:tag_value2"
min_collection_interval: 120 # set min_collection_interval at the instance level
## optional configs:
# max_ttl: 30 # max traceroute TTL, default is 30
# timeout: 1000 # timeout in milliseconds per hop, default is 1s
# tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack
# traceroute_queries: 3 # number of traceroutes to send per check run, default is 3
# e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50
# more endpoints
- hostname: 1.1.1.1 # endpoint hostname or IP
protocol: UDP
tags:
- "tag_key:tag_value"
- "tag_key2:tag_value2"
Reinicie el Agent después de realizar estos cambios de configuración para comenzar a ver las rutas de red.
Se requiere el Agent v7.75+.
Habilite el módulo de traceroute system-probe en /opt/datadog-agent/etc/system-probe.yaml agregando lo siguiente:
traceroute:
enabled: true
Habilite network_path para hacer un seguimiento de nuevos destinos desde este Agent creando o editando el archivo /opt/datadog-agent/etc/conf.d/network_path.d/conf.yaml:
init_config:
min_collection_interval: 60 # in seconds, default 60 seconds
instances:
# configure the endpoints you want to monitor, one check instance per endpoint
# warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination.
- hostname: api.datadoghq.eu # endpoint hostname or IP
protocol: TCP
port: 443
tags:
- "tag_key:tag_value"
- "tag_key2:tag_value2"
min_collection_interval: 120 # set min_collection_interval at the instance level
## optional configs:
# max_ttl: 30 # max traceroute TTL, default is 30
# timeout: 1000 # timeout in milliseconds per hop, default is 1s
# tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack
# traceroute_queries: 3 # number of traceroutes to send per check run, default is 3
# e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50
# more endpoints
- hostname: 1.1.1.1 # endpoint hostname or IP
protocol: UDP
tags:
- "tag_key:tag_value"
- "tag_key2:tag_value2"
Reinicie el Agent después de realizar estos cambios de configuración para comenzar a ver las rutas de red.
Se requiere el Agent v7.72+.
Habilite el módulo de traceroute system-probe en %ProgramData%\Datadog\system-probe.yaml agregando lo siguiente:
traceroute:
enabled: true
Habilite network_path para hacer un seguimiento de nuevos destinos desde este Agent creando o editando el archivo %ProgramData%\Datadog\conf.d\network_path.d\conf.yaml:
init_config:
min_collection_interval: 60 # in seconds, default 60 seconds
instances:
# configure the endpoints you want to monitor, one check instance per endpoint
# warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination.
- hostname: api.datadoghq.eu # endpoint hostname or IP
protocol: TCP
port: 443
tags:
- "tag_key:tag_value"
- "tag_key2:tag_value2"
min_collection_interval: 120 # set min_collection_interval at the instance level
## optional configs:
# max_ttl: 30 # max traceroute TTL, default is 30
# timeout: 1000 # timeout in milliseconds per hop, default is 1s
# tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack, syn_socket (Windows only)
# traceroute_queries: 3 # number of traceroutes to send per check run, default is 3
# e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50
# more endpoints
- hostname: 1.1.1.1 # endpoint hostname or IP
protocol: TCP
tags:
- "tag_key:tag_value"
- "tag_key2:tag_value2"
Reinicie el Agent después de realizar estos cambios de configuración para comenzar a ver las rutas de red.
Se requiere el Agent v7.59+.
Para habilitar Network Path con Kubernetes usando Helm, agregue lo siguiente a su archivo values.yaml.
datadog:
traceroute:
enabled: true
confd:
network_path.yaml: |-
init_config:
min_collection_interval: 60 # in seconds, default 60 seconds
instances:
# configure the endpoints you want to monitor, one check instance per endpoint
# warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination.
- hostname: api.datadoghq.eu # endpoint hostname or IP
protocol: TCP
port: 443
tags:
- "tag_key:tag_value"
- "tag_key2:tag_value2"
min_collection_interval: 120 # set min_collection_interval at the instance level
## optional configs:
# max_ttl: 30 # max traceroute TTL, default is 30
# timeout: 1000 # timeout in milliseconds per hop, default is 1s
# tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack
# traceroute_queries: 3 # number of traceroutes to send per check run, default is 3
# e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50
# more endpoints
- hostname: 1.1.1.1 # endpoint hostname or IP
protocol: UDP
tags:
- "tag_key:tag_value"
- "tag_key2:tag_value2"
Datadog Autodiscovery allows you to enable Network Path on a per-service basis through Kubernetes annotations.
Enable the traceroute module in the Datadog values.yaml file, which the Network Path integration depends on.
datadog:
traceroute:
enabled: true
After the module is enabled, Datadog automatically detects Network Path annotations added to your Kubernetes pod. For more information, see Kubernetes and Integrations.
apiVersion: v1
kind: Pod
# (...)
metadata:
name: '<POD_NAME>'
annotations:
ad.datadoghq.com/<CONTAINER_NAME>.checks: |
{
"network_path": {
"init_config": {
"min_collection_interval": 300
},
"instances": [
{
"protocol": "TCP",
"port": 443,
"source_service": "<CONTAINER_NAME>",
"tags": [
"tag_key:tag_value",
"tag_key2:tag_value2"
],
"hostname": "api.datadoghq.eu"
},
{
"protocol": "UDP",
"source_service": "<CONTAINER_NAME>",
"tags": [
"tag_key:tag_value",
"tag_key2:tag_value2"
],
"hostname": "1.1.1.1"
},
]
}
}
# (...)
spec:
containers:
- name: '<CONTAINER_NAME>'
# (...)
If you define pods indirectly (with deployments, ReplicaSets, or ReplicationControllers), add pod annotations under spec.template.metadata.
Increase the number of workers
Network Path monitoring for individual paths runs as an Agent Integration. The number of concurrent workers is controlled by the check_runners setting in the datadog.yaml file.
To increase the number of workers, add the following configuration to your datadog.yaml file:
## @param check_runners - integer - optional - default: 4
## @env DD_CHECK_RUNNERS - integer - optional - default: 4
## The `check_runners` refers to the number of concurrent check runners available for check instance execution.
## The scheduler attempts to spread the instances over the collection interval and will _at most_ be
## running the number of check runners instances concurrently.
##
## The level of concurrency has effects on the Agent's: RSS memory, CPU load, resource contention overhead, etc.
#
check_runners: <NUMBER_OF_WORKERS>
Dynamic tests
Prerequisites: CNM must be enabled.
Configure dynamic tests to allow the Agent to automatically discover and monitor network paths based on actual network traffic, eliminating the need to manually configure individual endpoints. See filter syntax to include/exclude domain or IPs.
Se requiere el Agent v7.73+.
Habilite el módulo de traceroute system-probe en /etc/datadog-agent/system-probe.yaml agregando lo siguiente:
traceroute:
enabled: true
Habilite network_path para hacer un seguimiento de las conexiones CNM creando o editando el archivo /etc/datadog-agent/datadog.yaml:
network_path:
connections_monitoring:
enabled: true
# collector:
# workers: <NUMBER OF WORKERS> # default 4
For full configuration details, reference the example config, or use the following:
network_path:
connections_monitoring:
## @param enabled - bool - required - default:false
## Enable network path collection
#
enabled: true
collector:
## @param workers - int - optional - default:4
## Number of workers that can collect paths in parallel
## Recommendation: leave at default
#
# workers: <NUMBER OF WORKERS> # default 4
#@env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 10m
# The `pathtest_interval` refers to the traceroute run interval for monitored connections.
# pathtest_interval: 10m
# @param pathtest_ttl - integer - optional - default: 35m
# @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m
# The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore.
# The TTL is reset each time the connection is seen again.
# pathtest_ttl: 35m
## @param filters - list - optional
## Include or exclude specific domains or IP ranges from dynamic monitoring.
## Filters are applied sequentially, with later filters taking precedence.
## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax
#
# filters:
# - match_domain: '*.example.com'
# type: exclude
# - match_ip: 10.0.0.0/8
# type: exclude
# - match_domain: 'api.datadoghq.com'
# type: include
Reinicie el Agent después de realizar estos cambios de configuración para comenzar a ver las rutas de red.
Se requiere el Agent v7.73+.
Habilite el módulo de traceroute system-probe en %ProgramData%\Datadog\system-probe.yaml agregando lo siguiente:
traceroute:
enabled: true
Habilite network_path para hacer un seguimiento de las conexiones CNM creando o editando el archivo %ProgramData%\Datadog\datadog.yaml:
network_path:
connections_monitoring:
enabled: true
# collector:
# workers: <NUMBER OF WORKERS> # default 4
Para obtener detalles completos de configuración, consulte la configuración de ejemplo o utilice lo siguiente:
network_path:
connections_monitoring:
## @param enabled - bool - required - default:false
## Enable network path collection
#
enabled: true
collector:
## @param workers - int - optional - default:4
## Number of workers that can collect paths in parallel
## Recommendation: leave at default
#
# workers: <NUMBER OF WORKERS> # default 4
#@env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 10m
# The `pathtest_interval` refers to the traceroute run interval for monitored connections.
# pathtest_interval: 10m
# @param pathtest_ttl - integer - optional - default: 35m
# @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m
# The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore.
# The TTL is reset each time the connection is seen again.
# pathtest_ttl: 35m
## @param filters - list - optional
## Include or exclude specific domains or IP ranges from dynamic monitoring.
## Filters are applied sequentially, with later filters taking precedence.
## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax
#
# filters:
# - match_domain: '*.example.com'
# type: exclude
# - match_ip: 10.0.0.0/8
# type: exclude
# - match_domain: 'api.datadoghq.com'
# type: include
Reinicie el Agent después de realizar estos cambios de configuración para comenzar a ver las rutas de red.
Se requiere el Agent v7.73+.
Para habilitar Network Path con Kubernetes usando Helm, agregue lo siguiente a su archivo values.yaml.
Nota: Se requiere Helm chart v3.124.0+. Para obtener más información, consulte la documentación de Datadog Helm Chart y la documentación de Kubernetes and Integrations.
datadog:
networkPath:
connectionsMonitoring:
enabled: true
## Set to true to enable the Traceroute Module of the System Probe
traceroute:
enabled: true
## @param collector - custom object - optional
## Configuration related to Network Path Collector.
#
collector:
## @param workers - integer - optional - default: 4
## @env DD_WORKERS - integer - optional - default: 4
## The `workers` refers to the number of concurrent workers available for network path execution.
#
# workers: 4
## @param pathtest_interval - integer - optional - default: 35m
## @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 30m
## The `pathtest_interval` refers to the traceroute run interval for monitored connections.
#
# pathtest_interval: 30m
## @param pathtest_ttl - integer - optional - default: 35m
## @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m
## The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore.
## The TTL is reset each time the connection is seen again.
#
# pathtest_ttl: 35m
## @param filters - list - optional
## Include or exclude specific domains or IP ranges from dynamic monitoring.
## Filters are applied sequentially, with later filters taking precedence.
## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax
#
# filters:
# - match_domain: '*.example.com'
# type: exclude
# - match_ip: 10.0.0.0/8
# type: exclude
# - match_domain: 'api.datadoghq.com'
# type: include
Pruebas dinámicas para NetFlow (experimentales)
Las pruebas dinámicas para NetFlow son experimentales y requieren el Agent v7.81+. Para habilitar esta función, comuníquese con el equipo de soporte de Datadog o con su equipo de cuenta.
Configure las pruebas dinámicas para NetFlow para ejecutar pruebas de Network Path desde el servidor del Agent hasta las IP de destino observadas en los registros de NetFlow. Las pruebas dinámicas para NetFlow no requieren Cloud Network Monitoring o network_path.connections_monitoring.enabled.
Las pruebas dinámicas para NetFlow se ejecutan desde el Datadog Agent que recopila el tráfico de NetFlow. No se ejecutan desde el exportador de NetFlow, el enrutador o la fuente original. Implemente el Agent lo suficientemente cerca de las fuentes de flujo observadas para que los traceroutes desde ese Agente representen las rutas que desea investigar.
Requisitos previos:
- NetFlow Monitoring debe estar configurado y recibiendo flujos.
- Se requiere el Agent
v7.81+.
Habilite el módulo de traceroute system-probe en /etc/datadog-agent/system-probe.yaml agregando lo siguiente:
traceroute:
enabled: true
Habilite las pruebas dinámicas para NetFlow en /etc/datadog-agent/datadog.yaml:
network_path:
netflow_monitoring:
enabled: true
collector:
monitor_ip_without_domain: true
monitor_ip_without_domain: true es necesario porque las pruebas dinámicas para NetFlow tienen como objetivo las direcciones IP de destino observadas y el recopilador de Network Path omite los destinos que solo tienen IP de forma predeterminada.
Reinicie el Agent después de realizar estos cambios de configuración.
Habilite el módulo de traceroute system-probe en %ProgramData%\Datadog\system-probe.yaml agregando lo siguiente:
traceroute:
enabled: true
Habilite las pruebas dinámicas para NetFlow en %ProgramData%\Datadog\datadog.yaml:
network_path:
netflow_monitoring:
enabled: true
collector:
monitor_ip_without_domain: true
monitor_ip_without_domain: true es necesario porque las pruebas dinámicas para NetFlow tienen como objetivo las direcciones IP de destino observadas y el recopilador de Network Path omite los destinos que solo tienen IP de forma predeterminada.
Reinicie el Agent después de realizar estos cambios de configuración.
Después de que el Agent informe las rutas, abra la interfaz de usuario de Network Path y filtre por origin:netflow para ver las rutas generadas a partir del tráfico de NetFlow.
Sintaxis de filtro
Configure filtros para incluir o excluir dominios e IPs, lo que le permite:
- Reduzca la sobrecarga de monitoreo para redes internas
- Concéntrese en los patrones de tráfico externo
- Excluya los rangos de infraestructura conocidos que no requieren monitoreo
La misma lista network_path.collector.filters se aplica a las pruebas dinámicas y a las Pruebas dinámicas para NetFlow. Para las Pruebas dinámicas para NetFlow, utilice filtros match_ip porque las Pruebas dinámicas para NetFlow se dirigen a las direcciones IP de destino observadas.
Para incluir o excluir dominios o rangos de IP específicos de las pruebas dinámicas, agregue lo siguiente a su archivo /etc/datadog-agent/datadog.yaml:
network_path:
collector:
filters:
# exclude single domain
- match_domain: 'api.slack.com'
type: exclude
# exclude domain using `*` wildcard
- match_domain: '*.datadoghq.com' # this translates to regex '.*\.datadoghq\.com
type: exclude
- match_domain: '*.zoom.us'
match_domain_strategy: wildcard # use simple wildcard matching (wildcard matching is the default)
type: exclude
# exclude single IP or using CIDR notation
- match_ip: 10.10.10.10
type: exclude
- match_ip: 10.20.0.0/24
type: exclude
# exclude using regex
- match_domain: '.*\.zoom\.us'
match_domain_strategy: regex # use regex matching strategy
type: exclude
# include
- match_domain: 'api.datadoghq.com'
type: include
Nota:
Los filtros se aplican de forma secuencial, y los filtros posteriores tienen prioridad sobre los anteriores.
Por ejemplo, todos los dominios que coinciden con *.datadoghq.com se ignoran, excepto api.datadoghq.com.
network_path:
collector:
filters:
- match_domain: '*.datadoghq.com'
type: exclude
- match_domain: 'api.datadoghq.com'
type: include
Resolución de IP pública de fuente
La resolución de IP pública de fuente está disponible en el Agent v7.75+.
Network Path resuelve la dirección IP pública del servidor de fuente para proporcionar una visualización precisa de la ruta para el tráfico con destino a internet. El Agent contacta servicios externos de verificación de IP a través de HTTPS para determinar la IP pública del servidor.
Esta función no es necesaria para que Network Path funcione. Si estos servicios no están accesibles, Network Path continúa operando normalmente, pero la IP pública de fuente no se resuelve y las visualizaciones de ruta no muestran los metadatos de la IP de fuente.
Si su red restringe el tráfico saliente y desea la resolución de IP pública de fuente, agregue las siguientes URL a la lista de permitidos de su firewall:
| URL | Proveedor |
|---|
https://icanhazip.com | Cloudflare |
https://ipinfo.io/ip | IPinfo |
https://checkip.amazonaws.com | Amazon |
https://api.ipify.org | ipify |
https://whatismyip.akamai.com | Akamai |
El Agent intenta cada servicio en orden y utiliza la primera respuesta exitosa. Todas las solicitudes se realizan a través de HTTPS (puerto 443).
Solución de problemas
Utilice las siguientes pautas para solucionar problemas con Network Path. Si necesita ayuda adicional, comuníquese con el Datadog Support.
No hay datos de Network Path en la UI
Si no aparecen datos en la Network Path UI, es posible que la función no esté completamente habilitada. Network Path requiere lo siguiente:
El módulo de traceroute debe estar habilitado en su archivo system-probe.yaml:
traceroute:
enabled: true
Al menos una función de Network Path debe estar activa, como:
No hay datos de pruebas dinámicas para NetFlow en la UI
Si no aparecen rutas con origin:netflow en la Network Path UI, verifique lo siguiente:
- El Agent es de la versión
7.81+. - NetFlow Monitoring está habilitado y recibiendo flujos.
- El módulo de traceroute está habilitado en
system-probe.yaml. network_path.netflow_monitoring.enabled y network_path.collector.monitor_ip_without_domain están configurados en true en datadog.yaml.- Su configuración de
network_path.collector.filters no excluye las IP de destino que espera hacer un seguimiento.
Las pruebas dinámicas para NetFlow omiten automáticamente los registros de NetFlow cuya IP de fuente está asignada al servidor del Agent antes de que se evalúen los filtros de destino. Esto evita bucles de auto-programación y es un comportamiento esperado. Para casos de NAT o alias donde el tráfico originado por el Agent aparece desde otra IP de fuente, use network_path.collector.source_excludes para excluir esas IP de fuente.
Luego, filtre la UI de Network Path para origin:netflow.
Error: código de estado: 404
Si encuentra un error como el siguiente:
Error: failed to trace path: traceroute request failed: Probe Path <path>, url: <url>, status code: 404
- Esto indica que el módulo de traceroute no está habilitado. Asegúrese de que el módulo de traceroute esté habilitado en su archivo
system-probe.yaml.
Lecturas adicionales
Documentación, enlaces y artículos útiles adicionales: