SNMP integration
Supported Versions | Type | Authentication Type |
|---|---|---|
SNMP v1, v2c, and v3 | Agent | Org Bearer Token (agent) and user API key (configuration) |
BigPanda receives SNMP traps through the On-Prem Event Collector, an agent that runs on your network and forwards each trap to the BigPanda SNMP service. The service decodes the trap against the MIBs you upload, matches it to a trap configuration, and creates an alert on your SNMP integration.
Beta integration
This integration is currently in beta release status.
Beta integrations are still being tested. Core connectivity is stable, but the integration may receive updates based on user feedback.
Replaces the BigPanda Daemon (SNMP)
This integration replaces the BigPanda Daemon (SNMP) and the legacy BigPanda Agent. From version 1.0.1, the On-Prem Event Collector installs alongside the legacy bigpanda-agent package, so you can remove the legacy agent when you're ready.
Key features
Single agent: The On-Prem Event Collector, a single binary, replaces the BigPanda Agent, the SNMP daemon, and the SNMP tools packages.
SNMP v3 stays local: SNMP v3 authentication and privacy end at the agent. Credentials never leave your network.
Cloud MIB compiling: Upload vendor MIB files to BigPanda instead of compiling them on the agent host.
Drafted trap configurations: Generate a configuration for every notification a compiled MIB declares, then review and enable them.
Per-device routing: Route traps from one agent to several SNMP integrations by source IP, trap OID, or enterprise.
Data model
A trap configuration turns each trap into one BigPanda alert. Every field the configuration produces becomes an alert tag, except status.
Source | Tags |
|---|---|
Varbinds | Every varbind declared in the configuration, including varbinds no other setting uses. |
SNMP system fields |
|
|
|
Trap source | The MIB name, trap name, and timestamp. |
| Fields built from |
| Removes fields, so they don't become tags. |
Empty values: Null or missing values are left out. They never appear as the text
null.primaryandsecondary: Name the fields that identify the alert. The named fields also appear as tags. If theprimaryfield is empty or missing, BigPanda quarantines the trap, because an empty key would merge every trap into one incident. A missingsecondaryfield doesn't block the alert.
The alert status must be ok, warning, critical, or unknown.
Configuration | Alert status |
|---|---|
| That value. |
| The |
The trap is configured as a resolution ( |
|
No |
|
A value that isn't one of the four, or has no | BigPanda quarantines the trap. |
Before you start
Gather these items before you install the integration.
Item | Where to find it |
|---|---|
The vendor's MIB file | The device vendor. A |
The integration app key | The integration page in BigPanda, after you create the integration. |
Your org token | BigPanda org settings. |
A user API key | BigPanda API key settings. |
A Linux host on the same network as your devices | RPM-based or Debian-based. Debian 12 and 13 need On-Prem Event Collector 1.0.1 or later. |
The SNMP service host depends on your BigPanda region.
Region | Host |
|---|---|
US | |
EU | Not available yet. |
Use the API host
The SNMP service isn't available on integrations.bigpanda.io. Requests to that host return a Page Not Found error.
Install the integration
Setup has three parts: install and configure the On-Prem Event Collector, teach BigPanda your traps, and send a test trap.
Create the integration
A dedicated SNMP integration isn't available yet. Use an Open Integration Manager (OIM) integration to get an app key.
In BigPanda, create an Open Integration Manager integration.
Copy the app key from the integration page.
OIM settings such as tag mapping and status mapping don't apply to SNMP alerts yet.
Install the On-Prem Event Collector
If the legacy BigPanda Agent is installed on the host and you no longer need it, remove it. From version 1.0.1, both can run on the same host.
On Debian-based hosts:
sudo apt remove bigpanda-agent
On RPM-based hosts:
sudo yum remove bigpanda-agent
Run the install script.
curl -fsSL https://bigpandaio.jfrog.io/artifactory/int-archive/bigpanda-forager/install.sh | sudo sh
The script also handles later upgrades and downgrades. On RPM-based hosts, you can install a pinned version with your package manager instead, for example
sudo yum install bigpanda-forager-1.0.2-1.Confirm the installed version.
bigpanda-forager --version
The output shows the version and a commit hash, for example
bigpanda-forager 1.0.0 (cba6a8e).
Configure the On-Prem Event Collector
The On-Prem Event Collector reads two files:
/etc/bigpanda/forager/forager.yaml: The agent configuration, including the SNMP listener and the connection to BigPanda./etc/bigpanda/forager/rules.yaml: Routing rules and operations, including which integration receives each trap.
Open
/etc/bigpanda/forager/forager.yamland add ansnmpsection.snmp: listen: 0.0.0.0:162 communities: ["<community_string>"] cloud_url: https://api.bigpanda.io cloud_token: <org_token> v3_users: - username: <v3_username> auth_protocol: SHA auth_passphrase: <auth_passphrase> priv_protocol: AES priv_passphrase: <priv_passphrase>cloud_url: The SNMP service host for your region.cloud_token: Your org token. The collector sends it as a Bearer token.v3_users: Needed only for SNMP v3 devices.
In the same file, point the collector at the rules file with a top-level
rules_filekey.rules_file: /etc/bigpanda/forager/rules.yaml
Open
/etc/bigpanda/forager/rules.yamland add ansnmp_rulesentry with the integration app key.snmp_rules: - app_key: <app_key> priority: 10A rule with no
matchblock applies to every trap.Restart the On-Prem Event Collector.
sudo systemctl restart bigpanda-forager
Keep every key under its section
YAML relies on indentation. If forager.yaml already holds an HTTP listener, indent listen, communities, and the other SNMP keys under snmp:. Otherwise the collector fails to start with mapping key "listen" already defined.
The app key rule is required
The collector doesn't add an app key to a trap unless a rule in rules.yaml matches it. A trap with no app key can't match a trap configuration scoped to your integration, so it never becomes an alert.
Route traps to several integrations
One On-Prem Event Collector can feed several SNMP integrations. Rules run in priority order, lowest number first, and the first match wins. Each match condition is a regular expression on a trap field such as source_ip, trap_oid, or enterprise.
snmp_rules:
- app_key: <integration_a_app_key>
priority: 10
match:
- all:
source_ip: '^10\.20\.3\.'
- app_key: <integration_b_app_key>
priority: 99The last rule has no match block, so it catches every trap the first rule doesn't. The collector applies the app key when it sends a trap, so traps already buffered on the host pick up a rule change after a restart.
Upload your MIB
The configuration API authenticates with your user API key and reads your org from the key.
Upload the MIB file as raw bytes.
curl -X POST "https://api.bigpanda.io/v1/mibs" \ -H "Authorization: Bearer <user_api_key>" \ -H 'Content-Type: application/octet-stream' \ -H 'X-Filename: <mib_file_name>' \ --data-binary @<mib_file_name>
The response returns
202and a job ID.Poll the job until
stateissucceededorpartial.curl -s "https://api.bigpanda.io/v1/mibs/jobs/<job_id>" \ -H "Authorization: Bearer <user_api_key>"
If
missingModuleslists any modules, upload those MIB files the same way.Confirm the module compiled.
curl -s "https://api.bigpanda.io/v1/mibs" \ -H "Authorization: Bearer <user_api_key>"
Find your module by
originalFilenameand check thatcompileStateiscompiled.
The module count can read low
Standard modules such as SNMPv2-SMI, SNMPv2-TC, and SNMPv2-CONF are built in. When a zip includes them, modulesDone counts only the vendor modules, so a successful job can show modulesDone: 1 against modulesTotal: 4. Use GET /v1/mibs to confirm what compiled.
Create trap configurations
A trap configuration sets what a trap becomes in BigPanda. Draft them from the compiled MIB, then review and enable the ones you need.
Draft configurations for every notification in the module. Send
"persist": falsefirst to preview the drafts without saving them.curl -X POST "https://api.bigpanda.io/v1/trap-configs/scaffold" \ -H "Authorization: Bearer <user_api_key>" \ -H 'Content-Type: application/json' \ -d '{"mib": "<module_name>"}'Review each draft. Drafts marked
needsReviewcontain inferred values.Set
app_keyto your integration's app key on each configuration to keep.Enable each configuration to keep.
curl -X PATCH "https://api.bigpanda.io/v1/trap-configs/<config_id>" \ -H "Authorization: Bearer <user_api_key>" \ -H 'Content-Type: application/json' \ -d '{"enabled": true}'BigPanda validates the whole configuration before it saves the change, so a draft with an invalid spec can't be enabled.
Enable the drafts you keep
Drafts are saved with enabled: false. A trap whose configuration is disabled is dropped without an error. Enable the drafts you need, and leave the rest disabled until you review them.
Send a test trap
Point one device at the collector host on port 162, and trigger a configured trap.
Open the integration in BigPanda and confirm the alert appears.
To test a trap configuration without a device, post a trap straight to the SNMP service with your org token. The body is a JSON array, even for one trap.
curl -X POST "https://api.bigpanda.io/v1/snmp/traps" \
-H "Authorization: Bearer <org_token>" \
-H 'Content-Type: application/json' \
-d '[
{
"agent_id": "my-test",
"sequence": 1,
"timestamp": "2026-10-07T12:00:00Z",
"source_ip": "192.0.2.10",
"snmp_version": "v2c",
"pdu_type": "trap",
"trap_oid": "<trap_oid>",
"app_key": "<app_key>",
"varbinds": [
{ "oid": "<varbind_oid>", "type": "OctetString", "value": "<value>" }
]
}
]'Required fields:
agent_id,sequence,timestamp(RFC 3339),source_ip,snmp_version(v1,v2c, orv3),pdu_type(traporinform), andtrap_oid. Unknown fields are rejected.sequence: Increase it on each test. BigPanda deduplicates traps with the sameagent_id,stream, andsequence.
A 202 response doesn't mean the trap is valid
BigPanda accepts any JSON array and quarantines traps it can't process. Confirm the alert in BigPanda.
Validate the integration
Check these on the collector host if no alert appears:
Service log: Run
journalctl -u bigpanda-foragerand look for errors.Health endpoint: Run
curl http://localhost:9090/health. The collector serves/healthand/metricson port 9090 by default. To change the port, setobservability_listeninforager.yaml.Forward metrics: Read
forager_snmp_forward_totalfrom/metrics. A risingsuccesscount means BigPanda accepted the traps. A risingdeadlettered_4xxcount usually means thecloud_urlhost is wrong. Other outcomes arecredential_rejected,retryable_5xx,rate_limited, andtransport.
An accepted trap isn't always an alert
BigPanda accepts traps it can't process so that the collector doesn't discard a whole batch. A success count with no alert usually means the trap didn't match an enabled configuration. Check the snmp_rules app key first, then the configuration's trap OID, app key, and enabled value.
Troubleshoot the integration
Symptom | Cause | Fix |
|---|---|---|
The On-Prem Event Collector fails to start with | SNMP keys aren't indented under | Indent every SNMP key under |
Every forward is dead-lettered with status 404 |
| Set |
Traps forward successfully but no alert appears | No | Add an |
Traps forward successfully but no alert appears | The trap configuration is disabled or scoped to another app key | Enable the configuration and confirm its |
A MIB upload job fails with no detail | Compile diagnostics aren't exposed yet | Contact BigPanda support with the job ID. |
Repository install fails on Debian 12 or 13 | Version 1.0.0 has no package index for these releases | Install version 1.0.1 or later. |
Install fails with | Version 1.0.0 conflicts with the legacy BigPanda Agent package | Install version 1.0.1 or later, or remove |
Known limitations
Traps that match no configuration are held by BigPanda but aren't visible to you yet, and they can't be replayed.
Traps whose configuration is disabled are dropped and leave no record.
SNMP alerts don't pass through Open Integration Manager yet, so OIM tag mapping, status mapping, and filtering don't apply.
The On-Prem Event Collector doesn't send a heartbeat to BigPanda. Use its health endpoint and logs to confirm the agent is running.
The collector rejects traps with a community string that isn't in
communities. There's no wildcard.MIB compile diagnostics aren't returned by the API yet.
Delete the integration
Deleting the integration requires that you stop the On-Prem Event Collector from sending traps to it and delete it in BigPanda. Stop sending traps first, so that BigPanda doesn't reject traps after the app key no longer exists.
Caution during replacement
When you replace an existing integration with a new tool or system, configure the new integration first so that no data is lost.
Deactivate the integration
To stop receiving alerts without deleting the integration, deactivate it.
In BigPanda, go to the Integrations tab and select the integration from the list.
At the top of the integration details, click the Active/Inactive toggle next to the integration name.
Inactive integrations are marked with a gray bar in the integrations list.
Stop sending traps to BigPanda
On the collector host, remove the
snmp_rulesentry with the integration's app key from/etc/bigpanda/forager/rules.yaml.Restart the On-Prem Event Collector.
sudo systemctl restart bigpanda-forager
Manually resolve open alerts
Manually resolve any open alerts from the integration to remove the related incidents from your incident feed. These incidents don't resolve automatically without an ok status from the integration.
Delete the integration in BigPanda
In BigPanda, go to the Integrations tab and select the integration from the list.
In the integration details, click the trash icon, then confirm that you want to delete the integration. The integration is removed immediately.
Automatic alert resolution for deleted integrations
All active alerts from the integration are resolved after deletion.
Data removal
This procedure doesn't remove any data from your devices or the collector host.