node_exporter可直接采集linux核心指标,无需依赖中间件,通过读取/proc、/sys等内核接口覆盖cpu、内存、磁盘、网络等维度;需按架构下载对应版本,非root用户运行,配置prometheus正确抓取/metrics接口。

用 node_exporter 就能采集 Linux 系统核心指标,它不依赖 MySQL 或 Redis 那类中间件 exporter,而是直接读取 /proc、/sys 等内核接口,覆盖 CPU、内存、磁盘、网络、文件系统、负载等全部基础维度。
下载与解压要对版、对架构
别从 GitHub 页面右键复制链接——容易漏路径导致 404。当前稳定版是 v1.6.1,AMD64 服务器执行:
- wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
- tar -xvzf node_exporter-1.6.1.linux-amd64.tar.gz -C /opt/
- ln -sf /opt/node_exporter-1.6.1.linux-amd64 /opt/node_exporter
ARM 设备(如树莓派)必须换 linux-arm64 后缀,硬套 amd64 会报 cannot execute binary file。
启动必须非 root,权限要收严
root 运行不仅触发警告,还可能放大安全风险或掩盖 collector 权限问题。正确做法是:
- 创建专用用户:useradd --no-create-home --shell /bin/false node_exporter
- 授权目录:chown -R node_exporter:node_exporter /opt/node_exporter
- 设可执行权限:chmod 755 /opt/node_exporter/node_exporter
- systemd 服务中明确指定 User=node_exporter
常见 collector 如 --collector.systemd 或 --collector.textfile,在非 root 下才能暴露真实权限问题。
关键指标就这几个,不用全开
node_exporter 默认已启用最常用采集器,无需额外参数就能拿到核心数据:
- CPU 使用:node_cpu_seconds_total{mode="user|system|iowait|idle"}(配合 rate() 计算利用率)
- 内存剩余:node_memory_MemAvailable_bytes
- 磁盘使用率:1 - node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}
- 网络流入/流出:node_network_receive_bytes_total、node_network_transmit_bytes_total
- 系统负载:node_load1、node_load5、node_load15
像 --collector.bonding 或 --collector.wifi 这类冷门采集器,没业务需求就别开,避免无谓开销。
Prometheus 配置要指向 exporter,不是本机
抓取目标是 node_exporter 的 /metrics 接口,不是 Linux 本身。典型配置如下:
- job_name: 'linux-hosts'
- static_configs: - targets: ['192.168.1.100:9100'](注意填 exporter 所在 IP 和端口)
- scrape_timeout: 10s(默认 5s 偏短,尤其在高负载主机上易超时)
验证是否生效:curl http://192.168.1.100:9100/metrics | head -20,有大量 node_* 开头的指标即成功。











