Openwrt Monitoring via Grafana. (kind of rough, but works for me )
This project consists of a few applications to help monitor your home router. You will need a decent router (anything from 3yrs ago will work) dual core CPU, with 256mb of RAM and 128mb nand and a home server running docker.
Router:
Install Collectd, Prometheus Plugins and IPTMON
Home Server:
Install Docker and run the Docker-Compose file. (make sure to update the prometheus.yml file with your server IP)
Credit: I started with this dashboard from Matthew Helmke and added some stuff.
Install Collectd on Openwrt router
opkg update
opkg install collectd collectd-mod-contextswitch collectd-mod-cpu collectd-mod-dhcpleases /
collectd-mod-disk collectd-mod-dns collectd-mod-ethstat /
collectd-mod-interface collectd-mod-iptables collectd-mod-iwinfo /
collectd-mod-load collectd-mod-memory collectd-mod-network /
collectd-mod-ping collectd-mod-processes collectd-mod-protocols /
collectd-mod-rrdtool collectd-mod-tcpconns collectd-mod-uptime
Collectd – After installing collectd on the router, you will need to configure the plugins such as ping and firewall via luci
- make sure to configure your output, it has to point to your collectd-exporter.
- Configure CollectD firewall → statistics → collectd. (make sure to configure the firewall like shown below).
Prometheus – Use this guide to install Prometheus on the router (https://grafana.com/blog/2021/02/09/how-i-monitor-my-openwrt-router-with-grafana-cloud-and-prometheus/)
opkg install prometheus prometheus-node-exporter-lua prometheus-node-exporter-lua-nat_traffic \
prometheus-node-exporter-lua-netstat prometheus-node-exporter-lua-openwrt \ prometheus-node-exporter-lua-uci_dhcp_host prometheus-node-exporter-lua-wifi \
prometheus-node-exporter-lua-wifi_stations collectd-mod-dhcpleases
IPTMON.ipk – Use this guide to install iptmon on the router (GitHub - oofnikj/iptmon: simple iptables bandwidth monitor)
NOTE: If you care about SQM/CAKE/ETC, it will probably not play nice with iptmon reporting.
Install IPTMON on OpenWRT
VERSION=0.1.6
wget https://github.com/oofnikj/iptmon/releases/download/v${VERSION}/iptmon_${VERSION}-1_all.ipk -O iptmon_${VERSION}-1_all.ipk
opkg install ./iptmon_${VERSION}-1_all.ipk
Docker-Compose.yml
sudo docker-compose up -d