Hi all,
I was looking for a way to monitor my router's NVMe drive statistics, but didn't find anything I liked, so I created a little shell script and a configd action to collect SMART data and expose it to Prometheus via the Node Exporter plugin and textfile collector. I also created a nice Grafana dashboard that displays all these metrics, image below. I liked this approach as it meant I just needed two plugins (I already had installed), a small script, and a configd action to schedule it with cron. Currently, the script only supports NVMe drives as it uses the nvme_smart_health_information_log object of Smartctl, but I plan to add SATA drive support down the line. Please let me know if anyone has a better way of monitoring these stats that I didn't find while researching this, thanks!
More info in the repo here: https://github.com/jwidess/OPNsense-node-exporter-smartctl-collect (https://github.com/jwidess/OPNsense-node-exporter-smartctl-collect)
(https://raw.githubusercontent.com/jwidess/OPNsense-node-exporter-smartctl-collect/refs/heads/main/grafana_dashboard.png)
Looks great, looking forward to the Smartctl version.
Thanks for sharing
Quote from: FraLem on January 30, 2026, 08:13:22 AMLooks great, looking forward to the Smartctl version.
Thanks for sharing
Thanks, FraLem, for the kind words! However, I'm not sure what you mean by "
looking forward to the Smartctl version." as the script uses smartctl to collect its metrics. If you meant looking forward to the SATA version, I'd appreciate it if you, or anyone, could provide a few sample outputs of `smartctl -j -a` on a SATA drive so I can make the required changes, thanks! I've added a file for logging these to the repo here: smartctl-outputs.md (https://github.com/jwidess/OPNsense-node-exporter-smartctl-collect/blob/main/smartctl-outputs.md)