Self-hosted UniFi monitoring system
Over a year in the works, I just wrapped up adding full time-series network monitoring to Network Optimizer. Here are the main features:
- Ping / RTT measurement across multiple different kinds of targets at different cadences
- Real-time 3D view of both LAN and WAN traffic across all devices on your UniFi Network
- CPU / mem / temperature (gateway only so far) stats collected and plotted
- Auto-discovery of your ISP's access and aggregation infrastructure, and their upstream transit network(s) for suitable monitoring targets
- Built in monitoring targets for common CDN/internet service providers
- SFP/ONT optical power monitoring with GPON vs XGS-PON auto-detection (covers most common SFP stick modules from FiberMall, Zyxel, Nokia, Leox, Calix, ODI, SourcePhotonics, etc.)
Some caveats:
- Wi-Fi device transfer rates are laggy since we can't really pull per-wireless-device data w/ SNMP, it relies on UniFi Network endpoints that really only refresh data every 30 sec
- Up to 250 MB per day on big home networks required in InfluxDB storage, I wouldn't run the InfluxDB server on a R-Pi or anything embedded
- Don't leave up the 3D live view on your phone, it will drain your battery pretty well
- Does generate some extra network traffic about 500 Kbps with 10 UniFi Network devices and 25 ping targets, and a portion of that over WAN
- I still have a bunch of work left to do to bring the diagnostic capabilities of all of this data full circle, but you can easily build a Grafana dashboard to dive into the InfluxDB data however you'd like
- Doesn't use UnPoller, this is based on my own .net based SNMP polling library I've been working on and have had in production for 13 months now over several iterations
- I've tested the impact of the SNMP polling for over a year, and my network hasn't skipped a beat now that I have it fully optimized. The setup process walks you through enabling SNMP and encourages you to use SNMP v1/2c and NOT SNMP v3. I highly advise against using SNMP v3 (crypto overhead on both ends for every polling event) and instead locking down your management VLAN and using an obfuscated community string. The setup wizard walks you through these things and SNMP of course is just read-only stats of your network fabric devices, so no worries.
- InfluxDB chosen for my own preference, simplicity, flexibility, and its nice query language. Prometheus support could be added, but InfluxDB is pretty lightweight if you want to run both.
Available here: https://github.com/Ozark-Connect/NetworkOptimizer Deployment guide: https://github.com/Ozark-Connect/NetworkOptimizer/blob/main/docker/DEPLOYMENT.md
Make sure to take in all of the other Network Optimizer features while you're in there... there's a lot.
Please feel free to DM me if you need anything!