部署windows端的,因和服务端不在一个网络,会出现错误,主要是路由没返回的静态路由,2级路由是小米的,没法设置,(没去查看
容器介绍,
1、整体容器服务改动 → docker‑compose.yml
位置:你存放编排文件的目录
适合修改场景:
新增、删减监控容器(例如再加装日志组件 loki)
修改容器端口、开机策略、磁盘挂载目录、时区、特权权限
更换 cadvisor、grafana、prometheus 镜像版本
改完重载命令:
bash
docker‑compose up -d
2、监控采集规则、采集地址、采集间隔 → prometheus.yml
路径:/root/docker_data/prom_config/prometheus.yml
日常最常改动这个文件:
添加新设备、新容器的监控采集地址
修改 15 秒采集间隔、新增告警配置
给监控标签、主机备注名称
编辑保存之后重载生效,不用重启容器:
bash
curl -X POST http://127.0.0.1:9090/-/reload
3、仪表盘、数据源、面板配置(不需要改本地文件)
全部在 Grafana 网页后台操作:
新增 / 删除数据源、导入监控面板 8191、14282
调整图表样式、颜色、告警提醒
数据储存在 /root/docker_data/grafana_data,网页操作自动写入,不用手动编辑文件
简单总结
容器启停、镜像、挂载:改 docker‑compose.yml
采集任务、监控目标:改 prometheus.yml
图表看板:浏览器进入 Grafana 页面调整即可
内网部署段,是软路由
# compose 文件协议版本,version3 是软路由Docker最通用稳定版本
version: "3"
# 创建专属独立网桥,让 prometheus 和 grafana 内网互通,隔绝其他容器,避免端口冲突
networks:
monitor-net:
services:
prometheus:
# 使用本地已经导入完毕的监控镜像
image: prom/prometheus:latest
# 设定容器固定名称,后续操作直接调用该名字
container_name: prometheus
# 容器崩溃、软路由重启,自动重启容器,实现开机自启
restart: always
# =========资源限制重点=========
# mem_limit:512m 容器最大允许占用内存512MB,超过会被系统限制,防止监控吃光路由内存
mem_limit: 512m
# cpus:1.5 最多只能使用1.5个CPU核心,不会抢占软路由拨号、流控的处理器性能
cpus: 1.5
# 端口映射:主机9090端口 → 容器内9090,浏览器访问监控后台
ports:
- "9090:9090"
# 目录挂载:主机文件夹映射进容器,配置、监控数据持久保存
volumes:
- /root/docker_data/prom_config:/etc/prometheus
- /root/docker_data/prom_data:/prometheus
# Prometheus 启动运行参数
command:
# 指定监控配置文件位置
- --config.file=/etc/prometheus/prometheus.yml
# 时序监控数据存储路径
- --storage.tsdb.path=/prometheus
# 监控数据只保留15天,过期自动清理,避免硬盘存满
- --storage.tsdb.retention.time=15d
# 开启配置热重载,修改配置无需重启容器
- --web.enable-lifecycle
# 关闭高危管理员API接口,规避内网安全风险
- --web.enable-admin-api=false
# 环境变量,设置容器时区为北京时间,监控时间不会错乱
environment:
TZ: Asia/Shanghai
# 接入专属监控网桥
networks:
- monitor-net
grafana:
# 本地现成的可视化面板镜像
image: grafana/grafana:latest
# 容器固定名称
container_name: grafana
# 设备重启、程序异常后自动重启
restart: always
# 面板程序最大内存上限512MB
mem_limit: 512m
# 最多占用1颗CPU核心,节省R5C硬件资源
cpus: 1
# 网页端口,主机3000端口打开可视化仪表盘
ports:
- "3000:3000"
# 挂载面板配置、图表数据,删除容器数据也不会丢失
volumes:
- /root/docker_data/grafana_data:/var/lib/grafana
environment:
# 同步东八区北京时间
TZ: Asia/Shanghai
# 关闭匿名访客登录,必须账号密码登录仪表盘
GF_AUTH_ANONYMOUS_ENABLED: false
# 加入监控网桥,和prometheus互相通信获取监控数据
networks:
- monitor-net会有警告
oot@iStoreOS:~# docker-compose up -d
WARN[0000] /root/docker-compose.yml: the attribute version is obsolete, it wil l be ignored, please remove it to avoid potential confusion
[+] Running 3/5
✔ Network root_monitor-net Cre ated0.0s ner prometheus Creating 0.1s
⠙ Container grafana Sta rting0.2s
⠙ Container prometheus Sta rting0.2s
[+] Running 3/5he requested image's platform (linux/amd64) does not match the de ✔ Network root_monitor-net Cre ated0.0s a Your kernel does not support swap limit capabilities or the cgroup is ⠹ Container grafana Sta rting0.3s
⠹ Container prometheus Sta rting0.3s
[+] Running 3/5he requested image's platform (linux/amd64) does not match the de ✔ Network root_monitor-net Cre ated0.0s a Your kernel does not support swap limit capabilities or the cgroup is ⠸ Container grafana Sta rting0.4s
⠸ Container prometheus Sta rting0.4s
[+] Running 3/5he requested image's platform (linux/amd64) does not match the de ✔ Network root_monitor-net Cre ated0.0s a Your kernel does not support swap limit capabilities or the cgroup is ⠼ Container graf报错声明
、version 属性已经过时,可以直接删掉
新版‑docker‑compose 已经不需要版本声明,直接删除第一行 version:"3"
2、the requested image's platform (linux/amd64) does not match the device
你的 R5C 是 ARM‑aarch64 架构,但你导入的 prom/prometheus:latest 是 x86 (amd64) 版本镜像,架构不兼容,容器无法正常启动,这是最关键问题!
3、Your kernel does not support swap limit capabilities
iStoreOS 内核不支持内存交换分区限制,直接删掉 mem_limit、cpus 资源限制参数即可,软路由内核不支持 cgroup 内存管控
修正之后最终可用 compose(适配 R5C‑ARM 架构)
# 已删除过时的version字段
networks:
monitor-net:
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: always
ports:
- "9090:9090"
volumes:
- /root/docker_data/prom_config:/etc/prometheus
- /root/docker_data/prom_data:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=15d
- --web.enable-lifecycle
- --web.enable-admin-api=false
environment:
TZ: Asia/Shanghai
networks:
- monitor-net
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
ports:
- "3000:3000"
volumes:
- /root/docker_data/grafana_data:/var/lib/grafana
environment:
TZ: Asia/Shanghai
GF_AUTH_ANONYMOUS_ENABLED: false
networks:
- monitor-net停止当前出错容器
bash
docker-compose down
删除现在 x86 架构、无法运行的 prometheus 镜像
bash
docker rmi prom/prometheus:latest
root@iStoreOS:~# docker logs prometheus
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
Error parsing command line arguments: unexpected false
prometheus: error: unexpected false
root@iStoreOS:~# docker logs grafana
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
root@iStoreOS:~#
故障 1:Prometheus 报错 unexpected‑false
根源:你的 yml 文件 command 参数依旧残留 --xxx=false
Prometheus 命令行参数属于开关,不支持 =true / =false;需要关闭该功能直接删掉整行参数
prometheus 的 command 命令行不能带任何
--xxx=false,开关参数只能开启、不能赋值 false
故障 2:Grafana 权限拒绝
挂载目录权限不足,容器内置普通用户无法写入文件夹,需要开放权限 + 指定 root 用户运行
步骤 1:先关停旧容器
bash
docker-compose down
步骤 2:给挂载目录全开权限(iStoreOS 必做)
bash
chmod -R 777 /root/docker_dataommand 里面没有任何=false参数,grafana 强制 root 启动规避权限
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: always
network_mode: host
volumes:
- /root/docker_data/prom_config:/etc/prometheus
- /root/docker_data/prom_data:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=15d
- --web.enable-lifecycle
environment:
TZ: Asia/Shanghai
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
network_mode: host
user: root
volumes:
- /root/docker_data/grafana_data:/var/lib/grafana
environment:
TZ: Asia/Shanghai
GF_AUTH_ANONYMOUS_ENABLED: falsenetwork_mode: host 模式不需要 ports 端口映射,容器直接共用主机全部网卡,端口直接绑定宿主机;你不习惯 host 模式,那咱们切回桥接模式、手动写明端口,同时修复命令报错、权限问题。
root@iStoreOS:~# docker logs grafana
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
root@iStoreOS:~#
root@iStoreOS:~# chmod -R 777 /root/docker_data
root@iStoreOS:~# docker-compose down
[+] Running 3/3
✔ Container grafana Removed 0.0s
✔ Container prometheus Removed 0.0s
✔ Network root_monitor-net Removed 0.2s
root@iStoreOS:~# ls
docker-compose.yml docker_data nohup.out prometheus.tar
root@iStoreOS:~# vi docker-compose.yml
root@iStoreOS:~# cat > /root/docker_data/prom_config/prometheus.yml <<EOF
> global:
> scrape_interval: 15s
> scrape_configs:
> - job_name: "prometheus本体"
> static_configs:
> - targets: ["127.0.0.1:9090"]
> EOF
root@iStoreOS:~# docker-compose up -d
[+] Running 2/2
✔ Container grafana Started 0.4s
✔ Container prometheus Started 0.4s
root@iStoreOS:~# docker logs prometheus
time=2026-08-05T15:14:13.390+08:00 level=INFO source=main.go:1730 msg="updated GOGC" old=100 new=75
time=2026-08-05T15:14:13.391+08:00 level=INFO source=main.go:789 msg="Leaving GOMAXPROCS=4: CPU quota undefined" component=automaxprocs
time=2026-08-05T15:14:13.392+08:00 level=INFO source=memlimit.go:198 msg="GOMEMLIMIT is updated" component=automemlimit package=github.com/KimMachineGun/automemlimit/memlimit GOMEMLIMIT=3706715750 previous=9223372036854775807
time=2026-08-05T15:14:13.392+08:00 level=INFO source=main.go:896 msg="Starting Prometheus Server" mode=server version="(version=3.13.2, branch=HEAD, revision=bb5dff00cf8fdfbf5c65e0531aa835fa238a43a2)"
time=2026-08-05T15:14:13.392+08:00 level=INFO source=main.go:901 msg="operational information" build_context="(go=go1.26.5, platform=linux/arm64, user=root@56a9973e8bdd, date=20260730-11:34:45, tags=netgo,builtinassets)" host_details="(Linux 6.6.144 #0 SMP Wed Jul 29 05:40:29 2026 aarch64 iStoreOS (none))" fd_limits="(soft=1048576, hard=1048576)" vm_limits="(soft=unlimited, hard=unlimited)"
time=2026-08-05T15:14:14.275+08:00 level=INFO source=web.go:727 msg="Start listening for connections" component=web address=0.0.0.0:9090
time=2026-08-05T15:14:14.277+08:00 level=INFO source=main.go:1462 msg="Starting TSDB ..."
time=2026-08-05T15:14:14.294+08:00 level=INFO source=head.go:709 msg="Replaying on-disk memory mappable chunks if any" component=tsdb
time=2026-08-05T15:14:14.294+08:00 level=INFO source=head.go:795 msg="On-disk memory mappable chunks replay completed" component=tsdb duration=7µs
time=2026-08-05T15:14:14.294+08:00 level=INFO source=head.go:803 msg="Replaying WAL, this may take a while" component=tsdb
time=2026-08-05T15:14:14.296+08:00 level=INFO source=head.go:898 msg="WAL segment loaded" component=tsdb segment=0 maxSegment=0 duration=1.256764ms
time=2026-08-05T15:14:14.296+08:00 level=INFO source=head.go:935 msg="WAL replay completed" component=tsdb checkpoint_replay_duration=253.162µs wal_replay_duration=1.593048ms wbl_replay_duration=1.166µs chunk_snapshot_load_duration=0s mmap_chunk_replay_duration=7µs total_replay_duration=1.972498ms
time=2026-08-05T15:14:14.302+08:00 level=INFO source=tls_config.go:354 msg="Listening on" component=web address=[::]:9090
time=2026-08-05T15:14:14.303+08:00 level=INFO source=tls_config.go:357 msg="TLS is disabled." component=web http2=false address=[::]:9090
time=2026-08-05T15:14:14.309+08:00 level=INFO source=main.go:1483 msg="filesystem information" fs_type=OVERLAYFS_SUPER_MAGIC
time=2026-08-05T15:14:14.309+08:00 level=INFO source=main.go:1486 msg="TSDB started"
time=2026-08-05T15:14:14.309+08:00 level=INFO source=main.go:1684 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
time=2026-08-05T15:14:14.310+08:00 level=INFO source=main.go:1100 msg="TSDB retention updated" duration=15d size=0B percentage=0
time=2026-08-05T15:14:14.314+08:00 level=INFO source=main.go:1723 msg="Completed loading of configuration file" db_storage=209.12µs remote_storage=7.874µs web_handler=2.625µs query_engine=2.917µs scrape=2.60511ms scrape_sd=146.122µs notify=5.833µs notify_sd=2.917µs rules=5.25µs tracing=24.207µs filename=/etc/prometheus/prometheus.yml totalDuration=4.12641ms
time=2026-08-05T15:14:14.314+08:00 level=INFO source=main.go:1447 msg="Server is ready to receive web requests."
time=2026-08-05T15:14:14.314+08:00 level=INFO source=manager.go:211 msg="Starting rule manager..." component="rule manager"
root@iStoreOS:~# docker logs grafana
Grafana server is running with elevated privileges. This is not recommended
logger=settings t=2026-08-05T15:14:14.988118138+08:00 level=info msg="Starting Grafana" version=13.1.2 commit=7f247b37a4e51a1ed33904ec63ac6c6087bf7f48 branch=release-13.1.2#patched compiled=2026-08-04T18:18:20+08:00
logger=settings t=2026-08-05T15:14:14.993309399+08:00 level=info msg="Unified migration configs enforced" storage_type=unified target=[all]
logger=settings t=2026-08-05T15:14:14.993480896+08:00 level=info msg="Enforcing mode 5 for resource in unified storage" resource=dashboards.dashboard.grafana.app
logger=settings t=2026-08-05T15:14:14.993515312+08:00 level=info msg="Enforcing mode 5 for resource in unified storage" resource=playlists.playlist.grafana.app
logger=settings t=2026-08-05T15:14:14.993540394+08:00 level=info msg="Enforcing mode 5 for resource in unified storage" resource=folders.folder.grafana.app
logger=settings t=2026-08-05T15:14:14.994382126+08:00 level=info msg="Config loaded from" file=/usr/share/grafana/conf/defaults.ini
logger=settings t=2026-08-05T15:14:14.994429667+08:00 level=info msg="Config loaded from" file=/etc/grafana/grafana.ini
logger=settings t=2026-08-05T15:14:14.994454166+08:00 level=info msg="Config overridden from command line" arg="default.paths.data=/var/lib/grafana"
logger=settings t=2026-08-05T15:14:14.994476624+08:00 level=info msg="Config overridden from command line" arg="default.paths.logs=/var/log/grafana"
logger=settings t=2026-08-05T15:14:14.994498207+08:00 level=info msg="Config overridden from command line" arg="default.paths.plugins=/var/lib/grafana/plugins"
logger=settings t=2026-08-05T15:14:14.994525914+08:00 level=info msg="Config overridden from command line" arg="default.paths.provisioning=/etc/grafana/provisioning"
logger=settings t=2026-08-05T15:14:14.994549539+08:00 level=info msg="Config overridden from command line" arg="default.log.mode=console"
logger=settings t=2026-08-05T15:14:14.994645787+08:00 level=info msg="Config overridden from Environment variable" var="GF_PATHS_DATA=/var/lib/grafana"
logger=settings t=2026-08-05T15:14:14.994679036+08:00 level=info msg="Config overridden from Environment variable" var="GF_PATHS_LOGS=/var/log/grafana"
logger=settings t=2026-08-05T15:14:14.994702952+08:00 level=info msg="Config overridden from Environment variable" var="GF_PATHS_PLUGINS=/var/lib/grafana/plugins"
logger=settings t=2026-08-05T15:14:14.99472541+08:00 level=info msg="Config overridden from Environment variable" var="GF_PATHS_PROVISIONING=/etc/grafana/provisioning"
logger=settings t=2026-08-05T15:14:14.994746701+08:00 level=info msg="Config overridden from Environment variable" var="GF_AUTH_ANONYMOUS_ENABLED=false"
logger=settings t=2026-08-05T15:14:14.994767409+08:00 level=info msg="Config overridden from Environment variable" var="GF_PATHS_HOME=/usr/share/grafana"
logger=settings t=2026-08-05T15:14:14.994787534+08:00 level=info msg="Config overridden from Environment variable" var="GF_PATHS_CONFIG=/etc/grafana/grafana.ini"
logger=settings t=2026-08-05T15:14:14.994808825+08:00 level=info msg=Target target=[all]
logger=settings t=2026-08-05T15:14:14.994851116+08:00 level=info msg="Path Home" path=/usr/share/grafana
logger=settings t=2026-08-05T15:14:14.994873865+08:00 level=info msg="Path Data" path=/var/lib/grafana
logger=settings t=2026-08-05T15:14:14.994896323+08:00 level=info msg="Path Logs" path=/var/log/grafana
logger=settings t=2026-08-05T15:14:14.994922572+08:00 level=info msg="Path Plugins" path="[/var/lib/grafana/plugins /usr/share/grafana/data/plugins-bundled]"
logger=settings t=2026-08-05T15:14:14.994958738+08:00 level=info msg="Path Provisioning" path=/etc/grafana/provisioning
下载windows Prometheus.WindowsExporte
PowerShell 一键安装(首选,不需要手动下载)
右键以管理员身份打开 PowerShell,运行:
powershell
winget install Prometheus.WindowsExporter -e --silent步骤 2:定位 exe 完整路径
powershell
where.exe windows_exporter
PS C:\Users\Administrator> where.exe windows_exporter
C:\Users\Administrator\AppData\Local\Microsoft\WinGet\Links\windows_exporter.exe
PS C:\Users\Administrator>sc.exe create windows_exporter binPath="C:\Users\Administrator\AppData\Local\Microsoft\WinGet\Links\windows_exporter.exe" start= auto
关键点:
写成
sc.exe,避开 PowerShell 别名
start=等号后面必须带空格
启动服务
net start windows_exporter
#查看状态 Get-Service windows_exporter
端口放行
New-NetFirewallRule -DisplayName "windows_exporter_9182" -Direction Inbound -LocalPort 9182 -Protocol TCP -Action Allow
PS C:\Users\Administrator> explorer C:\Users\Administrator\AppData\Local\Microsoft\WinGet\Packages 找到文件,改到其他文件路径
PS C:\Users\Administrator> sc.exe delete windows_exporter
[SC] DeleteService 成功
PS C:\Users\Administrator> sc.exe create windows_exporter binPath="C:\jisnkong\Prometheus.WindowsExporter_Microsoft.Winget.Source_8wekyb3d8bbwe\windows_exporter.exe" start= auto
[SC] CreateService 失败 1072:
指定的服务已标记为删除。
失败的原因,就是,需要重启powershell
安装之后程序存放路径:
C:\jisnkong\Prometheus.WindowsExporter_Microsoft.Winget.Source_8wekyb3d8bbwe\windows_exporter.exe注册系统服务,开机后台启动
命令行使用管理员权限启动
命令提示符 (管理员)
sc create win_exporter binPath= "\"C:\jisnkong\Prometheus.WindowsExporter_Microsoft.Winget.Source_8wekyb3d8bbwe\windows_exporter.exe\" --web.listen-address=:9182" start= autonet start win_exporter 启动服务
net stop win_exporter #停止监控
sc delete win_exporter #删除旧服务重装
sc query win_exporter #查看运行状态
防火墙放行 9182 端口,局域网可访问
cmd
netsh advfirewall firewall add rule name="windows_exporter 9182" dir=in action=allow protocol=TCP localport=9182http://127.0.0.1:9182/metrics

直接先舍弃,windows ,那边,因为网络不同,
直接只先监控这个arm主机,和 上面的docker 容器,
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: always
network_mode: host
volumes:
- /root/docker_data/prom_config:/etc/prometheus
- /root/docker_data/prom_data:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=15d
- --web.enable-lifecycle
environment:
TZ: Asia/Shanghai
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
network_mode: host
user: root
volumes:
- /root/docker_data/grafana_data:/var/lib/grafana
environment:
TZ: Asia/Shanghai
GF_AUTH_ANONYMOUS_ENABLED: false
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: always
network_mode: host
pid: host
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
cadvisor:
image: gcr.nju.edu.cn/cadvisor/cadvisor:v0.47.2
container_name: cadvisor
restart: always
network_mode: host
privileged: true
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro监控架构整体介绍
整套由 4 个 Docker 容器组成,专门给你的 iStore‑OS 软路由做主机 + 容器监控:
Prometheus:时序数据库,采集、存放各项硬件和容器监控数据
Grafana:可视化仪表盘,图表展示 CPU、内存、硬盘、网速、Docker 容器占用
node‑exporter:读取软路由整机系统硬件数据
cAdvisor:专门抓取每一个 Docker 容器资源占用
需要手动创建的文件夹 & 文件
1、目录路径(全部放在 /root/docker_data 下面)
依次执行下面命令新建文件夹
bash
mkdir -p /root/docker_data/prom_config
mkdir -p /root/docker_data/prom_data
mkdir -p /root/docker_data/grafana_data
文件夹作用:
/root/docker_data/prom_config:存放 prometheus 配置文件 prometheus.yml/root/docker_data/prom_data:存放监控历史数据库数据/root/docker_data/grafana_data:存放仪表盘、账号配置
2、必须新建两个文件
① docker‑compose.yml(启动编排文件)
yaml
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: always
network_mode: host
volumes:
- /root/docker_data/prom_config:/etc/prometheus
- /root/docker_data/prom_data:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=15d
- --web.enable-lifecycle
environment:
TZ: Asia/Shanghai
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
network_mode: host
user: root
volumes:
- /root/docker_data/grafana_data:/var/lib/grafana
environment:
TZ: Asia/Shanghai
GF_AUTH_ANONYMOUS_ENABLED: false
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: always
network_mode: host
pid: host
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
cadvisor:
image: gcr.nju.edu.cn/cadvisor/cadvisor:v0.47.2
container_name: cadvisor
restart: always
network_mode: host
privileged: true
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
② prometheus.yml(采集规则配置)
存放路径:/root/docker_data/prom_config/prometheus.yml
yaml
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "alert_rules.yml"
scrape_configs:
#监控prometheus自身状态
- job_name: 'prometheus'
static_configs:
- targets: ['127.0.0.1:9090']
#整机硬件资源监控
- job_name: 'node-exporter'
static_configs:
- targets: ['192.168.6.1:9100']
labels:
group: "linux服务器"
name: "BWH-LA"
ip: "192.168.6.1"
#docker容器监控
- job_name: 'cadvisor'
static_configs:
- targets: ['127.0.0.1:8080']
labels:
group: "linux服务器"
name: "BWH-LA"
ip: "192.168.6.1"
三、逐个镜像详细解释、选用原因
1、prom/prometheus:latest
用途:开源时序型监控数据库,定时抓取各项指标、储存历史数据
为什么选它:
监控体系最主流的采集储存引擎,生态成熟,绝大多数硬件、容器监控组件都适配 Prometheus;latest 代表官方最新稳定版本。
2、grafana/grafana:latest
用途:监控可视化面板,把枯燥的数字做成曲线图、仪表盘
为什么选它:
行业最主流可视化工具,适配 Prometheus,网上有大量现成一键导入的软路由、主机、Docker 监控模板。
3、prom/node‑exporter:latest
用途:读取 Linux 底层硬件信息(CPU、内存、磁盘、温度、网卡网速、负载)
为什么选它:
Prometheus 官方出品的主机采集器,兼容性最好,专门读取 /proc、/sys 系统文件获取硬件参数。
4、gcr.nju.edu.cn/cadvisor/cadvisor:v0.47.2
原版官方地址:
gcr.io/cadvisor/cadvisor南大镜像站只是国内加速镜像,程序本体一模一样
用途:Docker 容器专属监控,可以单独查看每一个容器 CPU、内存、硬盘读写、网速
选用 v0.47.2 原因:
新版部分版本在 iStore‑OS 底层内核容易出现兼容报错
v0.47.2 是大量软路由用户实测稳定的版本
南京大学镜像源国内下载速度很快,不需要翻墙拉取谷歌仓库镜像
四、关键参数通俗讲解
network_mode: host容器直接共用软路由本机网卡,端口直接开放在 192.168.6.1,无需手动映射端口
Prometheus:9090
Grafana:3000
node‑exporter:9100
cadvisor:8080
volumes 挂载
把宿主机文件夹映射进容器,保证重装容器之后配置、监控数据不会丢失
privileged:true
cadvisor 需要很高权限读取 docker 底层数据,必须开启特权模式
restart:always
Docker 开机自动启动,意外崩溃之后自动重启
五、完整部署顺序
创建 3 个文件夹
写入 docker‑compose.yml
写入 prometheus.yml
启动:
docker‑compose up -d浏览器访问
Prometheus:
192.168.6.1:9090Grafana 面板:
192.168.6.1:3000
Grafana
Grafana 用法
Grafana 是一款可视化监控面板工具,本身不会主动采集数据,只负责把各类监控数据源的数据做成曲线图、仪表盘、柱状图、告警。
一、能够对接的数据源(它可以搭配很多软件)
Prometheus(你现在在用):最热门,服务器、软路由、Docker‑容器、硬件资源监控
InfluxDB、TimescaleDB:时序数据库,网速、带宽、设备长时间数据
MySQL、PostgreSQL:数据库的数据图表展示
Loki:日志可视化,查看 Docker 容器日志、系统日志
Redis、MQTT、Zabbix、Home‑Assistant:智能家居、路由器、传感器、宽带设备
/今天是添加prometherus'
"

点击左侧的Connections 下的 add new connection 就是你需要监控的元素了,,
Prometheus或者是在搜索框内搜索你所需的,数据源即你想监控的
选择普罗米修斯之后,

选择你的数据源了,add new data source

在这个URL 里添加,
下滑选择

Save & test
会出现保存成功的
然后去选择你需要面板,也可以自己手搓,

选择左侧的Dashboards ,点开New 下拉菜单的Import
如下图

然后选择load
我的是8191 软路由,
、主流主机面板对比,方便你挑选
表格
面板 ID 特点
8191 界面清爽、自带主机下拉筛选,软路由非常适配
1860(Node‑Exporter‑Full) 功能最全、指标最多,全网最通用老牌面板
11074 极简轻量化,低配机器不容易卡顿
你现在已经在用 8191 就完全够用,日常查看软路由硬件资源非常合适。
二、全套分类‑适配你整套环境的面板清单
1、Docker 容器监控(cadvisor)
14282(首选):每个容器独立 CPU、内存、网速、磁盘读写、容器运行状态
893:简易容器看板,适合只想简单看占用
2、软路由 iStore‑OS / OpenWrt 专用
13616:WAN 宽带流量、网速曲线图
17076:系统进程、TCP 连接数、负载详情
3、Prometheus 本身运行状态监控
3662:查看采集任务是否掉线、采集延迟、数据库存储空间
4、后续拓展(以后可以加装组件)
Loki 日志面板:13586,查看 docker 容器日志
网速带宽监控:10973
内网部署Prometheus 和grafana 出错,修正 Grafana简单用法
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法