问题:如何将Prometheus容器的主机地址从默认的0.0.0.0:9090
更改为192.168.1.234:9090
?
背景:我正在尝试使一个Prometheus容器在远程服务器上的生产环境中安装和启动。由于服务器使用的IP不是Prometheus的默认IP(0.0.0.0),因此我需要更新Prometheus容器使用的主机地址。如果没有,则无法登录UI并查看任何指标。远程服务器的IP由用户在应用程序的安装过程中提供。
根据我从Prometheus的config document和./prometheus -h
的输出中了解到,主机地址是不可变的,因此需要使用--web.listen-address=
命令行标志进行更新。我的问题是我不知道如何将该标志传递给我的Prometheus容器。我不能简单地运行./prometheus --web.listen-address="<remote-ip>:9090"
,因为这不是Docker命令。而且我无法将其传递给docker run ...
命令,因为Docker无法识别该标志。
环境:
Dockerfile
)答案 0 :(得分:0)
您不需要更改容器化的普罗米修斯的监听地址。 0.0.0.0/0是容器内的Anynet。
默认情况下,甚至无法从您的主机网络访问它,更不用说任何周围的网络(例如Internet)了。
不过,您可以将其映射到主机接口上的端口。该命令看起来像这样:
docker run --rm -p 8080:9090 prom/prometheus
这将在您的主机
上的127.0.0.1:8080
处公开服务
您也可以使用公共(例如,面向Internet)界面来执行此操作,尽管由于存在大量操作隐患,我通常建议不要暴露这样的容器,但这些操作超出了此答案的范围。您至少应该考虑使用反向代理设置,在该设置中,仅允许用户与某些重型Web服务器进行通信,然后再与Prometheus通信,而不是让他们直接访问您的后端,即使这只是一个小型开发部署。
出于生产容器设置生产的一般考虑,我建议使用this。
this尽管是clickbaity标题,但还是很有用。