Network Monitoring with Prometheus & SNMP Exporter in the Homelab

Why SNMP Exporter instead of LibreNMS?

Anyone who’s done network monitoring before knows the usual suspects: Nagios, Zabbix, LibreNMS. These tools come with everything — SNMP discovery, device inventory, maps, alerting — but also their own database, their own visualization layer, and their own operational overhead.

In a homelab that already runs Prometheus, Grafana, and Loki, there’s little reason to add LibreNMS on top. The Prometheus SNMP Exporter fits seamlessly into an existing stack: it’s a single container that accepts SNMP queries and returns them as Prometheus metrics.

In this post I’ll walk through how I’m monitoring OPNsense, a Ruckus R720 AP, managed switches, Proxmox nodes, and a Brother printer with it.


Preparing devices: enabling SNMP

OPNsense

Go to Services → SNMP: enable the service, set a community string (e.g. homelab), bind to the LAN interface.

Ruckus R720

In the web UI under System → SNMP: enable SNMPv2c, enter the community string.

Proxmox nodes

On each node in the shell:

Edit /etc/snmp/snmpd.conf:

Managed switch & Brother printer

Varies by vendor — enable SNMP in the management UI and set the community string. On the Brother DCP-L8410CDW the option is under Network → Protocol → SNMP.


Docker Compose (Dockge)

Place snmp.yml in the same directory as the compose file.


snmp.yml — configuration

The official snmp.yml from the repository ships with ready-made modules for hundreds of device types and is the recommended starting point:

For a leaner custom config (compatible with snmp_exporter v0.26+):

Note on the Brother page counter: OIDs under 1.3.6.1.4.1.2435 are model-specific. The best way to find the right one for your printer is to run snmpwalk -v2c -c homelab <IP> 1.3.6.1.4.1.2435 and look for a counter that increments with each print job. The standard Printer-MIB (1.3.6.1.2.1.43) is model-independent and reliably covers toner levels.


Prometheus scrape config


Testing it

Once the container is running, query a device directly to verify everything works:

You should see Prometheus-formatted metrics. An empty response usually means a firewall issue — UDP 161 needs to be open from the exporter host to the target devices.


Grafana dashboards

Ready-made dashboards on grafana.com that work with these metrics out of the box:

  • 11169 — SNMP interface monitoring (generic)
  • 21491 — OPNsense
  • 10347 — Proxmox (SNMP)

For the printer, a simple hand-built dashboard works well — toner colors come through as labels directly from the SNMP walk.


Wrap-up

The SNMP Exporter is the leanest way to bring network devices into an existing Prometheus/Grafana stack. No extra database backend, no separate web UI — just one exporter container and a few lines of config. If you already have the stack running, it’s a much cleaner solution than standing up LibreNMS or Zabbix alongside it.

Leave a comment