几年前我分享过 Dashy 在威联通 NAS 上的搭建流程,做出来的效果确实蛮惊艳:一个赛博朋克风的设备信息监控面板,颜值和氛围感都很在线。

不过好看归好看,搭建过程也是真的折腾。这两天回头翻以前写的文章,忍不住感叹一句:当时的自己,居然能这么有耐心。
本篇再来分享一个简单,但是效果非常不错的Docker部署监控面板!!!CPU、风扇、显卡、硬盘等等,基本想到的常用硬件监控都在里面了。

项目介绍
站在巨人的肩膀上。这个项目最初由 Grafana、Prometheus、PostgreSQL 和多个采集器组成,功能虽然完整,但容器太多,部署和排障都比较麻烦。
后来借助 AI 重新整合,把原本多个容器封装成一个镜像。现在只需要修改 NAS IP、SNMP 信息和登录密码,启动一个容器就能实现相同效果,部署简单太多太多。
感谢朋友milesxia花时间折腾,感谢OAI。不过项目比较专,专门针对QNAP NAS做的调整和优化~
部署流程
以威联通 Qu405-N355 为例,通过Docker Compose的方式进行部署。
部署代码如下,请大家根据其中注释修改相关内容适配自己的威联通NAS。
services:
qnap-monitoring:
image: milesxia/qnap-monitoring:latest
container_name: qnap-monitoring
restart: unless-stopped
privileged: true
environment:
# ======================================================
# 必改:NAS 基本信息
# ======================================================
# 时区
# 中国大陆使用 Asia/Shanghai
# 台湾地区使用 Asia/Taipei
TZ: Asia/Shanghai
# QNAP NAS 局域网 IP
# 只填写 IP,不要带 http、https 或端口
NAS_IP: 192.168.100.138
# 必须与 QNAP 控制台中的 SNMP Community 完全一致
SNMP_COMMUNITY: public
# Grafana 看板中显示的 NAS 名称
QNAP_HOSTNAME: QNAP-NAS
# ======================================================
# 必改:Grafana 登录信息
# ======================================================
GF_SECURITY_ADMIN_USER: qnap
GF_SECURITY_ADMIN_PASSWORD: qnap1234
# ======================================================
# 可选:看板与数据保留
# ======================================================
QNAP_DASHBOARD_TITLE: QNAP 统一监控
PROMETHEUS_RETENTION: 30d
GRAFANA_ALLOW_SIGN_UP: "false"
GRAFANA_DEFAULT_LANGUAGE: zh-Hans
GRAFANA_MIN_REFRESH_INTERVAL: 2s
# ======================================================
# 可选:共享文件夹及磁盘扫描
# ======================================================
# 留空时自动检测数据卷
QNAP_DATA_VOLUME_NAME: ""
# 共享文件夹扫描间隔,单位为秒
QNAP_SHARE_SCAN_INTERVAL: "3600"
# 磁盘扫描间隔,单位为秒
QNAP_DISK_SCAN_INTERVAL: "86400"
QNAP_DISK_STARTUP_RETRY_SECONDS: "60"
QNAP_SHARE_STARTUP_RETRY_SECONDS: "30"
# ======================================================
# 可选:进程监控
# ======================================================
QNAP_PROCESS_SAMPLE_INTERVAL: "15"
QNAP_PROCESS_TOP_N: "15"
QNAP_PROCESS_COMMAND_LIMIT: "220"
# ======================================================
# 可选:PCIe 设备过滤
# ======================================================
# 填写 PCIe BDF,例如 0000:01:00.0
# 多个值按程序支持的格式填写;留空表示不过滤
QNAP_PCIE_INCLUDE_BDFS: ""
QNAP_PCIE_EXCLUDE_BDFS: ""
# ======================================================
# 可选:风扇监控
# ======================================================
QNAP_FAN_REFRESH_SECONDS: "2"
QNAP_FAN_HTTP_TIMEOUT: "1.5"
QNAP_FAN_HAL_TIMEOUT: "3.0"
QNAP_FAN_HAL_MAX_INDEX: "16"
# ======================================================
# 内部固定参数,一般不要修改
# ======================================================
QNAP_MONITORING_VERSION: "8.16"
QNAP_REALTIME_EXPORTER_VERSION: "8.16"
QNAP_DASHBOARD_BUILDER_VERSION: "8.16"
QNAP_DASHBOARD_SCHEMA_VERSION: "8.16"
QNAP_SNMP_METRICS_URL: http://127.0.0.1:9273/metrics
QNAP_PCIE_METRICS_URL: http://127.0.0.1:9275/metrics
ports:
# Grafana
- "3300:3000"
# Prometheus
- "39090:9090"
# 以下端口仅用于采集器诊断。
# 正常使用时可以不映射,需要排障时再取消注释。
# - "39273:9273"
# - "39274:9274"
# - "39275:9275"
# - "39276:9276"
# - "39277:9277"
# - "39278:9278"
volumes:
# Grafana、Prometheus、看板和缓存数据
- /share/Container/qnap-monitoring:/data
# 只读访问 QNAP 宿主机信息
- /share:/share:ro
- /proc:/host-proc:ro
- /sys:/host-sys:ro
- /etc/config:/host-etc-config:ro
打开威联通的Container Station,创建新的应用程序。

使用一览
部署完毕后,浏览器输入NAS_IP:3300即可访问页面。密码为部署时所设。

其实也没多少可介绍的,所见即所得,等获取完硬件信息。

一张图放不完,下面还有硬盘、共享文件夹、进程。

朋友的TS-673A显卡也是能正常识别,参数也都没啥问题。

右上角的内容应该都挺容易理解。kiosk模式即为纯净显示,按ESC便可退出。

个人资料里可以设置用户、语言、时区之类。

因为主体还是基于Grafana,所以也具备插件之类的功能。

最后
项目的最终显示效果我俩都比较满意,所以选择分享出来。
缺点可能就是没那么高的灵活性。
有需要的朋友可以选择部署。感谢观看,本文完。
