惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
U
Unit 42
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
博客园 - 【当耐特】
云风的 BLOG
云风的 BLOG
博客园 - Franky
博客园 - 聂微东

裴先生笔记

[通胀十年]“消费驱动、自由化”转向“安全驱动、再工业化“ - 裴先生笔记 Jenkins + Docker 全流程实战(前后端构建 & 常见问题) 查看 MYSQL 库大小、表大小、索引大小 - 裴先生笔记 如何查询 Hive表 stored as 类型 [通胀十年]超级债务危机 - 裴先生笔记
轻量级多节点系统监控方案实战:Node Exporter + Prometheus ...
2025-06-19 · via 裴先生笔记

共计 1701 个字符,预计需要花费 5 分钟才能阅读完成。

我有多台主机(2 台斐讯 N1、2 台云服务器、1 台 NAS 和 1 台内网主机),想统一进行资源监控。目标是:

  • 轻量
  • 开源免费
  • 支持 Docker
  • 支持集中展示所有主机状态

本文记录了实践 Prometheus + Grafana 方案的全过程,并推荐了更简单的替代方案。


docker run -d \
  --name node-exporter \
  -p 9100:9100 \
  --pid="host" \
  -v "/:/host:ro,rslave" \
  prom/node-exporter \
  --path.rootfs=/host
  • --pid="host":使用宿主机的 PID 命名空间
  • -v "/:/host:ro,rslave":挂载根目录为只读
  • --path.rootfs=/host:修正容器路径指向宿主机

编辑 prometheus.yml,配置多个监控节点:

global:
  scrape_interval: 5s

scrape_configs:
  - job_name: 'node_exporters'
    static_configs:
      - targets: ['10.72.93.39:9100']
        labels:
          instance: 'local-mac'
      - targets: ['10.72.93.158:9100']
        labels:
          instance: 'n1-1'
      - targets: ['10.72.93.240:9100']
        labels:
          instance: 'n1-2'

每个 target 单独配置,才能自定义 instance 名称。

  1. 安装官方 Dashboard 模板 ID:1860(Node Exporter Full)
  2. 支持多节点数据自动加载
  3. 选择 “All” 可集中查看所有主机
  • CPU 使用率:
    100 - avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100
  • 内存使用率:
    (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
  • 系统负载:
    node_load1{} by(instance)

  • invalid reference format:换行符 \ 后面带空格,粘贴整段命令可解决
  • –pid=host:未找到命令:可能逐行执行,确保是完整 docker run 命令

支持集中可视化,界面美观,部署简单。

docker run -d \
  --name=netdata \
  -p 19999:19999 \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /etc/os-release:/host/etc/os-release:ro \
  --cap-add=SYS_PTRACE \
  --security-opt apparmor=unconfined \
  --restart unless-stopped \
  netdata/netdata

注册 Netdata Cloud 后集中管理所有主机。

docker run -d \
  --name glances \
  -p 61208:61208 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --pid host \
  nicolargo/glances:latest-full \
  glances -w

适合单节点查看,极其轻量。


方案 集中展示 部署难度 扩展性 适合人群
Prometheus + Grafana 中等偏高 ⭐⭐⭐⭐⭐ 进阶用户、企业使用
Netdata Cloud 超简单 ⭐⭐ 个人、轻量级场景
Glances ❌(单机) 非常简单 临时运维查看

最终,我更推荐使用 Netdata + Netdata Cloud 来快速部署集中监控,如果你未来有定制化需求,再切换到 Prometheus 方案也不迟。