繁体   English   中英

在Docker中更新Prometheus主机/端口

[英]Update Prometheus Host/Port in Docker

问题: 如何将Prometheus容器的主机地址从默认的0.0.0.0:9090更改为192.168.1.234:9090

背景:我正在尝试使Prometheus容器在远程服务器上的生产环境中安装和启动。 由于服务器使用的IP不是Prometheus的默认IP(0.0.0.0),因此我需要更新Prometheus容器使用的主机地址。 如果没有,则无法登录UI并查看任何指标。 远程服务器的IP由用户在应用程序的安装过程中提供。

据我从Prometheus的配置文档以及./prometheus -h的输出./prometheus -h ,主机地址是不可变的,因此需要使用--web.listen-address=命令行标志进行更新。 我的问题是我不知道如何将该标志传递给我的Prometheus容器。 我不能简单地运行./prometheus --web.listen-address="<remote-ip>:9090"因为这不是Docker命令。 而且我无法将其传递给docker run ...命令,因为Docker无法识别该标志。

环境:

  • 使用SaltStack进行配置管理
  • 我不能使用Docker Swarm(即每个容器必须使用自己的Dockerfile

您无需更改容器化的普罗米修斯的监听地址。 0.0.0.0/0是容器的Anynet。
默认情况下,甚至无法从您的主机网络访问它,更不用说任何周围的网络(例如Internet)了。
不过,您可以将其映射到主机接口上的端口。 该命令看起来像这样:

docker run --rm -p 8080:9090 prom/prometheus

这将在主机上以127.0.0.1:8080公开服务

您也可以使用公共(例如,面向Internet的)界面来执行此操作,尽管由于存在大量操作隐患,我通常建议不要公开这样的容器,但是这在一定程度上超出了此答案的范围。 您至少应该考虑使用反向代理设置,在该设置中,仅允许用户与某些重型Web服务器进行通信,然后再与Prometheus通信,而不是让他们直接访问您的后端,即使这只是一个小型开发部署。

对于生产容器设置的一般考虑,我建议这样做

尽管它具有clickbaity标题, 但这还是很有用的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM