gpt4 book ai didi

docker - 在 docker 中实时重新加载 Prometheus 配置(-compose)

转载 作者:行者123 更新时间:2023-12-02 10:01:00 24 4
gpt4 key购买 nike

我有一个在 docker-compose 中运行 Prometheus 的新服务器。我希望能够重新加载配置文件 (prometheus.yml),而不必停止和启动容器。

当然,由于我将 promethues 存储在一个卷中,所以停止和启动并不是真正的问题,但它似乎有点矫枉过正,特别是因为 prometheus 本身有一个如此方便的 api 来重新加载配置。

我看到其他人也有类似的问题(例如 here ),但我一直无法让这些解决方案为我工作。也许我忽略了那里的一些东西。

docker-compose.yml

version: "3"

services:

grafana:
restart: always
container_name: grafana
image: grafana/grafana:6.2.1
ports:
- 3000:3000
volumes:
- grafanadata:/var/lib/grafana

prometheus:
restart: always
container_name: prometheus
image: prom/prometheus:v2.10.0
privileged: true
volumes:
- ./configuration/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheusdata:/prometheus

command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--web.enable-admin-api'
- '--web.enable-lifecycle'
ports:
- 9090:9090

node:
restart: always
container_name: node
image: prom/node-exporter:v0.18.0
ports:
- 9100:9100

volumes:
grafanadata:
prometheusdata:

唉,我的结果..

当我运行 curl -X POST http://localhost:9090/-/reload 时,docker-compose 日志给出:

prometheus    | level=info ts=2019-06-17T15:33:02.690Z caller=main.go:730 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
prometheus | level=info ts=2019-06-17T15:33:02.691Z caller=main.go:758 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml

所以普罗米修斯的末端工作正常..到目前为止一切都很好。

但是,当我编辑 ./configuration/prometheus/prometheus.yml 时,更改不会传播到容器。此外,当我尝试在容器中编辑 /etc/promethus/prometheus.yml 时,我发现它是只读的(顺便说一句,容器没有“sudo”命令)。

是否有 Docker native 方式将这些配置文件热/实时重新加载到容器目录?

如上所述,向下/启动选项目前有效,但我很好奇是否有更优雅的解决方案。

最佳答案

docker-compose Kill -s SIGHUP prometheus 做到了这一点,所以 Vishrant 肯定在那里做了一些事情。

关于docker - 在 docker 中实时重新加载 Prometheus 配置(-compose),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56585607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com