Перейти к содержанию

Consul-Manager — UI для регистрации сервисов

Назначение сервиса

consul-manager — веб-приложение (Streamlit), упрощающее регистрацию, обновление и удаление сервисов в Consul через HTTP API. Предоставляет таблицу зарегистрированных сервисов и удобные формы для CRUD-операций.


Структура каталогов

config/services/consul-manager/deployment/docker/
├─ docker-compose.yaml   # запуск контейнера
├─ .env_example          # переменные окружения
└─ src/
   └─ consul-manager.py  # исходный код Streamlit-приложения

.env параметры

Переменная Описание
CONSUL_MGR_HOST Домен, на котором будет доступно UI (Traefik)
CONSUL_MGR_PORT Внутренний порт сервиса (8500)
SCRAPE_IP Список CIDR, которым разрешён доступ (Traefik IPAllowList)
COMPOSE_PROJECT_NAME Префикс контейнера

Запуск

cd config/services/consul-manager/deployment/docker
cp .env_example .env
# настройте переменные, особенно CONSUL_MGR_HOST и SCRAPE_IP

docker compose up -d

UI будет доступно по https://<CONSUL_MGR_HOST> (Traefik). Без Traefik — раскомментируйте ports: в compose-файле.


Использование

  1. Введите Management-Token Consul в поле Consul Token.
  2. Раздел Регистрация сервиса позволяет заполнить форму (Name, Address, Port, Tags, Meta).
  3. Нажмите Зарегистрировать ➜ сервис появится в Consul.
  4. В разделе Все сервисы нажмите кнопку, чтобы получить актуальный список.
  5. Для удаления укажите ID сервиса и нажмите Удалить.

ID формируется как <address>_<port>_<name>, то же правило используется при обновлении.


Обновление зависимостей

consul-manager использует базовый образ monitoring_python_base. Чтобы обновить библиотеки:

docker compose down
# пересоберите monitoring_python_base при необходимости

docker compose pull consul_manager  # если образ хранится в registry
# или пересоберите локально, изменив Dockerfile

Разработка

cd src
streamlit run consul-manager.py

Приложение будет доступно на localhost:8500; для доступа к Consul внутри Docker-сети используйте CONSUL_API_URL = "http://consul-server:8500/v1/agent/service".