自建 UniFi 内网监控面板,家庭网络动态尽在掌握
内容提要
本文介绍了使用InfluxDB、Grafana和Unifi Poller搭建Unifi设备监控系统的步骤和效果,实时监测设备状态和性能,并通过可视化面板展示数据。通过监控系统,可以优化家庭网络环境,了解设备温度、Wi-Fi信号强度等信息。
延伸解读
为什么需要自建监控:官方控制台的局限
Unifi 官方 Web 控制台和 App 虽然提供设备和客户端的实时数据,但无法回溯历史。文章指出,若想研究某段时间的设备负载、稳定性或客户端离线时间,官方界面无从得知。自建监控系统通过时序数据库存储长期数据,弥补了这一缺口,适合需要分析历史趋势的用户。
技术选型:InfluxDB 与 Prometheus 的取舍
文章选择 InfluxDB 而非 Prometheus,主要因为 Unifi Poller 官网建议入门用户使用 InfluxDB,且 Prometheus 部署涉及更广内容。需注意版本限制:InfluxDB 需 1.8.x,2.x 无法使用;Grafana 需 7.x 或更高。选型时需严格遵循兼容性要求,避免部署失败。
部署中的实际坑点与规避建议
作者在部署时发现官方 Docker Compose 模板存在两个问题:一是多余部署 Chronograf 容器增加开销;二是 InfluxDB 容器误用 2.x 环境变量导致启动失败。此外,国内拉取 Docker Compose 二进制文件可能极慢,建议配置镜像加速器或自建本地镜像仓库(如 Harbor)以提高效率。
监控数据的实际应用:温度与 Wi-Fi 信号
通过 Grafana 面板可观察交换机温度变化,作者对南方朋友家的观察显示入冬后温度明显下降,且高温时设备仍稳定。客户端 Wi-Fi 信号强度面板则能帮助识别长期信号较弱的设备,结合 dB、EIRP 等概念,用户可据此调整 AP 位置或密度,优化无线覆盖。
Q&A
如何搭建 UniFi 设备的历史监控系统?
使用 InfluxDB、Grafana 和 Unifi Poller 三个组件。Unifi Poller 定期从 UniFi 控制器收集数据并写入 InfluxDB,Grafana 则从 InfluxDB 读取数据并生成可视化面板。部署时需准备 Docker 和 Docker Compose 环境,并按照官方建议使用 InfluxDB 1.8.x 和 Grafana 7.4.0+。
Unifi Poller 是什么?它支持哪些数据输出?
Unifi Poller 是一个开源的数据收集器,用于收集 UniFi 控制器的数据并导出到 InfluxDB 或 Prometheus。它基于 Go 语言开发,可运行在 Windows、macOS、FreeBSD、Linux 或 Docker 下。在 InfluxDB 模式下每 30 秒轮询一次控制器;在 Prometheus 模式下开放 Web 端口供拉取。
为什么监控系统要使用时序数据库?
时序数据库专门优化存储时间序列数据(时间戳与数值的关联对),适合监控系统产生的结构化、流式、平稳可预测且只追加的数据。相比关系型数据库,时序数据库在数据量庞大时不会成为瓶颈,因此 Prometheus、InfluxDB 等被广泛用于监控。
部署 UniFi 监控系统需要哪些软件版本?
根据 Unifi Poller 官方建议:Grafana 需 7.4.0 或更高版本;InfluxDB 需 1.8.x(1.10 和 1.11 可能有效,2.x 无法使用);Prometheus 需 2.x(如果选用)。示例环境使用 InfluxDB 1.8.10、Grafana 10.1.0、Unifi Poller v2.9.5,并运行在 Docker 24.07 和 Docker Compose v2.21.0 上。
如何通过监控面板优化家庭 Wi-Fi 信号?
利用 Grafana 的 Client Insights 面板中的 Wireless Signal 模块,观察各客户端无线信号强度随时间的变化。若某些客户端信号始终较差,可调整 UniFi AP 的安装位置和密度。同时可参考 Unifi 官方帮助文档和视频进行 Wi-Fi 调优。
监控 UniFi 交换机温度有什么实际意义?
对于带温度传感器的 UniFi 交换机(如 2 代 Pro 系列和 Enterprise 系列),监控温度可以了解设备散热状况。例如夏季高温时,通过历史温度变化可判断设备是否过热,从而评估稳定性。实际观察表明,即便在南方,UniFi 设备温度控制也较好,运行稳定。