Summary

Implements Issue #2112: Receive SNMP traps into Keep as alerts via webhook.

Changes Made

Backend

  • Added webhook_description and webhook_template class attributes for receiving traps via HTTP
  • Added parse_event_raw_body() static method to parse incoming JSON payloads
  • Added _format_alert() static method to convert SNMP trap events to AlertDto
  • Added severity mapping (critical, error, high, warning, medium, low, info)
  • Added proper metadata for auth config fields

Tests

  • Added 40+ comprehensive unit tests
  • Added E2E test infrastructure with docker-compose

Documentation

  • Complete rewrite covering both sending and receiving SNMP traps
  • Added webhook configuration examples
  • Added Zabbix integration example

Demo

The SNMP provider now supports receiving traps via webhook. When configured, users can:

  1. Get a webhook URL from the SNMP provider settings in Keep
  2. Configure their SNMP trap collector (Zabbix, Nagios, SNMPTT) to forward traps to that URL
  3. Traps are automatically ingested as alerts in Keep with proper severity mapping

Example webhook payload:

{
"oid": "1.3.6.1.4.1.12345.1.2.3",
"message": "CPU usage is high",
"source": "server01",
"severity": "critical"
}

This creates a firing alert with CRITICAL severity in Keep.

Video Demo

Link: https://youtu.be/_i0x0GqxG4Y

Since this is a backend-only change (the provider auto-discovers the webhook capability), here’s how it works:

  1. User installs SNMP provider in Keep UI
  2. Provider settings page shows webhook URL
  3. User configures external system to send POST requests to that URL
  4. Alerts appear in Keep with parsed trap data

/claim #2112 Closes #2112

Claim

Total prize pool $200
Total paid $0
Status Pending
Submitted March 15, 2026
Last updated March 15, 2026

Contributors

MA

Matías J. Magni

@info3

100%

Sponsors

KE

Keep (YC W23)

@keephq

$200