Présentation
La configuration de Network Path implique de configurer votre environnement pour surveiller et tracer les routes réseau entre vos services et vos endpoints. Cela permet d’identifier les goulots d’étranglement, les problèmes de latence et les points de défaillance potentiels de votre infrastructure réseau. Network Path vous permet de configurer manuellement des chemins réseau individuels, de les découvrir automatiquement ou d’utiliser les deux méthodes simultanément, selon vos besoins.
Remarque : Si votre configuration réseau restreint le trafic sortant, suivez les instructions de configuration dans la documentation Agent proxy configuration.
Configuration
Cette page couvre la configuration de Network Path pour la configuration basée sur l'Agent dans Network Monitoring. Pour créer des tests Network Path dans Synthetic Monitoring, consultez
Network Path Testing in Synthetic Monitoring.
Datadog propose trois méthodes de collecte basées sur l’Agent. Vous pouvez utiliser une méthode seule ou combiner plusieurs méthodes :
| Méthode | Quand l’utiliser |
|---|
| Tests planifiés | Surveillez des paires source-destination spécifiques que vous définissez dans la configuration de l’Agent. Idéal pour suivre un ensemble connu d’endpoints, tels que des API critiques ou des services partenaires. |
| Tests dynamiques | Découvrez et surveillez automatiquement les chemins en fonction du trafic observé par Cloud Network Monitoring. Idéal pour une visibilité étendue sans avoir à lister manuellement chaque destination. |
| Tests dynamiques pour NetFlow | Exécutez automatiquement des tests Network Path depuis le host de l’Agent vers les adresses IP de destination observées dans NetFlow Monitoring. Idéal pour ajouter une visibilité des routes saut par saut au trafic NetFlow sans configurer manuellement chaque destination. |
Tests planifiés
Vous pouvez surveiller des chemins réseau spécifiques en les définissant dans le fichier de configuration de l’Agent situé à /etc/datadog-agent/conf.d/network_path.d/conf.yaml.
Pour commencer, copiez la configuration exemple, supprimez l’extension .example et mettez-la à jour avec les paramètres souhaités, ou utilisez l’une des configurations spécifiques à l’environnement ci-dessous. Pour l’optimisation des performances dans les grands environnements, consultez augmenter le nombre de workers.
L’Agent v7.59+ est requis.
Activez le module system-probe traceroute dans /etc/datadog-agent/system-probe.yaml en ajoutant ce qui suit :
traceroute:
enabled: true
Activez network_path pour surveiller de nouvelles destinations depuis cet Agent en créant ou en modifiant le fichier /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"
Redémarrez l’Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau.
L’Agent v7.75+ est requis.
Activez le module system-probe traceroute dans /opt/datadog-agent/etc/system-probe.yaml en ajoutant ce qui suit :
traceroute:
enabled: true
Activez network_path pour surveiller de nouvelles destinations depuis cet Agent en créant ou en modifiant le fichier /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"
Redémarrez l’Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau.
L’Agent v7.72+ est requis.
Activez le module system-probe traceroute dans %ProgramData%\Datadog\system-probe.yaml en ajoutant ce qui suit :
traceroute:
enabled: true
Activez network_path pour surveiller de nouvelles destinations depuis cet Agent en créant ou en modifiant le fichier %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"
Redémarrez l’Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau.
L’Agent v7.59+ est requis.
Pour activer Network Path avec Kubernetes via Helm, ajoutez ce qui suit à votre fichier 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.
L’Agent v7.73+ est requis.
Activez le module system-probe traceroute dans /etc/datadog-agent/system-probe.yaml en ajoutant ce qui suit :
traceroute:
enabled: true
Activez network_path pour surveiller les connexions CNM en créant ou en modifiant le fichier /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
Redémarrez l’Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau.
L’Agent v7.73+ est requis.
Activez le module system-probe traceroute dans %ProgramData%\Datadog\system-probe.yaml en ajoutant ce qui suit :
traceroute:
enabled: true
Activez network_path pour surveiller les connexions CNM en créant ou en modifiant le fichier %ProgramData%\Datadog\datadog.yaml :
network_path:
connections_monitoring:
enabled: true
# collector:
# workers: <NUMBER OF WORKERS> # default 4
Pour obtenir tous les détails de configuration, consultez la configuration exemple ou utilisez ce qui suit :
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
Redémarrez l’Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau.
L’Agent v7.73+ est requis.
Pour activer Network Path avec Kubernetes via Helm, ajoutez ce qui suit à votre fichier values.yaml.
Remarque : Le chart Helm v3.124.0+ est requis. Pour plus d’informations, consultez la documentation du chart Helm Datadog et la documentation pour Kubernetes et 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
Tests dynamiques pour NetFlow (expérimental)
Les tests dynamiques pour NetFlow sont expérimentaux et nécessitent l'Agent v7.81+. Pour activer cette fonctionnalité, contactez le support Datadog ou votre équipe de compte.
Configurez les tests dynamiques pour NetFlow afin d’exécuter des tests Network Path depuis le host de l’Agent vers les adresses IP de destination observées dans les enregistrements NetFlow. Les tests dynamiques pour NetFlow ne nécessitent pas Cloud Network Monitoring ou network_path.connections_monitoring.enabled.
Les tests dynamiques pour NetFlow s’exécutent depuis le Datadog Agent qui collecte le trafic NetFlow. Ils ne s’exécutent pas depuis l’exportateur NetFlow, le routeur ou la source de flux d’origine. Déployez l’Agent suffisamment près des sources de flux observées pour que les traceroutes depuis cet Agent représentent les chemins que vous souhaitez étudier.
Prérequis :
Activez le module system-probe traceroute dans /etc/datadog-agent/system-probe.yaml en ajoutant ce qui suit :
traceroute:
enabled: true
Activez les tests dynamiques pour NetFlow dans /etc/datadog-agent/datadog.yaml :
network_path:
netflow_monitoring:
enabled: true
collector:
monitor_ip_without_domain: true
monitor_ip_without_domain: true est requis car les tests dynamiques pour NetFlow ciblent les adresses IP de destination observées et le collecteur de chemin réseau ignore les cibles IP uniquement par défaut.
Redémarrez l’Agent après avoir effectué ces modifications de configuration.
Activez le module system-probe traceroute dans %ProgramData%\Datadog\system-probe.yaml en ajoutant ce qui suit :
traceroute:
enabled: true
Activez les tests dynamiques pour NetFlow dans %ProgramData%\Datadog\datadog.yaml :
network_path:
netflow_monitoring:
enabled: true
collector:
monitor_ip_without_domain: true
monitor_ip_without_domain: true est requis car les tests dynamiques pour NetFlow ciblent les adresses IP de destination observées et le collecteur de chemin réseau ignore les cibles IP uniquement par défaut.
Redémarrez l’Agent après avoir effectué ces modifications de configuration.
Une fois que l’Agent a rapporté les chemins, ouvrez l’interface utilisateur Network Path et filtrez par origin:netflow pour afficher les chemins générés à partir du trafic NetFlow.
Syntaxe de filtre
Configurez des filtres pour inclure ou exclure des domaines et des adresses IP, vous permettant de :
- Réduire la surcharge de surveillance pour les réseaux internes
- Se concentrer sur les modèles de trafic externe
- Exclure les plages d’infrastructure connues qui ne nécessitent pas de surveillance
La même liste network_path.collector.filters s’applique aux tests dynamiques et aux tests dynamiques pour NetFlow. Pour les tests dynamiques pour NetFlow, utilisez les filtres match_ip car les tests dynamiques pour NetFlow ciblent les adresses IP de destination observées.
Pour inclure ou exclure des domaines ou des plages IP spécifiques des tests dynamiques, ajoutez ce qui suit à votre fichier /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
Note :
Les filtres sont appliqués séquentiellement, les filtres ultérieurs ayant priorité sur les précédents.
Par exemple, tous les domaines correspondant à *.datadoghq.com sont ignorés, à l’exception de api.datadoghq.com.
network_path:
collector:
filters:
- match_domain: '*.datadoghq.com'
type: exclude
- match_domain: 'api.datadoghq.com'
type: include
Résolution de l’adresse IP publique source
La résolution de l'adresse IP publique source est disponible dans l'Agent v7.75+.
Network Path résout l’adresse IP publique du host source pour fournir une visualisation précise du chemin pour le trafic à destination d’Internet. L’Agent contacte des services externes de check d’IP via HTTPS pour déterminer l’adresse IP publique du host.
Cette fonctionnalité n’est pas requise pour le fonctionnement de Network Path. Si ces services sont inaccessibles, Network Path continue de fonctionner normalement, mais l’adresse IP publique source n’est pas résolue et les visualisations de chemin n’affichent pas les métadonnées de l’IP source.
Si votre réseau restreint le trafic sortant et que vous souhaitez une résolution de l’adresse IP publique source, ajoutez les URL suivantes à la liste d’autorisation de votre pare-feu :
| URL | Fournisseur |
|---|
https://icanhazip.com | Cloudflare |
https://ipinfo.io/ip | IPinfo |
https://checkip.amazonaws.com | Amazon |
https://api.ipify.org | ipify |
https://whatismyip.akamai.com | Akamai |
L’Agent essaie chaque service dans l’ordre et utilise la première réponse réussie. Toutes les requêtes sont effectuées via HTTPS (port 443).
Dépannage
Utilisez les directives suivantes pour résoudre les problèmes liés à Network Path. Si vous avez besoin d’aide supplémentaire, contactez le support Datadog.
Aucune donnée Network Path dans l’interface utilisateur
Si aucune donnée n’apparaît dans l’interface utilisateur Network Path, il est possible que la fonctionnalité ne soit pas entièrement activée. Network Path nécessite les éléments suivants :
Le module traceroute doit être activé dans votre fichier system-probe.yaml :
traceroute:
enabled: true
Au moins une fonctionnalité Network Path doit être active, telle que :
Aucune donnée de tests dynamiques pour NetFlow dans l’interface utilisateur
Si aucun chemin avec origin:netflow n’apparaît dans l’interface utilisateur Network Path, vérifiez les points suivants :
- L’Agent est en version
7.81+. - NetFlow Monitoring est activé et reçoit des flux.
- Le module traceroute est activé dans
system-probe.yaml. network_path.netflow_monitoring.enabled et network_path.collector.monitor_ip_without_domain sont définis sur true dans datadog.yaml.- Votre configuration
network_path.collector.filters n’exclut pas les adresses IP de destination que vous prévoyez de surveiller.
Les tests dynamiques pour NetFlow ignorent automatiquement les enregistrements NetFlow dont l’adresse IP source est attribuée au host de l’Agent avant que les filtres de destination ne soient évalués. Cela empêche les boucles d’auto-planification et constitue un comportement attendu. Pour les cas de NAT ou d’alias où le trafic provenant de l’Agent apparaît à partir d’une autre adresse IP source, utilisez network_path.collector.source_excludes pour exclure ces adresses IP sources.
Filtrez ensuite l’interface utilisateur Network Path pour origin:netflow.
Erreur : code d’état : 404
Si vous rencontrez une erreur telle que la suivante :
Error: failed to trace path: traceroute request failed: Probe Path <path>, url: <url>, status code: 404
- Ceci indique que le module traceroute n’est pas activé. Assurez-vous que le module traceroute est activé dans votre fichier
system-probe.yaml.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: