Prometheus 收集 Linux 系统指标依赖 node_exporter,它直接读取 /proc、/sys 等内核接口,开箱即用获取 CPU、内存、磁盘、网络等基础数据;需按架构下载二进制包、创建非 root 用户、用 systemd 启动,默认监听 :9100/metrics;Prometheus 通过 scrape_configs 配置 targets 抓取,推荐抓取间隔 15s;关键指标如 CPU 利用率、可用内存、磁盘使用率、网络流量、TCP 连接状态均可通过内置指标计算;注意路径为 /metrics(无尾部斜杠)、避免误禁默认采集器、Grafana 可导入官方 Dashboard(ID:1860 或 8919)。

用 Prometheus 收集 Linux 服务器系统指标,核心是靠 node_exporter 这个官方 Exporter,它直接读取 /proc、/sys 等内核接口,无需中间件,开箱就能拿到 CPU、内存、磁盘、网络等全部基础数据。
安装并运行 node_exporter
-
下载对应架构的二进制包(别用 GitHub 页面右键复制链接,容易 404):
# AMD64 服务器(主流 x86_64) 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 运行:
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),默认监听:9100/metrics。
Prometheus 配置抓取目标
在 prometheus.yml 的 scrape_configs 中添加:
- job_name: 'linux-servers'
scrape_interval: 15s
static_configs:
- targets: ['192.168.1.100:9100', '192.168.1.101:9100']scrape_interval: 15s是合理值:太短(如 1s)易压垮/proc;太长(>30s)可能漏掉瞬时丢包或高负载事件。修改后执行
curl -X POST http://localhost:9090/-/reload热加载,或重启 Prometheus。在 Prometheus Web 界面(
http://<prom-ip>:9090/targets)确认状态为 UP。
关键指标怎么查、怎么用
node_exporter 默认已启用最常用采集器,不用额外参数就能拿到:
CPU 使用率
rate(node_cpu_seconds_total{mode="user"}[5m])+rate(node_cpu_seconds_total{mode="system"}[5m])
再除以 CPU 核心数,就是实际利用率。可用内存
node_memory_MemAvailable_bytes(比MemFree更准确,含 cache 可回收部分)磁盘使用率
1 - node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}网络收发流量
rate(node_network_receive_bytes_total[5m])和rate(node_network_transmit_bytes_total[5m])TCP 连接状态
node_netstat_Tcp_CurrEstab(当前 ESTABLISHED 连接数)rate(node_netstat_TcpAttemptFails[5m])(连接失败速率,排查网络或端口问题)
注意事项和常见避坑点
- 不要手动加
--no-collector.*屏蔽默认采集器,除非真有性能顾虑;像--collector.netdev、--collector.netstat默认就开着,网络指标天然可用。 - 指标路径是
http://<host>:9100/metrics,不是/metrics/或其他后缀,结尾斜杠错会导致 404。 - 如果用 Grafana 展示,推荐导入官方 Dashboard(ID:1860 或 8919),开箱即用,覆盖所有维度。
- 所有采集器都基于内核接口,不依赖 MySQL、Redis、etcd 等外部服务——它们属于另一层监控范畴。
不复杂但容易忽略。


















