Обновление конфигурации Prometheus в режиме реального времени (-compose) - PullRequest
0 голосов
/ 13 июня 2019

У меня новый сервер с Prometheus в docker-compose. Я хочу иметь возможность повторно загрузить файл конфигурации (prometheus.yml) без необходимости останавливать и запускать контейнер.

Конечно, поскольку я сохраняю хранилище прометей в томе, остановка и запуск на самом деле не проблема, но это кажется излишним, тем более, что у самого Прометея есть такой удобный API для перезагрузки конфигов.

Я вижу других людей с похожими вопросами (например, здесь ), но я не смог заставить эти решения работать на меня. Может быть, я что-то там пропускаю.

докер-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 собственный способ горячей / прямой перезагрузки этих файлов конфигурации в каталог контейнера?

Как уже говорилось, опция down / start работает, но мне интересно, есть ли более элегантное решение.

...