用 Docker Compose 一键部署树莓派系统与容器性能监控栈并可视化
Node-Exporter采集硬件与系统指标,cAdvisor采集容器指标,Prometheus汇聚存储,Grafana可视化展示
方案简介
本方案是一套面向树莓派的完整监控解决方案,通过一个 docker-compose 文件一键拉起 Grafana、Prometheus、cAdvisor 与 Node-Exporter 四个容器组成的监控栈。它解决的问题是为树莓派提供全面且易用的性能监控手段:借助 Grafana 的直观仪表盘,可以轻松可视化由 Prometheus 和 cAdvisor 采集的系统指标,而 Node-Exporter 则提供关于树莓派硬件与操作系统的重要信息。这套组合为你提供对系统健康状况的完整可见性,适合希望将树莓派监控水平提升一个台阶的树莓派玩家和运维人员。
亮点与能力
- 一个
docker-compose文件即可运行整套树莓派监控栈 - Grafana 直观仪表盘,轻松可视化系统指标
- Node-Exporter 提供树莓派硬件与操作系统信息
- cAdvisor 采集容器级指标
- 仅 Grafana 端口(3000)暴露在宿主机上,其余服务内部端口访问
- 支持基于 provisioning 的数据源与仪表盘自动加载
- 可通过 Grafana.com 导入官方 Dashboard(ID 15120)
- Prometheus 抓取目标与抓取间隔均可通过配置文件调整
组成与分工
- Grafana:可视化层,提供直观仪表盘展示 Prometheus 采集的指标,默认用户名密码均为
admin,首次登录会提示修改密码 - Prometheus:指标采集与存储,通过
prometheus.yml配置抓取目标(targets),job_name名称用于在 Grafana 中识别目标 - cAdvisor:采集容器相关指标,监听 8080 端口
- Node-Exporter:采集树莓派硬件与操作系统信息,监听 9100 端口
- Docker / Docker Compose:容器运行与编排基础,通过
docker-compose.yml定义各服务 - Raspberry Pi OS:宿主机操作系统(或其他兼容的 Linux 发行版)
前置要求
安装前需确保以下前置条件满足:
- 宿主机已安装 Docker
- 宿主机已安装 Docker Compose
- 宿主机运行 Raspberry Pi OS 或其他兼容的 Linux 发行版
实施步骤
1. 克隆仓库
bash
git clone https://github.com/oijkn/Docker-Raspberry-PI-Monitoring.git
2. 进入克隆目录
bash
cd Docker-Raspberry-PI-Monitoring
3. 创建 data 目录并修改属主
创建 data 目录并修改 prometheus 和 grafana 文件夹的属主,以获得干净安装:
bash
mkdir -p prometheus/data grafana/data && \
sudo chown -R 472:472 grafana/ && \
sudo chown -R 65534:65534 prometheus/
4. 启动监控栈
bash
docker-compose up -d
这将启动所有容器并使其在宿主机上可用。使用的端口为:3000 (Grafana)、9090 (Prometheus)、8080 (cAdvisor)、9100 (NodeExporter),其中只有 Grafana 暴露在宿主机上。
使用与配置要点
访问仪表盘
在浏览器中打开 http://:3000,例如 http://192.168.1.100:3000。默认用户名和密码均为 admin,首次登录会提示修改密码。凭据可通过编辑 .env 文件修改。
修改监控目标
如需更改监控目标,可编辑 prometheus.yml:targets 部分包含 Prometheus 要监控的所有目标列表;job_name 中定义的名称用于在 Grafana 中识别目标;static_configs 包含目标的 IP 地址,目前来源于 docker-compose.yml 中定义的服务名。若觉得 scrape_interval 过于激进,可改为更合适的值。
验证运行状态
bash
docker-compose ps
查看特定容器日志:
bash
docker logs -f
添加数据源与仪表盘
Grafana v5 引入 provisioning 概念后,可将 datasources 和 dashboards 目录放在 provisioning 文件夹中,启动时自动加载。添加新仪表盘只需将 JSON 文件放入 dashboards 目录,下次 Grafana 启动时自动加载。
从 Grafana.com 安装仪表盘(可选)
- 在 Grafana.com Dashboard 导航到该仪表盘
- 点击
Copy ID to Clipboard按钮 - 在 Grafana 中进入
Import页面 - 将 ID 粘贴到
Import via grafana.com字段 - 点击
Load,再点击Import
注意事项与常见问题
排错:启用 cgroup 内存与 swap 统计
如遇问题,需在宿主机上启用 c-group 内存与 swap 统计:
bash
sudo sed -i 's/^GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1"/' /etc/default/grub
sudo update-grub
sudo reboot
其他
- 仪表盘旨在帮助你入门树莓派监控,如有改动或建议,欢迎提交 issue 或 pull request
- 项目基于 MIT License 开源
优缺点
- ✓ 一键docker-compose部署
- ✓ Grafana仪表盘自动provisio
- ✕ 仅Grafana端口对外暴露
- ✕ 需修改GRUB开启cgroup统计
出处
本方案挖掘自开源项目 oijkn/Docker-Raspberry-PI-Monitoring,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。