在这里插入图片描述

你是不是也遇到过这些糟心事:

✅ 案例 1:运维小哥小李,公司服务器分散在机房和异地办公点,之前只能蹲在机房看监控,出差时服务器 CPU 飙到 90% 都不知道,回来被老板骂到狗血淋头;用了 Prometheus+Node Exporter+cpolar 后,掏出手机就能看所有服务器的 CPU、内存、磁盘数据,告警信息实时弹到微信,出差也能稳如老狗。

✅ 案例 2:小公司 IT 老王,预算只够买两台 Linux 服务器,想做跨主机监控但没公网 IP,找运营商申请要等半个月还得加钱;用 cpolar 内网穿透,5 分钟把内网的 Node Exporter 服务暴露到公网,Prometheus 远程抓取数据,零成本搞定远程监控,老板直夸他会省钱。

✅ 案例 3:技术宅小张,家里搭了 Linux 实验机,想在外喝咖啡时调试监控配置,结果只能远程控制家里电脑才能看;用 cpolar 配个固定二级子域名,手机浏览器输入地址就能访问 Node Exporter,随时随地折腾实验,再也不用被绑在家里。

在这里插入图片描述

软件名称

核心工具:Prometheus(监控核心)
Node Exporter(Linux 系统指标采集)
cpolar(内网穿透)

操作系统支持

  • Prometheus:支持 Linux(CentOS、Ubuntu 等)、Windows、macOS,本次实战基于 CentOS7;
  • Node Exporter:仅支持 Linux 系统(全版本兼容,本次用 CentOS7);
  • cpolar:支持 Linux(CentOS、Ubuntu、Debian 等)、Windows、macOS、群晖等,本次基于 CentOS7 部署。

软件介绍

  • Prometheus:就像监控界的 “全能管家”,不用守在服务器旁,能主动 “拉取” 服务器的各项数据,还能设置告警规则,CPU / 内存超标就提醒,是 Linux 服务器监控的 “扛把子”;
  • Node Exporter:Prometheus 的 “专属采集员”,轻量到几乎不占服务器资源,能把 Linux 服务器的 CPU、内存、磁盘 I/O、网络流量等指标,打包成 HTTP 接口的形式供 Prometheus 抓取,没有它,Prometheus 就是 “巧妇难为无米之炊”;
  • cpolar:内网穿透界的 “直通车”,不用折腾公网 IP、域名备案,一键就能把内网的 Node Exporter 服务暴露到公网,让异地的 Prometheus 轻松抓到数据,堪称 “内网服务出圈神器”。

在这里插入图片描述

Prometheus+Node Exporter 的出色功能

  1. Prometheus:监控 + 告警一把抓

    • 跨主机拉取数据:不管被监控服务器在哪,只要能通,就能定时抓取 Node Exporter 的指标,不用在每台服务器装一堆软件;
    • 灵活告警规则:想设 “CPU 使用率超 10% 告警” 还是 “内存占满告警”,写几行简单规则就能实现,告警时长、级别都能自定义;
    • 数据可视化:自带简单面板,能直观看到服务器指标变化,后续加 Grafana 还能做更炫酷的图表。
  2. Node Exporter:轻量又全面的 “数据采集器”

    • 零侵入采集:安装简单,不修改服务器核心配置,跑起来只占几十 M 内存;
    • 指标全覆盖:CPU、内存、磁盘、网络、进程……Linux 服务器的 “一举一动” 都能采集到,没有遗漏;
    • 系统服务化:注册成 Linux 系统服务,开机自启,不用每次手动启动,运维省心 100 倍。

实用场景

场景 1:中小企业多服务器集中监控
  • 痛点:服务器分布在不同办公区,没有公网 IP,监控工具只能本地看,运维人员来回跑,效率低还容易漏告警;
  • 爽点:在每台服务器装 Node Exporter,用 cpolar 把内网服务暴露到公网,监控主机的 Prometheus 通过 cpolar 公网地址统一抓取所有服务器数据,坐在办公室就能看全公司服务器状态,告警信息实时推送,再也不用跑断腿。
场景 2:个人开发者 / 技术爱好者实验环境远程调试
  • 痛点:家里的 Linux 实验机只有内网 IP,外出时想调试监控配置、查看指标数据,只能远程控制家里电脑,操作繁琐;
  • 爽点:给家里的 Node Exporter 配 cpolar 固定二级子域名,在外用手机、笔记本就能直接访问 Node Exporter 接口,修改 Prometheus 配置后实时验证效果,随时随地折腾技术,效率拉满。

在这里插入图片描述

cpolar 内网穿透技术带来的便利

  1. 不用求运营商,零成本拿 “公网通道”

    传统远程监控需要申请公网 IP,要么等审批、要么加钱,cpolar 一键安装后,直接给内网的 Node Exporter 分配公网地址,不管是在家、公司还是机房,只要能上网,Prometheus 就能远程抓取数据,省了公网 IP 的钱和时间。

  2. 固定地址不翻车,监控不中断

    cpolar 支持保留二级子域名,不用每次重启都换公网地址,避免 Prometheus 配置频繁修改;不管是临时调试还是长期监控,固定地址都能保证监控链路稳定,再也不用因为地址变了重新配置。

  3. 操作傻瓜化,技术小白也能上手

    不用懂端口映射、防火墙配置、域名备案这些复杂操作,cpolar 有可视化管理界面,点几下鼠标就能创建隧道、配置域名,运维新手也能 5 分钟搞定内网服务暴露,把精力放在监控本身,而不是网络配置上。

  4. 跨网络无障碍,异地监控超丝滑

    不管是出差在外用 4G 网络,还是客户现场用酒店 WiFi,只要能访问互联网,就能通过 cpolar 的公网地址查看服务器监控数据、调整告警规则,真正实现 “服务器跟着人走,监控不打烊”。

  5. 安全不打折,内网服务不裸奔

    cpolar 的隧道访问有身份验证,不用担心内网的 Node Exporter 服务被陌生人访问;相比直接开放服务器端口到公网,cpolar 相当于给内网服务加了 “安全门”,既方便访问又保证安全。

在这里插入图片描述

总结

Prometheus+Node Exporter 本来就是 Linux 跨主机监控的 “黄金组合”,能精准采集、灵活告警,但受限于内网环境,远程访问一直是老大难;而 cpolar 就像给这个组合装了 “翅膀”,不用折腾复杂的网络配置,就能让内网的监控服务轻松 “飞” 到公网。

不管是中小企业运维、个人开发者,还是技术爱好者,用这套组合既能低成本实现跨主机监控,又能随时随地访问监控数据,既解决了 “看得见” 的问题,又解决了 “看得远” 的问题。从安装 Node Exporter 采集数据,到配置 Prometheus 拉取监控指标,再到 cpolar 打通内网到公网的通道,整个流程简单易上手,堪称 “零门槛搭建远程服务器监控” 的最优解。

看得见又看得远当然是超好的组合喽。看下面的教程安装起来吧。

本文将以最简拓扑为例:一台主机运行Prometheus作为监控中心,另一台主机运行Node Exporter作为被监控端,手把手演示如何配置网络、服务发现与采集任务,实现跨主机的Linux系统指标监控。无论你是DevOps工程师、SRE,还是正在搭建个人实验环境的技术爱好者,这套方案都是构建可观测性基础设施的第一步。

image-20251118165942514

1.Centos7安装node_exporter实现监控部署

安装前提:两台虚拟机(一台监控另一台数据)

  • 监控主机ip:192.168.42.140
  • 被监控主机ip:192.168.42.145

监控主机需要安装:

  • prometheus
  • alertmanager

被监控主机需要安装:

  • node_exporter

安装prometheus和alertmanager可以参考这个两篇教程:监控不再局域网!Cpolar 让 Prometheus 走出内网限制! - cpolar 极点云官网

告别宕机!零基础搭建服务器监控告警系统!小白也能学会!

被监控主机使用命令安装node_exporter:

curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.2.0/node_exporter-1.2.0.linux-amd64.tar.gz

67d94e9bf4d52e5bf630219002f5fee2

下载完后,解压:

tar xvfz node_exporter-1.2.0.linux-amd64.tar.gz

50e525519c2f5818aecc5e3f4364cfd0

将名为 node_exporter-1.2.0.linux-amd64 的目录,移动到 /opt 目录下,并重命名为 node_exporter:

 mv node_exporter-1.2.0.linux-amd64 /opt/node_exporter

93ff7acd392aadd752a4d0ddd8c3ac9b

使用 vi 编辑器,创建或修改一个 systemd 服务配置文件,以便将 node_exporter 注册为一个系统服务,实现开机自启、状态管理(如 start/stop/status)等功能:

sudo vi /etc/systemd/system/node_exporter.service

将 node_exporter 注册为一个 Linux 系统服务,以专用用户身份运行,确保在网络就绪后自动启动,并支持通过 systemctl 命令进行管理:

[Unit]
Description=Node Exporter
Documentation=https://github.com/prometheus/node_exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/opt/node_exporter/node_exporter

[Install]
WantedBy=default.target

a52a219f4376276f0b149cb067daae74

创建一个名为 node_exporter 的系统用户,不创建家目录、不允许登录,专用于运行 node_exporter 服务:

useradd --no-create-home --shell /bin/false node_exporter

984dbbcd4abf705132294920d9afd0c3

通知 systemd 重新加载所有服务配置文件:

 systemctl daemon-reload
 systemctl enable node_exporter

cf4a78285e92a6f1563c4834ca03bc2e

启动后,ip+9100即可启动node_exporter:

1ea5b3008fb70f7dd5e120ddb83d1e55

2.Prometheus配置node_exporter

进入prometheus的安装目录,编辑prometheus.yml:

vi prometheus.yml

617b7c63988725ef8a361a4e7afb4b4a

加入被监控主机ip+端口,如下,注意格式(不然无法启动成功):

      - targets: ["192.168.42.145:9100"]
        labels:
          app: "node_exporter"

image-20251118153325140

重启Prometheus:

systemctl restart prometheus

f69eab54844fe0c568b150191e847712

prometheus 成功抓取了node_exporter指标数据:

image-20251118153513799

测试了一下,若是未启动端口,是无法成功抓取的!

6cd3706ba634cc189d2f4abcbd9f3049

接下来,我们利用内网穿透工具cpolar将 node_exporter 的 9100 端口安全暴露至公网,实现远程可视化监控。

3.配置alertmanager监控主机的数据

配置alertmanager告警:

进入prometheus的安装目录,编辑prometheus.yml:

vi prometheus.yml

如图填写:image-20251118155320035

编辑3.yml添加下面信息监控192.168.42.145的内存和CPU使用率,超过10%就告警:

groups:
  - name: node-alerts
    rules:
      # CPU 使用率 > 10% 持续10s
      - alert: 高CPU使用率
        expr: 100 - (avg by (instance, job) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 10
        for: 10s
        labels:
          severity: warning
        annotations:
          summary: "高CPU使用 {{ $labels.instance }}"
          description: "CPU大于10% (current value: {{ $value }}%) 超过10s"

      # 内存使用率 > 10%
      - alert: 内存使用率
        expr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 10
        for: 10s
        labels:
          severity: warning
        annotations:
          summary: "内存使用率过高 {{ $labels.instance }}"
          description: "内存使用率大于10% (current value: {{ $value }}%) 超过10s"

重启Prometheus:

systemctl restart prometheus

f69eab54844fe0c568b150191e847712

登到prometheus网页后,可以看到我们的告警添加成功啦:

image-20251118155940609

告警数据也成功显示啦:

image-20251118160058667

这样我们成功利用node_exporter监控到了另一台主机的数据:

4.安装cpolar随时随地开发(被监控主机安装)

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

官网在此:https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

6fcd3d90953ab77775b2e3ab5c2a9111

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://192.168.42.145:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

5.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:node_exporter,注意不要与已有的隧道名称重复

  • 协议:http

  • 本地地址:9100

  • 域名类型:随机域名

  • 地区:选择China TOP

image-20251118163042192

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20251118163114743

访问成功。

image-20251118163136732

6.将node_exporter暴露给Prometheus进行远程抓取

返回到监控主机,编辑prometheus配置文件:

vi prometheus.yml

Prometheus可以通过1a0f75b.r2.cpolar.top这个公网地址访问到运行在192.168.42.145:9100的node_exporter服务,从而抓取系统指标。

      - targets: ["1a0f75b.r2.cpolar.top"]
        labels:
          app: "node_exporter"

image-20251118163414089

重启Prometheus:

systemctl restart prometheus

f69eab54844fe0c568b150191e847712

登到prometheus网页后,可以看到我们的抓取成功:

image-20251118163704452

7.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

bb57af88579d81253d911fe4abd7fe01

点击左侧的预留,选择保留二级子域名,地区选择china Vip,然后设置一个二级子域名名称,我这里演示使用的是nodee,大家可以自定义。填写备注信息,点击保留。

image-20251118165553026

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道node_exporter,点击右侧的编辑

image-20251118165625022

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China TOP

点击更新

image-20251118165657789

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20251118165716130

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的node_exporter页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20251118165740885

至此,我们完成了远程服务器监控搭建。

结尾

本文围绕“跨主机监控”这一典型运维场景,详细演示了如何使用 Prometheus + Node Exporter 构建一个轻量级但高效的 Linux 系统指标监控体系。

我们采用分离式架构:

  • 在被监控主机上部署 Node Exporter,用于采集 CPU、内存、磁盘、网络等系统级指标,并通过 HTTP 接口暴露;
  • 在独立的监控主机上部署 Prometheus,通过配置 scrape_configs 主动拉取远程主机的指标数据。

通过合理的网络连通性设置、Prometheus 静态服务发现配置以及基础验证步骤,成功实现了从一台主机对另一台 Linux 服务器的实时性能监控。该方案不仅结构清晰、资源占用低,还为后续集成 Grafana 可视化、Alertmanager 告警 或扩展至多节点监控集群奠定了坚实基础。

这种“中心监控 + 边缘采集”的模式,正是现代可观测性架构的核心思想之一。掌握它,是迈向自动化运维与云原生监控的重要一步。

感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐