SNMP traps are the unsung heroes of network monitoring. Unlike polling-based approaches that ask devices “are you okay?” every few minutes, traps let devices proactively shout “something’s wrong!” the moment it happens. But receiving traps is only half the battle — you need a trap manager to decode, filter, correlate, and alert on them. This guide compares three open-source SNMP trap management solutions.
Why SNMP Trap Management Matters
Network devices generate SNMP traps for critical events: link down, CPU threshold exceeded, fan failure, temperature warnings, BGP session drops, and more. Without proper trap management, these events are lost or buried in log files.
A good SNMP trap management system provides:
- Real-time event detection — Receive and process traps within seconds of occurrence
- Intelligent filtering — Suppress informational traps and escalate critical ones
- Trap translation — Convert cryptic OID numbers into human-readable messages
- Event correlation — Group related traps to reduce alert fatigue
- Historical archive — Maintain a searchable trap history for incident investigation
- Integration hooks — Forward traps to monitoring systems, ticketing platforms, and notification services
For broader network monitoring, see our network topology mapping guide and SNMP collectors comparison. If you need infrastructure-wide monitoring, our Zabbix vs CheckMK guide covers full-stack monitoring platforms.
SNMPTT (SNMP Trap Translator)
SNMPTT is the most widely deployed open-source SNMP trap handler on Linux. It receives traps from snmptrapd, translates them using MIB files into human-readable format, and can forward them to syslog, email, SQL databases, or custom scripts.
Key Features
- MIB-based trap translation (human-readable messages)
- Multiple output handlers (syslog, SQL, email, EXEC, FORWARD)
- Trap severity classification (normal, warning, major, critical)
- Event-based filtering and suppression
- Duplicate trap detection
- Custom event handlers (execute scripts on specific traps)
- Supports SNMPv1, SNMPv2c, and SNMPv3
Installation
| |
Configuration
SNMPTT works as a pass-through from snmptrapd. Configure snmptrapd to forward traps to SNMPTT:
| |
Then configure SNMPTT’s event definitions:
| |
Docker Compose Deployment
| |
SNMPTT is the workhorse of SNMP trap processing. Its strength lies in MIB-based translation and flexible output routing. If you need traps converted to readable messages and forwarded to multiple destinations, SNMPTT is the standard choice.
Net-SNMP snmptrapd
snmptrapd is the reference SNMP trap daemon from the Net-SNMP project. It’s the most basic trap receiver — it receives traps, optionally logs them, and can execute handlers. Unlike SNMPTT, it doesn’t have built-in severity classification or SQL output, but it’s always available where Net-SNMP is installed.
Key Features
- Included with all Net-SNMP installations
- Supports SNMPv1, SNMPv2c, and SNMPv3
- MIB-based trap translation (via
snmptranslate) - Configurable log output (file, syslog)
- Pass-through trap handlers (pipe to external scripts)
- ACL-based access control
- Lightweight — minimal resource usage
Installation
| |
Configuration
| |
Systemd Service
| |
Docker Deployment
| |
snmptrapd is best suited for environments where you need a lightweight trap receiver with custom processing logic. It’s the foundation that SNMPTT builds upon — if you don’t need SNMPTT’s advanced features, snmptrapd alone may be sufficient.
OpenNMS Trapd
OpenNMS Trapd is the SNMP trap receiver component of the OpenNMS network management platform. Unlike standalone tools (SNMPTT, snmptrapd), it’s part of a full-featured NMS with event correlation, notification routing, and a web interface.
Key Features
- Integrated with full OpenNMS NMS platform
- Automatic MIB compilation and trap translation
- Event correlation and deduplication
- Web-based trap browser and search
- Notification escalation (email, SMS, XMPP)
- Trap-to-event mapping with custom logic
- Supports SNMPv1, SNMPv2c, and SNMPv3
- High-availability clustering support
- REST API for trap integration
Installation
| |
Trap Configuration
OpenNMS uses XML-based event definitions:
| |
Docker Compose (Full OpenNMS Stack)
| |
OpenNMS Trapd is the heavyweight champion — it provides the most comprehensive trap management features but requires the full OpenNMS platform. It’s ideal for enterprises that need a complete network management solution with trap handling as one component.
Feature Comparison
| Feature | SNMPTT | snmptrapd | OpenNMS Trapd |
|---|---|---|---|
| Standalone | Yes | Yes | No (requires OpenNMS) |
| MIB Translation | Yes | Yes | Yes (auto-compile) |
| Severity Classification | Yes | No (custom) | Yes |
| SQL Output | Yes (MySQL/PostgreSQL) | No | Yes (PostgreSQL) |
| Web Interface | No | No | Yes |
| Event Correlation | Basic | No | Advanced |
| SNMPv3 Support | Yes | Yes | Yes |
| Duplicate Detection | Yes | No | Yes |
| Notification Routing | Email/EXEC | EXEC only | Email/SMS/XMPP/API |
| HA/Clustering | No | No | Yes |
| Resource Usage | Low | Very Low | High (full NMS) |
| Setup Complexity | Moderate | Simple | Complex |
Choosing the Right Tool
Use SNMPTT when:
- You need MIB-based trap translation with severity classification
- You want to forward traps to multiple destinations (syslog, SQL, email, scripts)
- You have an existing monitoring stack and just need a trap processor
- You need duplicate trap detection without a full NMS platform
Use snmptrapd when:
- You want the simplest possible trap receiver
- You have custom processing logic (scripts) that handle everything
- You’re already running Net-SNMP and don’t want additional dependencies
- Resource constraints are tight (snmptrapd uses minimal memory)
Use OpenNMS Trapd when:
- You need a complete network management platform, not just trap handling
- Event correlation and deduplication are critical
- You want a web interface for browsing and searching trap history
- You need high-availability clustering for enterprise deployments
Security Best Practices
Use SNMPv3 — SNMPv1 and v2c transmit community strings in plaintext. SNMPv3 provides authentication and encryption for trap messages.
Restrict trap sources — Configure your trap receiver to only accept traps from known network device IPs:
1 2 3 4# snmptrapd.conf disableAuthorization no authAddress 10.0.1.0/24 authAddress 10.0.2.0/24Separate trap network — Run SNMP traps on a dedicated management VLAN to prevent interception from untrusted networks.
MIB security — Only load MIBs from trusted sources. Malicious MIB files can contain embedded Perl code that executes during translation.
Rate limiting — Configure trap flood protection to prevent a misconfigured device from overwhelming your trap handler:
1 2 3# iptables rate limit for SNMP traps sudo iptables -A INPUT -p udp --dport 162 -m limit --limit 100/sec -j ACCEPT sudo iptables -A INPUT -p udp --dport 162 -j DROP
FAQ
What is the difference between SNMP traps and SNMP polling?
SNMP polling is when a management system actively queries devices for data (GET/GETNEXT requests) at regular intervals. SNMP traps are unsolicited notifications sent by devices when specific events occur. Polling tells you the current state; traps tell you about state changes. For comprehensive monitoring, use both — polling for metrics and trends, traps for immediate event notification.
Can SNMPTT handle SNMPv3 traps?
Yes. SNMPTT supports SNMPv1, SNMPv2c, and SNMPv3 traps. For SNMPv3, configure the users in /etc/snmp/snmptrapd.conf with authentication and privacy protocols:
| |
How do I convert MIB files to SNMPTT format?
SNMPTT includes the snmpttconvertmib script that converts standard MIB files to SNMPTT event definition format:
| |
Not all MIBs convert perfectly — some require manual editing of the generated event definitions.
Does OpenNMS Trapd work without the full OpenNMS platform?
No. OpenNMS Trapd is tightly integrated with the OpenNMS event processing engine, database, and web UI. If you only need trap handling without the full NMS, use SNMPTT or snmptrapd instead. However, OpenNMS is available as a single package install — you don’t need to configure components separately.
How many traps per second can these tools handle?
snmptrapd can handle 1,000+ traps/sec with minimal CPU usage (it’s essentially a UDP listener with logging). SNMPTT adds Perl-based MIB translation overhead — expect 500-1,000 traps/sec on modern hardware. OpenNMS Trapd performance depends on the PostgreSQL backend — typically 200-500 traps/sec with the full event processing pipeline.
Can I forward SNMP traps to a Slack channel or Teams webhook?
SNMPTT can execute custom scripts via the EXEC handler, making it straightforward to forward traps to webhooks. snmptrapd also supports EXEC handlers. OpenNMS has built-in notification routing that includes webhook destinations. Here’s a simple SNMPTT EXEC handler for Slack:
| |
What happens if the trap receiver goes down?
SNMP traps are sent via UDP (connectionless), so if your trap receiver is down, traps are silently dropped — the sending device does not retry. This is why redundancy matters. For SNMPTT/snmptrapd, run multiple receivers behind a load balancer. OpenNMS supports HA clustering with automatic failover.