Prometheus Docker - 连接到外部机器

Posted

技术标签:

【中文标题】Prometheus Docker - 连接到外部机器【英文标题】:Prometheus Docker - Connecting to external machine 【发布时间】:2020-08-19 23:01:20 【问题描述】:

我有两台虚拟机,一台托管 Prometheus、Grafana 等 192.15.15.10,另一台托管来自一系列 Docker 容器的应用程序 192.15.15.20

我已将 Docker daemon.json 配置为包含:


   "metrics-addr" : "127.0.0.1:9323",
   "experimental" : true

我的Prometheus.yml 现在包含:

- job_name: 'docker'
  static_configs:
  - targets: ['192.15.15.20:9323']

这是试图到达另一台机器上的指标端点。但是,由于此配置是在 docker 容器内执行的,因此容器不知道该 IP 并且无法访问它(它不在 docker 网络上)。

我怎样才能做到这一点?是否有代理设置或我可以使用的东西,或者以某种方式使用 docker 网关 IP?

【问题讨论】:

虚拟机是否能够相互访问? @Stefano 是的,我可以卷曲每个虚拟机。 如果执行nc -w5 192.15.15.20 9323 | echo $?,是否返回0? @Stefano 是的,没有路由到主机 如果没有路由到主机,你怎么能 curl 虚拟机? 【参考方案1】:

问题是你的 docker 只在 localhost 上监听。

metrics-addr 更改为收听0.0.0.0:9323

【讨论】:

以上是关于Prometheus Docker - 连接到外部机器的主要内容,如果未能解决你的问题,请参考以下文章

从外部连接到 docker 容器中的 Postgresql

无法从外部 docker 连接到 dockerized redis 实例

我需要一个可以使用 php 连接到外部 MYSQL 数据库的 docker 映像

无法从 Docker 容器连接到外部 SQL Server

sh 从外部连接到Docker容器中的Postgresql

从 docker 主机外部远程连接到在 docker 容器上运行的 oracle 数据库