使用 Exporter + Prometheus Pushprox(高级用法)

一、Pushprox 方案简介

Pushprox 是由 Prometheus 社区维护的一个反向代理工具,解决如下问题:

  • 设备(如云主机、IoT 设备等)没有公网 IP,Prometheus 服务器无法直接拉取其 metrics。
  • 但这些设备可以主动访问 Prometheus 服务器。

工作原理

  • Pushprox Proxy:部署在 Prometheus 服务器侧,Prometheus 配置为抓取 Proxy。
  • Pushprox Client:部署在每台被监控设备上,与本地 exporter(如 node-exporter)配合运行,主动连接 Proxy 并建立长连接,等待 Prometheus 的抓取请求。
  • 拉模式变通:Prometheus 通过 Proxy 间接拉取设备上的 exporter 指标,设备无需公网 IP。

二、部署步骤

1. 下载 Pushprox

GitHub 地址:https://github.com/prometheus-community/PushProx

可以直接下载二进制或用 Docker 部署。

2. 在 Prometheus 服务器上部署 Proxy

docker run -d --name pushprox-proxy -p 8080:8080 prom/pushprox-proxy
  • 8080 是 Proxy 的监听端口。

3. 在每台被监控设备上部署 Client

假设 node-exporter 已经在本地 9100 端口运行。

下载 pushprox-client 二进制(或用 Docker):

docker run -d --name pushprox-client \ --network=host \ prom/pushprox-client \ --proxy-url="http://<prometheus服务器IP>:8080" \ --listen-address=":9100" \ --targets="localhost:9100"

参数说明:

  • --proxy-url:指向 Proxy 的地址(Prometheus 服务器 IP 和端口)。
  • --targets:本地 node-exporter 的地址。

4. Prometheus 配置抓取 Proxy

在 prometheus.yml 增加 job:

scrape_configs: - job_name: 'pushprox' proxy_url: "http://pushprox-proxy:8080/proxy" static_configs: - targets: ['<client-identifier>']
  • <client-identifier> 是每个 client 连接 Proxy 时注册的名字,通常可自定义。

5. 访问流程

  1. Prometheus 访问 Proxy。
  2. Proxy 通过与 Client 的长连接,将请求转发到设备上的 node-exporter。
  3. Client 获取本地 metrics,返回给 Proxy,再返回给 Prometheus。

三、优缺点

  • 优点:无需公网 IP,支持大规模设备,安全性高。
  • 缺点:部署稍复杂,需维护 Proxy 和 Client 的连接。

参考资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值