Network Device Monitoring relies on the SNMP Integration included in the Datadog Agent package, and supports all three versions of SNMP: SNMPv1, SNMPv2, and SNMPv3. During discovery, the SNMP port (default 161) is polled. A device is considered discovered if there is a response and a matching profile.
The following diagram illustrates the default ports and protocols between the Datadog Agent and the device being monitored. For SNMP metrics, the Datadog Agent polls the devices with Autodiscovery, or based on manual device IP configuration. The Datadog Agent, configured with NDM and deployed on-premises or in the cloud, consolidates all collected device and network data from your network and sends it to Datadog over HTTPS on port 443. This provides unified, full-stack observability of metrics, logs, traces, monitors, and dashboards.
Datadog Network Device Monitoring supports collecting metrics from individual devices, or auto-discovering devices (unique IP addresses) on entire subnets.
Choose your collection strategy based on the number of devices present on your network, and how dynamic your network is (meaning frequency of adding or removing devices):
Regardless of the collection strategy, leverage Datadog’s sysObjectID mapped device profiles to automatically collect relevant metrics from your devices.
Include the IP address and any additional devices metadata (as tags) in the snmp.d/conf.yaml file in the conf.d/ folder at the root of your Agent’s configuration directory. See the sample snmp.d/conf.yaml for all available configuration options.
For SNMPv2, configure an instance specifying the IP address and community string of the device:
init_config:loader:core # use core check implementation of SNMP integration. recommendeduse_device_id_as_hostname:true# recommendedinstances:- ip_address:'1.2.3.4'community_string:'sample-string'# enclose with single quotetags:- 'key1:val1'- 'key2:val2'
For SNMPv3, configure an instance specifying the IP address and SNMPv3 credentials of the device (as appropriate), for example: user, authProtocol, authKey, privProtocol, and privKey:
init_config:loader:core # use core check implementation of SNMP integration. recommendeduse_device_id_as_hostname:true# recommendedinstances:- ip_address:'1.2.3.4'snmp_version:3# optional, if omitted which version of SNMP you are using is auto-detecteduser:'user'authProtocol: 'SHA256' # choices:MD5, SHA, SHA224, SHA256, SHA384, SHA512authKey:'fakeKey'# enclose with single quoteprivProtocol: 'AES256' # choices:DES, AES, AES192, AES192C, AES256, AES256CprivKey:'fakePrivKey'# enclose with single quotetags:- 'key1:val1'- 'key2:val2'
An alternative to specifying individual devices is to use Autodiscovery to automatically discover all the devices on your network.
Autodiscovery polls each IP on the configured subnet, and checks for a response from the device. Then, the Datadog Agent looks up the sysObjectID of the discovered device and maps it to one of Datadog’s supported device profiles. The profiles contain lists of predefined metrics to collect for various types of devices.
To use Autodiscovery with Network Device Monitoring:
Install or upgrade the Datadog Agent to v7.27+. For platform specific instructions, see the Datadog Agent documentation.
Edit the datadog.yaml Agent configuration file to include all the subnets for Datadog to scan. The following sample config provides required parameters, default values, and examples for Autodiscovery.
network_devices:autodiscovery:workers:100# number of workers used to discover devices concurrentlydiscovery_interval:3600# interval between each autodiscovery in secondsloader:core # use core check implementation of SNMP integration. recommendeduse_device_id_as_hostname:true# recommendedconfigs:- network_address:10.10.0.0/24 # CIDR subnetloader:coresnmp_version:2port:161community_string:'***'# enclose with single quotetags:- "key1:val1"- "key2:val2"- network_address:10.20.0.0/24loader:coresnmp_version:2port:161community_string:'***'tags:- "key1:val1"- "key2:val2"
network_devices:autodiscovery:workers:100# number of workers used to discover devices concurrentlydiscovery_interval:3600# interval between each autodiscovery in secondsloader:core # use core check implementation of SNMP integration. recommendeduse_device_id_as_hostname:true# recommendedconfigs:- network_address:10.10.0.0/24 # CIDR subnetsnmp_version:3user:'user'authProtocol: 'SHA256' # choices:MD5, SHA, SHA224, SHA256, SHA384, SHA512authKey:'fakeKey'# enclose with single quoteprivProtocol: 'AES256' # choices:DES, AES, AES192, AES192C, AES256, AES256CprivKey:'fakePrivKey'# enclose with single quotetags:- 'key1:val1'- 'key2:val2'- network_address:10.20.0.0/24snmp_version:3user:'user'authProtocol:'SHA256'authKey:'fakeKey'privProtocol:'AES256'privKey:'fakePrivKey'tags:- 'key1:val1'- 'key2:val2'
Note: The Datadog Agent automatically configures the SNMP check with each of the IPs that are discovered. A discovered device is an IP that responds successfully when being polled using SNMP.
Note: Make sure you are on Agent 7.54+ for this syntax. For previous versions, see the previous config_template.yaml