接入linux主机监控指标到prometheus的核心步骤是:部署node_exporter并配置systemd服务,再在prometheus.yml中添加scrape_configs;需确保node_exporter以非root用户运行、监听全网接口,且prometheus能通过http拉取/metrics数据。

直接把 Linux 主机的 CPU、内存、磁盘、网络等指标接入 Prometheus,核心就两步:在目标主机上跑好 node_exporter,再让 Prometheus 主动去拉它的数据。不复杂,但几个关键点没配对,服务就“看不见”指标。
一、在被监控主机上部署 node_exporter
node_exporter 是个单二进制文件,轻量、无依赖,但必须以非 root 用户运行,且要确保外部能访问其 HTTP 接口。
- 下载最新版(如 v1.8.2):
curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz - 解压并提取二进制文件到标准路径:
tar -xzf node_exporter-*.tar.gzsudo cp node_exporter-*/node_exporter /usr/local/bin/ - 创建专用用户,避免权限滥用:
sudo useradd --no-create-home --shell /bin/false node_exportersudo chown node_exporter:node_exporter /usr/local/bin/node_exporter - 若坚持用默认端口 9100(需绑定特权端口),加 cap 权限:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/node_exporter
二、配置 systemd 服务并启动
不能用 & 后台运行,必须走 systemd 管理,才能保证开机自启、崩溃自拉起。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 新建服务文件:
sudo vim /etc/systemd/system/node_exporter.service - 内容关键字段必须包含:
User=node_exporterGroup=node_exporterExecStart=/usr/local/bin/node_exporter --web.listen-address=:9100(注意是:9100,不是127.0.0.1:9100,否则 Prometheus 拉不到)Restart=on-failure - 启用并启动:
sudo systemctl daemon-reloadsudo systemctl enable --now node_exporter - 验证是否监听全网接口:
ss -tlnp | grep :9100应看到*:9100;再从 Prometheus 主机执行curl http://被监控IP:9100/metrics能返回文本即成功
三、在 Prometheus 中添加采集任务
Prometheus 是“拉模型”,它需要知道去哪里拉、拉什么、怎么拉。
- 编辑
prometheus.yml,在scrape_configs下新增一个 job:- job_name: "linux-servers"static_configs:- targets: ["192.168.1.100:9100", "192.168.1.101:9100"] - 如果目标多,推荐用文件服务发现(更易维护):
新建/opt/prometheus/targets.yml,内容为:- labels: {job: "node"}targets: ["192.168.1.100:9100", "192.168.1.101:9100"]
然后在 prometheus.yml 中改用:file_sd_configs:- files: ["/opt/prometheus/targets.yml"] - 检查配置语法:
/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --dry-run - 热加载配置(无需重启):
curl -X POST http://localhost:9090/-/reload
四、验证与常用指标示例
打开 Prometheus Web 界面(http://Prometheus_IP:9090),在表达式框输入以下指标即可查到对应数据:
-
node_cpu_seconds_total{mode="idle"}→ CPU 空闲时间累计值(需配合 rate() 计算使用率) -
node_memory_MemAvailable_bytes→ 当前可用内存字节数 -
node_filesystem_avail_bytes{mountpoint="/"}→ 根分区可用空间 -
node_network_receive_bytes_total{device="eth0"}→ 网卡入向总流量
确认目标状态页(Status → Targets)中对应 job 显示 UP,且最近抓取时间不断更新,说明已稳定接入。










