飞牛NAS监控体系搭建:Prometheus + Grafana
飞牛NAS作为一款功能强大的国产NAS系统,其基于Debian的底层架构为我们提供了极高的可玩性。当设备中的容器和虚拟机越来越多时,自带的资源监视器往往只能提供“瞬时”数据,无法满足我们对历史趋势分析和故障预警的需求。今天,我们就利用飞牛NAS的Docker套件,搭建一套专业的监控体系:Prometheus负责数据采集,Grafana负责数据可视化。
架构设计与准备工作
我们将采用最经典的组合方案:使用 node-exporter 暴露服务器的硬件与系统指标,Prometheus 定时拉取并存储这些数据,最后由 Grafana 提供炫酷的仪表盘。在开始前,请确保你的飞牛NAS已开启Docker功能,并且CPU架构为x86_64(绝大多数机型适用)。
为了数据持久化,我们需要在 NAS 文件系统中创建三个目录,用于存放容器产生的配置和数据。我习惯于将所有容器数据集中存放在 /vol1/docker 下,你可以根据你的存储空间自行调整。建议使用飞牛自带的“文件管理”应用,在 Docker 目录下新建 prometheus、grafana 和 node-exporter 三个文件夹。
第一步:部署 node-exporter 采集器
node-exporter 是 Prometheus 官方提供的硬件监控组件,它能收集 CPU、内存、磁盘 I/O、网络流量等核心指标。我们通过 SSH 登录飞牛NAS(或在飞牛桌面的“终端”中操作),执行以下命令:
docker run -d \
--name node-exporter \
--restart=always \
--network=host \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /:/rootfs:ro \
prom/node-exporter:latest \
--path.procfs=/host/proc \
--path.sysfs=/host/sys \
--path.rootfs=/rootfs
这里的关键点在于使用了 --network=host 模式,这样 node-exporter 会直接监听宿主机的 9100 端口,便于 Prometheus 抓取。启动后,在浏览器访问 http://你的NAS_IP:9100/metrics ,如果能看到一堆以 node_ 开头的文本,说明采集器工作正常。
第二步:配置 Prometheus 服务
首先,我们需要创建一个 Prometheus 的配置文件。在飞牛的文件管理器中,进入刚才创建的 prometheus 文件夹,新建一个名为 prometheus.yml 的文件,内容如下:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['192.168.1.100:9100']
请务必将配置文件中的 192.168.1.100 替换为你飞牛NAS的实际 IP 地址。保存文件后,启动 Prometheus 容器:
docker run -d \
--name prometheus \
--restart=always \
-p 9090:9090 \
-v /vol1/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /vol1/docker/prometheus/data:/prometheus \
prom/prometheus:latest
启动后,访问 http://你的NAS_IP:9090 ,在 “Status” -> “Targets” 页面中,如果看到 node_exporter 的状态为 UP,说明数据链路已经打通。
第三步:部署 Grafana 可视化平台
Grafana 是数据可视化的神兵利器。执行以下命令启动容器:
docker run -d \
--name grafana \
--restart=always \
-p 3000:3000 \
-v /vol1/docker/grafana/data:/var/lib/grafana \
-e GF_SECURITY_ADMIN_PASSWORD=admin \
grafana/grafana:latest
这里我们通过环境变量 GF_SECURITY_ADMIN_PASSWORD 将初始密码设置为 admin,当然你也可以在第一次登录后修改。启动完成后,浏览器访问 http://你的NAS_IP:3000 ,使用用户名 admin 和密码 admin 登录。
第四步:对接数据源与导入仪表盘
登录 Grafana 后,我们需要先添加 Prometheus 作为数据源。点击左侧齿轮图标(Configuration)-> “Data Sources” -> “Add data source”,选择 Prometheus。在 “URL” 一栏填写 http://你的NAS_IP:9090,点击下方的 “Save & Test” 按钮,看到绿色的 “Success” 提示即表示连接成功。
接下来是重头戏——导入现成的仪表盘。我们不需要从头绘制图表,可以导入社区大神做好的模板。点击左侧 “+” 号,选择 “Import”,在 “Import via panel json” 输入框中填入模板 ID 1860(这是一个非常经典的 Node Exporter Full 模板)。点击 “Load” 后,选择我们刚才添加的 Prometheus 数据源,最后点击 “Import” 即可。
稍等片刻,你就能看到一个包含 CPU 使用率、内存占用、磁盘读写、网络流量等数十个监控面板的精美仪表盘了。你可以拖动面板调整位置,也可以点击面板右上角的编辑按钮修改阈值和告警规则。
进阶:配置告警通知
监控的最终目的是为了发现问题。在 Grafana 中,我们可以为关键指标设置告警。例如,当 CPU 温度超过 70 度或磁盘空间使用率超过 90% 时,通过钉钉或邮件通知自己。这需要先在 Grafana 的 “Notification channels” 中配置对应的 webhook 地址,然后在具体的监控面板编辑模式中,切换到 “Alert” 标签页,设置查询条件 min() 和阈值即可。由于配置项较多,这里不展开赘述,但强烈建议你为“磁盘空间预测”和“内存耗尽”添加告警。
总结
至此,一套完整的飞牛NAS监控体系已经搭建完成。Prometheus 负责高效地采集和存储时间序列数据,Grafana 将其转化为直观的图表,让我们对 NAS 的实时状态和历史趋势了如指掌。这套方案完全基于 Docker 容器运行,不污染宿主机环境,并且在飞牛重启后会自动恢复运行。通过后续的告警配置,你甚至可以做到“事前预警”,让数据存储更安心。如果觉得默认模板不够用,还可以在 Grafana 官网社区寻找更多适合 NAS 的仪表盘模板,不断优化你的监控看板。
暂无评论,来说两句吧