系统优化

飞牛NAS监控体系搭建:Prometheus + Grafana

2026-07-30 5 admin

为什么要在飞牛NAS上搭建监控体系

飞牛NAS作为家庭或小型企业的数据中枢,承担着文件存储、备份、媒体服务等核心任务。随着使用深入,你可能会有这样的疑问:CPU负载是否过高?内存是否吃紧?硬盘温度是否异常?这些指标单靠在飞牛后台界面查看,不仅不够直观,更无法形成持续追踪。这时候,一套专业的监控体系就派上了用场。

Prometheus 和 Grafana 的组合是目前业界最流行的开源监控方案。Prometheus负责采集和存储时序数据,Grafana负责将数据可视化呈现。在飞牛NAS的Docker环境中部署这套体系,可以让你通过精美的仪表盘实时掌握NAS的运行状态,甚至设置告警规则,防患于未然。

前期准备:Docker环境与端口规划

飞牛NAS内置了Docker管理器,这为我们部署容器提供了极大便利。在开始之前,请确保你的飞牛系统已经升级到最新版本,并且Docker服务正常运行。

你需要规划以下端口: - Prometheus Web界面:9090 - Node Exporter(用于采集系统指标):9100 - Grafana Web界面:3000

这些端口在飞牛NAS上应当未被占用。你可以在SSH终端中使用 netstat -tuln | grep -E '9090|9100|3000' 检查端口占用情况。

第一步:部署Node Exporter采集系统指标

Node Exporter是Prometheus官方提供的系统指标采集器,可以收集CPU、内存、磁盘、网络等基础指标。在飞牛NAS的Docker中运行它非常简单。

打开飞牛NAS的Docker管理器,选择“镜像管理” -> “拉取镜像”,输入 prom/node-exporter:latest 并拉取。或者,你直接在SSH终端中执行:

docker pull prom/node-exporter:latest

拉取完成后,创建一个名为 node-exporter 的容器,执行以下命令:

docker run -d --restart=always \
  --name node-exporter \
  --net="host" \
  --pid="host" \
  -v "/:/host:ro,rslave" \
  prom/node-exporter:latest \
  --path.rootfs=/host

关键参数说明: - --net="host" 使用宿主机网络,让Node Exporter直接暴露在物理网络上,避免端口映射带来的性能损耗。 - --pid="host" 允许采集进程相关的指标。 - -v "/:/host:ro,rslave" 将宿主机根目录挂载为只读,用于采集磁盘和文件系统信息。

运行后,通过 http://你的NAS IP:9100/metrics 即可看到大量系统指标数据。如果能看到类似 node_cpu_seconds_total 的文本输出,说明采集成功。

第二步:部署Prometheus服务端

Prometheus负责从Node Exporter拉取数据并存储。你需要先准备一个配置文件。

在飞牛NAS的文件管理器中,创建一个持久化目录,例如 /docker/prometheus。在该目录下新建 prometheus.yml 文件,内容如下:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

这里 scrape_interval 是采集频率,15秒一次对于家庭NAS来说已经足够。targets 指定了Node Exporter的地址,由于Prometheus也使用宿主机网络模式,所以直接用 localhost 即可指向本机9100端口。

拉取Prometheus镜像:

docker pull prom/prometheus:latest

启动Prometheus容器:

docker run -d --restart=always \
  --name prometheus \
  --net="host" \
  -v /docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
  -v /docker/prometheus/data:/prometheus \
  prom/prometheus:latest \
  --config.file=/etc/prometheus/prometheus.yml \
  --storage.tsdb.path=/prometheus

这里 -v /docker/prometheus/data:/prometheus 将数据持久化到宿主机,避免容器重启后数据丢失。

访问 http://你的NAS IP:9090,在Prometheus的Web界面中,点击“Status” -> “Targets”,应该能看到 node 这个job状态为 UP。在查询框中输入 up 并执行,如果返回值为1,说明一切正常。

第三步:部署Grafana实现可视化

Grafana是展示数据的利器,它支持Prometheus作为数据源,并提供了大量现成的仪表盘模板。

拉取Grafana镜像:

docker pull grafana/grafana:latest

启动Grafana容器:

docker run -d --restart=always \
  --name grafana \
  --net="host" \
  -v /docker/grafana/data:/var/lib/grafana \
  grafana/grafana:latest

同样使用宿主机网络模式,并将数据持久化到 /docker/grafana/data

访问 http://你的NAS IP:3000,默认用户名和密码均为 admin,首次登录会要求修改密码。

第四步:配置Grafana数据源与仪表盘

登录Grafana后,点击左侧齿轮图标 -> “Data Sources” -> “Add data source”。选择“Prometheus”,在URL栏输入 http://localhost:9090,点击“Save & Test”。如果显示绿色提示“Data source is working”,说明连接成功。

接下来导入仪表盘。点击左侧“+”图标 -> “Import”,在“Import via grafana.com”输入框填写ID 1860(这是Node Exporter Full仪表盘的官方ID),点击“Load”。在接下来的页面中,选择刚刚创建的数据源,点击“Import”。

几秒钟后,一个完整的系统监控仪表盘就会呈现在你面前。你可以看到CPU使用率、内存占用、磁盘读写IO、网络流量、磁盘温度(如果硬盘支持)等大量指标。所有图表都是实时刷新的,并且支持自定义时间范围。

如果需要更精细的监控,比如某个特定进程的资源占用,可以在Prometheus的配置文件中新增 scrape_config 段,或者添加其他Exporter(如用于监控Docker容器的cAdvisor)。Grafana也支持导入更多专业仪表盘,比如用于监控MySQL、Nginx等的模板。

第五步:设置告警(可选)

Grafana内置了告警功能。例如,当CPU温度超过70度时发送邮件通知。在仪表盘中打开某个图表,编辑面板,切换到“Alert”选项卡,配置触发条件和通知渠道。通知渠道支持邮件、钉钉、Slack等,需要在“Alerting” -> “Notification channels”中先配置好。

总结

通过以上步骤,你已经在飞牛NAS上成功搭建了一套完整的Prometheus + Grafana监控体系。这套系统不仅美观直观,而且完全开源免费。Node Exporter负责底层数据采集,Prometheus负责存储和查询,Grafana负责展示和告警,三者分工明确、协同工作。现在,你随时可以通过浏览器打开Grafana,一眼看清NAS的健康状况,再也不用担心数据丢失或性能瓶颈。如果你愿意,还可以继续扩展监控范围,比如加入对Docker容器、UPS电源甚至智能家居设备的监控,让飞牛NAS成为你数字生活的真正控制中心。