硬盘预警+状态监控,NAS‑Doctor保姆级部署教程
大家好,我是飘雷。
今天继续来为大家分享一款专为NAS开发的诊断和监控面板——NAS Doctor,它能以Docker形式快速进行部署,同时又有相当美观的界面和专业的功能,是相当好用的免费开源运维工具。

在功能方面,NAS Doctor可以定期对我们的NAS进行健康检查,分析SMART数据、磁盘使用情况、网络速度、内核日志、系统温度等信息,然后根据Backblaze的统计数据,实现对整机硬件信息的监测和提前预警。
对于喜欢折腾NAS、重视数据安全与系统稳定性的朋友来说,这绝对是一个能让你用得安心的好工具。

一、NAS部署NAS Doctor流程
接下来我们来看看如何在NAS上通过Docker Compose的方式部署NAS Doctor,用来示例的设备依然是威联通最新的 8 盘位旗舰型号Qu805。
1. 准备数据文件夹
在部署前,我们需要在 NAS 里建好存放NAS Doctor数据的文件夹。
打开File Station,这里我在/Container目录下新建一个名为nas-doctor的文件夹,再在里面新建了一个data文件夹。

2. 创建Docker Compose

打开威联通 Container Station,点击左侧的「应用程序」,然后点击右侧黑色「创建」按钮,输入以下代码:
services:
nas-doctor:
image: ghcr.io/mcdays94/nas-doctor:latest
container_name: nas-doctor
privileged: true # 读取 SMART 硬盘健康信息必需权限
pid: host # 用于捕获宿主机 Top 进程,分析高 CPU 占用
network_mode: host # 使用 Host 网络模式
volumes:
- /share/Container/nas-doctor/data:/data # 数据持久化目录(替换为你的绝对路径)
- /var/run/docker.sock:/var/run/docker.sock:ro # Docker 容器状态监控
- /var/log:/host/log:ro # 系统日志读取
- /dev:/dev:ro # SMART 硬盘设备识别与读取
- /sys:/sys:ro # 系统硬件及硬件监控
- /share:/host/mnt:ro # 挂载威联通存储池目录,监控硬盘容量空间
# 如果你在 NAS 宿主机上运行了 Tailscale,可取消下一行注释以启用节点拓扑图:
# - /var/run/tailscale:/var/run/tailscale:ro
devices:
- /dev/dri:/dev/dri # 核显/GPU 状态监控(Intel/AMD)
environment:
- TZ=Asia/Shanghai # 时区设置为国内时区
- NAS_DOCTOR_INTERVAL=30m # 自动诊断扫描间隔(默认30分钟)
restart: always
这里需要注意,我在映射时使用了威联通的绝对路径/share/Container/nas-doctor/data:/data,更方便后续备份和数据管理,大家注意根据自己的实际情况来进行修改。
另外我在部署时采用了host模式,项目默认使用8060端口。部署成功后直接通过:8060访问即可。
点击「创建」后,耐心等待NAS拉取镜像并部署完成,在Container Station中看到状态显示正在运行即可。

二、使用演示
NAS Doctor的部署过程非常简单,部署完成后,我们在浏览器输入:8060(例如 192.168.10.70:8060),就能看到NAS Doctor清爽的UI界面了。

下面我们简单来介绍下顶部几个菜单选项。
1.Dashboard
进入面板后,最左侧的FINDINGS区域就是NAS Doctor的精髓所在。

在我这台威联通Qu805的实测中,NAS Doctor敏锐地触发了5个Warning和1个Info,比如我的机器上出现了SATA Cable Issue问题。

点击可以看到警告详情,原来是系统检测到我的英睿达MX500 SSD累积了81次CRC校验错误,这种错误通常是因为接口松动或数据线线缆老化导致,如果不注意检查更换,后续可能会造成数据写入损坏。
从这里可以看得出来,NAS Doctor的精准预警,可以提前帮我们避开硬盘损毁的大坑。
在DRIVES部分,列出了挂载的所有固态/机械硬盘,同时可以看到各硬盘的容量、实时温度和使用时长等。

这个功能在使用机械硬盘时相当实用,由于电机有寿命限制,所以对于使用时间较长的盘体,可以考虑提前进行更换或者备份其中数据。
在右侧的DOCKER CONTAINERS容器监控模块,展示了宿主机上正在运行的 14 个容器以及实时占用的内存、硬盘空间等系统资源,而且曲线一目了然。

2.Stats
点击Stats菜单,可以显示NAS的硬盘数量、存储容量和平均温度等整体信息,也能看到CPU占用、内存占用、I/O Wait以及Load Average(负载均值)的曲线。

Process CPU Load则提供了更加硬核的功能,它能实时追溯NAS系统底层的进程开销,如 container-station、manaRequest.cgi、hal_daemon等,一旦CPU占用率暴涨,看一眼曲线就知道是谁在偷跑资源。

Capacity Forecast容量趋势部分,则可以自动预测每个存储卷的使用状态,例如我NAS中的/mnt/ZFS19_DATA 当前占用率31% ,系统会自动标记Not filling,也即无暴涨风险,帮我们做到心中有数,防患于未然。
3.Planner
点击顶部的Planner菜单,可以查看NAS Doctor基于Backblaze 33.7 万块硬盘统计数据评估出的每块硬盘健康得分,指导我们合理安排硬盘淘汰或升级规划。

比如我的英睿达MX500 1TB SSD,健康得分92分,TBW已经消耗24%,预测剩余使用时长还有4年。
而其他两块Intel和致态的SSD,预测的剩余时长分别还能达到4.5和5.6年,正是当打的年纪。
4.其他
最后像是Services和Fleet等菜单,限于篇幅这里就不赘述了,大家可以结合设置选项自行研究一下,也是非常实用。
比如在Services页面,我们可以添加针对路由器、局域网设备、网盘服务等 HTTP/TCP 节点的保活检测。


同时在Settings中填入Webhook链接,一旦发生问题,NAS Doctor 会第一时间向你的手机发送通知。

又比如在Fleet菜单中,可以开启多设备集中监控,除了能显示本地NAS的整体健康度,如果你手头有其他NAS或云服务器等设备,都可以挂载进来,在一个页面上监控全家设备。

总结
总体来说,NAS Doctor将硬件诊断、风险预测等功能与直观的监控UI结合在了一起,不仅能让我们对NAS的健康状况做到心中有数,还能在出现故障风险时提前警报,尽量避免NAS出现数据损毁的事故。
如果你也是一位重视数据安全、喜欢把运维状态一手掌握的NAS玩家,强烈建议花几分钟把它部署在 NAS 里试试。
好了,以上就是本期的全部内容了,如果大家在部署过程中遇到什么问题,欢迎在评论区留言交流。也欢迎给飘雷来个点赞、收藏加关注三连击,我们下期再见!
