不可达客户端Prometheus向AWS端中央主Prometheus推送指标方案咨询
Prometheus跨网监控可行解决方案
核心问题排查
你当前配置无法生效的根本原因是原生Prometheus仅支持发送remote write请求,不支持作为remote write的接收端,因此直接将客户端从Prometheus的remote write地址指向主Prometheus的接口无法正常工作,和Graphite适配器无关。
方案1:Prometheus生态原生方案(无额外数据库依赖,推荐)
该方案不需要双方互相开放入站权限,仅需要客户端侧允许访问AWS侧组件的公网出站权限即可:
- 在AWS侧主Prometheus同可用区部署Thanos Receiver组件,该组件原生兼容Prometheus remote write协议,可作为接收端接收来自远端的指标推送,指标存储后可直接同步给主Prometheus,也可直接对接Grafana做可视化
- 客户端侧的从Prometheus启动时添加
--enable-feature=agent参数开启Agent模式,关闭本地存储,仅保留指标采集和远程推送能力,大幅降低客户端资源占用 - 修复客户端现有配置错误:
- 配置文件中的
gloabal字段拼写错误,修改为global - 将
remote_write的url修改为Thanos Receiver的公网接收地址,格式为http://<Thanos Receiver公网地址>:19291/api/v1/receive - 你当前配置的
write_relabel_configs依赖的_node_标签默认不存在,需要在scrape_configs的node job下添加自定义标签,参考配置:
scrape_configs: - job_name: 'node' scrape_interval: 5s static_configs: - targets: ['localhost:9100'] labels: _node_: client-01 # 替换为你的客户端标识,用于后续指标过滤 - 配置文件中的
- AWS侧安全组仅需要开放Thanos Receiver的19291端口给客户端的公网IP即可,无需主动访问客户端侧网络,完全符合你的权限要求。
方案2:Prometheus+Telegraf+InfluxDB方案适配说明
该组合完全适配你的场景,落地逻辑如下:
- 在客户端侧本地部署Telegraf,开启Telegraf的
prometheus_listener输入插件,作为remote write的接收端接收从Prometheus推送的指标 - Telegraf配置输出插件将指标推送到AWS侧部署的InfluxDB实例,客户端仅需要开放访问InfluxDB公网地址的出站权限即可
- 主Prometheus可配置scrape job从InfluxDB拉取指标,也可直接用Grafana对接InfluxDB做可视化
- 该方案优势是组件成熟度高,入门资料丰富,适合新手快速落地;劣势是额外引入两个组件,会增加后续运维成本。
现有配置优化建议
- 主Prometheus当前配置的scrape job指向的是内网地址10.0.4.175,该配置仅能采集同内网的Prometheus指标,不需要保留,直接对接Thanos Receiver或InfluxDB即可
- 客户端如果不需要5s这么高的采集频率,可适当调大scrape_interval,减少数据传输量和资源占用
内容的提问来源于stack exchange,提问作者Uzmasaman Chanderki
相关产品推荐
相关产品推荐

