Upgrading OPNsense from 25.7 to 26.7 on UFS (no ZFS snapshots): ISC DHCP, Zenarmor and a Git config backup

My OPNsense firewall was still on 25.7.11_9, while the firmware page offered 26.7.7. That is two major releases in one go: 26.1 moved ISC DHCP out of the core, and 26.7 switched the base system from FreeBSD 14.3 to 15.1 and OpenSSL from 3.0 to 3.5. To make it more interesting, the box was installed on UFS years ago, so there was no ZFS boot environment or snapshot to roll back to. This post covers what changed, what I cleaned up beforehand, how the upgrade went and what the logs said afterwards.

Read more

Isolating a guest VLAN on OPNsense with a Ruckus AP: no sneaking through to the main network

My Ruckus access point broadcasts a dedicated guest SSID and tags that traffic with a separate VLAN before handing it to OPNsense. The AP side is easy – Ruckus does the tagging reliably. The router side is where things go wrong if the firewall rules are in the wrong order or a step gets skipped. Here is the full setup I use to make sure a guest really cannot reach anything on the internal network.

Read more

Split-Horizon DNS with Technitium and OPNsense: Resolving Internal Hosts Locally (plus Let’s Encrypt via DNS-01)

My home network uses Technitium DNS as the primary DNS server and OPNsense as the router. I own a public domain (in this post I’ll use domain.com as a placeholder), and I wanted truenascale.domain.com to point to my TrueNAS SCALE box on the LAN instead of being resolved somewhere on the internet. On top of that, I wanted a proper TLS certificate for it without exposing the NAS to the outside world.

Read more

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.