飞牛NAS监控体系搭建:Prometheus + Grafana
飞牛NAS作为一款轻量级、易上手的NAS系统,在日常使用中,我们往往只关注其文件存储和备份功能,却很少关注系统本身的运行状态。当磁盘IO持续满载、内存被虚拟机吃光、网络出现异常波动时,如果缺乏可视化的监控手段,排查问题就像是在盲人摸象。今天,我们就来手把手在飞牛NAS上搭建一套以Prometheus为核心、Grafana为展示面板的专业监控体系,让NAS的每一分性能都尽在掌握。
为什么选择Prometheus + Grafana
飞牛NAS虽然自带简易的资源监控,但历史数据保留有限,且无法自定义告警规则。Prometheus作为云原生领域的监控标准,采用拉取模型,配合node_exporter可以采集丰富的系统指标;Grafana则负责将数据可视化,提供酷炫的仪表盘。这套组合完全开源、免费,且对资源占用极低,非常适合部署在NAS上。
前置准备
在开始之前,请确保你的飞牛NAS系统版本在0.8.2以上,且已开启SSH功能(在系统设置-终端中启用)。我们需要通过SSH登录到系统后台执行命令。建议使用root账户登录,或者使用具有sudo权限的账户。
第一步:创建监控专用目录
为了避免污染系统目录,我们统一将监控组件安装在 /opt/monitor 下。执行以下命令创建目录结构:
sudo mkdir -p /opt/monitor/{prometheus,grafana,node_exporter}
这里我们分别创建了三个子目录,用于存放不同组件的配置和数据。
第二步:部署node_exporter采集系统指标
node_exporter是Prometheus官方提供的硬件和系统指标采集器。我们采用二进制方式安装,简单高效。
首先下载最新版本(以1.7.0为例,你可以从GitHub Releases获取更新版本):
cd /opt/monitor/node_exporter
sudo wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
sudo tar xzf node_exporter-1.7.0.linux-amd64.tar.gz
sudo mv node_exporter-1.7.0.linux-amd64/node_exporter .
sudo rm -rf node_exporter-1.7.0.linux-amd64*
接下来,我们创建一个systemd服务文件,让node_exporter以守护进程方式后台运行:
sudo vim /etc/systemd/system/node_exporter.service
写入以下内容:
[Unit]
Description=Node Exporter
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/monitor/node_exporter/node_exporter --collector.filesystem.mount-points-exclude="^/(sys|proc|dev|run)($|/)" --collector.filesystem.fs-types-exclude="^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$"
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
注意,上面的ExecStart中我们特意排除了虚拟文件系统挂载点,避免采集到无意义的数据。保存退出后,启动服务并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporter
验证是否正常运行:
curl http://localhost:9100/metrics | head -n 5
如果看到以 node_cpu_seconds_total 开头的指标输出,说明采集成功。
第三步:安装Prometheus服务端
Prometheus负责定时拉取node_exporter的数据并存储。我们同样采用二进制方式安装:
cd /opt/monitor/prometheus
sudo wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
sudo tar xzf prometheus-2.52.0.linux-amd64.tar.gz
sudo mv prometheus-2.52.0.linux-amd64/* .
sudo rm -rf prometheus-2.52.0.linux-amd64*
创建Prometheus配置文件,指定抓取目标:
sudo vim /opt/monitor/prometheus/prometheus.yml
填入以下基础配置:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
这里配置了两个抓取任务:一个抓取Prometheus自身指标,一个抓取node_exporter指标。如果你有多个飞牛NAS节点,可以在targets列表中用逗号分隔加入IP地址。
接着创建systemd服务:
sudo vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/monitor/prometheus/prometheus --config.file=/opt/monitor/prometheus/prometheus.yml --storage.tsdb.path=/opt/monitor/prometheus/data
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
等待几秒后,访问 http://你的NAS_IP:9090/targets,如果看到两个target都是UP状态,说明Prometheus已经正常拉取数据。
第四步:部署Grafana可视化面板
Grafana是数据展示层,我们通过Docker方式安装,这样可以避免依赖冲突,管理也更加方便。飞牛NAS自带Docker环境,直接使用即可。
sudo docker run -d --name=grafana \
-p 3000:3000 \
-v /opt/monitor/grafana:/var/lib/grafana \
--restart=always \
grafana/grafana:11.0.0
注意,我们将Grafana的数据目录挂载到宿主机 /opt/monitor/grafana,这样即使容器重建配置也不会丢失。启动后,通过 http://你的NAS_IP:3000 访问Grafana界面,默认用户名和密码均为admin,首次登录会提示修改密码。
登录后,我们需要添加Prometheus数据源。点击左侧齿轮图标(Configuration),选择Data Sources,然后点击Add data source,选择Prometheus。在HTTP URL中填写 http://localhost:9090(因为Grafana容器与Prometheus在同一宿主机,但容器内不能直接用localhost,需要填写宿主机IP或使用host网络模式。这里建议填写你的飞牛NAS实际局域网IP,例如 http://192.168.1.100:9090),然后点击Save & Test,看到绿色的提示即表示连接成功。
第五步:导入现成的监控仪表盘
自己从零绘制面板比较费时,我们可以直接导入社区现成的模板。Grafana官网提供了大量开源仪表盘,其中ID为 1860 的Node Exporter Full模板非常经典,涵盖CPU、内存、磁盘、网络等指标。
操作步骤:点击左侧加号图标(Dashboards),选择Import,在Import via panel json中输入模板ID 1860,点击Load。系统会要求选择Prometheus数据源,选择我们刚才创建的,然后点击Import即可。稍等几秒,一个专业美观的系统监控面板就呈现在眼前了。
进阶优化:配置邮件告警
监控的最终目的是及时发现问题。Grafana支持配置告警规则,这里我们简单实现磁盘空间不足的邮件告警。
首先进入Alerting -> Contact points,点击Add contact point,选择Email类型,填写SMTP服务器信息(以QQ邮箱为例:smtp.qq.com:465,需要开启SMTP授权码),然后点击Test发送测试邮件。接着进入Alert rules,点击New rule,配置条件为 disk_used_percent > 85,设置评估频率为1分钟,通知策略选择刚才创建的邮件联系人。
这样当磁盘使用率超过85%时,你就能第一时间收到邮件提醒,避免出现存储写满的尴尬情况。
总结
至此,一套完整的飞牛NAS监控体系已经搭建完成。通过Prometheus高效采集系统指标,Grafana直观展示运行趋势,配合邮件告警,我们成功将NAS的运维从被动排查转为了主动预警。这套方案不仅适用于单台飞牛NAS,稍加改造还能监控整个家庭网络中的其他Linux设备。整套体系对系统资源的消耗极低,不会影响NAS的正常存储服务。建议每周花一分钟查看一次关键指标趋势,提前发现硬盘性能衰减或内存泄漏的苗头,让飞牛NAS在稳定高效的轨道上持久运行。
暂无评论,来说两句吧