首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头集装箱中的Prometheus无法达到Spring的应用

码头集装箱中的Prometheus无法达到Spring的应用
EN

Stack Overflow用户
提问于 2018-09-17 21:15:03
回答 2查看 2.3K关注 0票数 5

我有一个Spring应用程序,它在本地的9000端口上运行(而不是在容器中)。该应用程序配置了Prometheus千分尺作动器,其全部统计数据可通过URL localhost:9000/致动器/prometheus获得。

我使用以下命令在Docker容器中运行Prometheus:

代码语言:javascript
复制
docker run --name spring_boot_prometheus -p 9090:9090 -p 9000:9000 -v /Users/xyz/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

prometheus.yml

代码语言:javascript
复制
global:
  scrape_interval:     5s
  evaluation_interval: 5s
scrape_configs:
- job_name: 'users-app'
  metrics_path: '/actuator/prometheus'
  static_configs:
  - targets: ['localhost:9000']

命令docker ps返回以下内容:

代码语言:javascript
复制
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
1568ec9e8353        prom/prometheus     "/bin/prometheus --c…"   10 seconds ago      Up 9 seconds        0.0.0.0:9000->9000/tcp, 0.0.0.0:9090->9090/tcp   spring_boot_prometheus

UI表示prometheus无法连接到spring引导端点,但它是可用的。如果我单击端点,它将我重定向到1568ec9e8353:9000而不是localhost:9000

我怎样才能解决这个问题?

感谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-13 14:25:54

prometheus.yml,中,而不是localhost:9000中,输入容器的特定名称:spring_boot_prometheus:9000

Docker最佳实践是使用容器名称而不是容器IP地址。

票数 3
EN

Stack Overflow用户

发布于 2018-09-17 21:28:08

对于prometheus码头集装箱,“localhost”的意思是本地的。所以普罗米修斯试图在集装箱内连接到9000端口。这不管用。

此外,在prometheus容器中,据我从您的帖子中所知,它不会在端口9000上运行服务。

如果两个应用程序都位于码头容器中,则为

目标容器在您的码头安装中有自己的IP地址。典型的172.17.y.z.

一个简单的码头网络是必要的,在此之后,您可以运行两个容器:

代码语言:javascript
复制
$ docker network create mynet

$ docker run --name foo --net mynet img

$ docker run --name bar --net mynet img

在此发现:forums.docker.com

如果您的机器上运行的服务(9000)没有停靠:

这不是一个标准用例。

阅读这里如何设置它。

您必须获得物理计算机的IP地址。例如,192.168.0.10。这就是普罗米修斯的目标。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52375789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档