<!--startmeta
custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/go/plugin/go.d/collector/snmp/npm-catalog/integrations/snmp_trap_node_attribution.md"
meta_yaml: "https://github.com/netdata/netdata/edit/master/src/go/plugin/go.d/collector/snmp/npm-catalog/metadata.yaml"
sidebar_label: "SNMP Trap Node Attribution"
learn_status: "Published"
learn_rel_path: "Network Performance Monitoring/SNMP Traps/Integrations"
keywords: ['vnode', 'identity', 'attribution', 'enrichment', 'traps', 'npm']
message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE NPM CATALOG metadata.yaml FILE"
endmeta-->

<!-- markdownlint-disable-file -->

# SNMP Trap Node Attribution


<img src="https://netdata.cloud/img/SNMP.png" width="150"/>


Plugin: go.d.plugin
Module: snmp_traps

<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />

## Overview

Attribute each trap to the right Netdata node. When enrichment resolves the trap source to an unambiguous vnode, the trap and any profile metrics attach to that node; otherwise a bounded source label is used.

Netdata matches the trap source identity against known vnodes and host scopes, falling back to a bounded source label when attribution is ambiguous.

This integration is supported on all platforms.

This integration supports multiple instances configured side-by-side.


### Default Behavior

#### Auto-Detection

Always on; attribution uses the configured vnodes and host scopes.

#### Limits

The default configuration for this integration does not impose any limits.

#### Performance Impact

The default configuration for this integration is not expected to impose a significant performance impact on the system.

## Setup


You can configure the **snmp_traps** collector in two ways:

| Method                | Best for                                                                                 | How to                                                                                                                                 |
|-----------------------|------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|
| [**UI**](#via-ui)     | Fast setup without editing files                                                         | Go to **Nodes → Configure this node → Collectors → Jobs**, search for **snmp_traps**, then click **+** to add a job. |
| [**File**](#via-file) | If you prefer configuring via file, or need to automate deployments (e.g., with Ansible) | Edit `go.d/snmp_traps.conf` and add a job.                                                                        |

:::important

UI configuration requires paid Netdata Cloud plan.

:::


### Prerequisites

#### Devices configured to send traps

The devices must be configured to send SNMP traps or INFORMs to the Netdata Agent acting as the site's trap receiver, and the trap port must be reachable from them.

#### A usable Netdata log directory

Jobs that write direct journals store them under `${NETDATA_LOG_DIR}/traps/` — `/var/log/netdata` on package installs, `/opt/netdata/var/log/netdata` on static ones. Job creation fails if that directory is missing or unwritable. A job that only exports over OTLP can set `journal.enabled: false` instead.

#### Permission to bind the trap port

The default listener is UDP/162, a privileged port: binding it needs `CAP_NET_BIND_SERVICE` or root on Linux. Netdata packages grant this capability, so standard installations just work; hardened or custom deployments must grant it, or move the listener to an unprivileged port.


### Configuration

#### Options

Configure the trap listener: the address and port it binds, the SNMP versions and credentials it accepts, and the enrichment options — see the [SNMP Trap Listener](https://github.com/netdata/netdata/blob/master/src/go/plugin/go.d/collector/snmp_traps/integrations/snmp_trap_listener.md) page for the full option reference. Trap decoding itself needs no configuration: the stock trap profiles ship with Netdata.


#### via UI

Configure the **snmp_traps** collector from the Netdata web interface:

1. Go to **Nodes**.
2. Select the node **where you want the snmp_traps data-collection job to run** and click the :gear: (**Configure this node**). That node will run the data collection.
3. The **Collectors → Jobs** view opens by default.
4. In the Search box, type _snmp_traps_ (or scroll the list) to locate the **snmp_traps** collector.
5. Click the **+** next to the **snmp_traps** collector to add a new job.
6. Fill in the job fields, then click **Test** to verify the configuration and **Submit** to save.
    - **Test** runs the job with the provided settings and shows whether data can be collected.
    - If it fails, an error message appears with details (for example, connection refused, timeout, or command execution errors), so you can adjust and retest.


#### via File

The configuration file name for this integration is `go.d/snmp_traps.conf`.

The file format is YAML. Generally, the structure is:

```yaml
update_every: 1
autodetection_retry: 0
jobs:
  - name: some_name1
  - name: some_name2
```
You can edit the configuration file using the [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#edit-configuration-files) script from the
Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#locate-your-config-directory).

```bash
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/snmp_traps.conf
```

##### Examples

###### Basic (SNMPv1/v2c)

A single listener on the standard trap port, accepting any SNMPv1/v2c community. `listen` is required: without an endpoint the job binds nothing. Restrict the allowlist for production.

```yaml
jobs:
  - name: local
    listen:
      endpoints:
        - protocol: udp
          address: 0.0.0.0
          port: 162
    versions:
      - v1
      - v2c

```


## Alerts

There are no alerts configured by default for this integration.



## Metrics
