Skip to main content

Configuration

SNMP devices are configured in go.d/snmp.conf. Each device is one job. This page covers the options you actually set — credentials, security, multiple devices, and the polling knobs. For the complete, generated option reference and more examples, see the SNMP collector page; for profiles, see SNMP Profile Format.

Edit the file with:

cd /etc/netdata # or your Netdata config directory
sudo ./edit-config go.d/snmp.conf

The smallest working job​

For an SNMPv2c device, a hostname and a community string are enough — Netdata auto-detects the model and applies the matching profiles:

jobs:
- name: core-switch-1
hostname: 10.0.0.1
community: public

name is how the device appears in Netdata, so use something recognizable. Repeat the block per device.

SNMPv3​

SNMPv3 replaces the community string with a user and security level. Set the level to match how the device is provisioned:

jobs:
- name: edge-firewall-1
hostname: 10.0.2.1
options:
version: 3
user:
name: netdata-monitor
level: authPriv # noAuthNoPriv | authNoPriv | authPriv
auth_proto: sha256 # md5 | sha | sha224 | sha256 | sha384 | sha512
auth_key: "[AUTH_PASSPHRASE]"
priv_proto: aes256 # des | aes | aes192 | aes256 | aes192c | aes256c
priv_key: "[PRIV_PASSPHRASE]"
# context_name: "" # only for multi-context agents

Never commit real passphrases; treat auth_key/priv_key as secrets. If a device uses authNoPriv, omit the priv_* fields; for noAuthNoPriv, omit all of them.

Multiple devices​

Each device is its own job, and you can set different options per device — for example, a longer interval for heavy core routers than for access switches:

jobs:
- name: access-sw-1
hostname: 10.0.10.11
community: public
# default update_every: 10s is fine for simple switches

- name: core-router-1
hostname: 10.0.0.254
community: public
update_every: 30 # poll heavy devices less often
options:
max_repetitions: 10 # smaller bulk walks for a device that struggles

Discover devices automatically​

Instead of listing devices one by one, point Netdata at your network ranges and let it find them. Edit go.d/sd/snmp.conf, set disabled: no, and give it the credentials to try and the subnets to scan:

disabled: no
discoverer:
snmp:
credentials:
- name: ro-v2c
version: "2"
community: public
networks:
- subnet: "10.0.10.0/24"
credential: ro-v2c # which credential above to try on this range

Netdata scans each subnet, identifies the SNMP devices, and creates a polling job for each one automatically — recognizing the model and starting collection with no further configuration. It rescans on an interval to pick up new devices. Each subnet is scanned up to /23 (512 IPs); add more subnet entries for larger networks. This is the fastest way to onboard a whole network: set the credentials and ranges once, and every device on them comes up monitored.

The defaults suit most networks. For large or sensitive ones, tune the scan under discoverer.snmp:

OptionDefaultWhat it does
rescan_interval30mHow often to rescan the networks for new devices. A negative value scans once and stops.
device_cache_ttl12hHow long a discovered device is trusted before it is re-probed.
parallel_scans_per_network32How many IPs are probed at once within each subnet. Lower it to be gentler on the network.
timeout1sHow long to wait for a probe reply before moving on.

The options that matter​

OptionDefaultWhat it does
hostname(required)Device IP or DNS name.
communitypublicSNMPv1/v2c community string.
options.version2cSNMP version: 1, 2c, or 3.
options.port161SNMP UDP port.
options.timeout5Seconds to wait for a response.
options.retries1Retries before a request is counted failed.
options.max_repetitions25Rows per GETBULK. Lower it for devices that choke on large responses.
options.max_request_size20OIDs per request.
update_every10Polling interval (seconds). Raise it for heavy or slow devices.
manual_profiles(none)Profiles to apply to a device that reports no sysObjectID (rare). Devices that report one are matched automatically — normally leave this empty.
create_vnodetrueExpose the device as its own virtual node in Netdata.
vnode_device_down_threshold3Consecutive failed polls before the device is marked down.

ICMP alongside SNMP​

By default Netdata also pings each device, giving you reachability and latency next to the SNMP metrics. SNMP and ping run concurrently — ping never delays polling.

jobs:
- name: core-router-1
hostname: 10.0.0.254
community: public
ping:
enabled: true # default
privileged: true # default; uses raw ICMP
packets: 3
interval: 100ms
# ping_only: true # skip SNMP, collect ICMP only (e.g. a non-SNMP device)

Profiles: auto-detect first, force only when needed​

You normally configure nothing for profiles — the collector reads sysObjectID/sysDescr and applies every stock profile whose selector matches the device. To add coverage for a model or collect extra OIDs, drop a custom profile with a matching selector into /etc/netdata/go.d/snmp.profiles/; it loads alongside the stock profiles and applies automatically to every device it matches. A file there with the same name as a stock profile overrides that stock profile — use this to tighten a selector or change what a model collects. The format and the extends composition model are documented in SNMP Profile Format. manual_profiles is only for the rare device that reports no sysObjectID: with nothing to auto-match on, you name the profiles to apply — otherwise leave it empty.

What's next​

  • Sizing and Scaling — how update_every and max_repetitions set a hub's capacity, and when to add hubs.
  • Validation — confirm the device matched a profile and is polling cleanly.
  • Troubleshooting — timeouts, missing metrics, and SNMPv3 auth failures.

Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.