Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

HTTP API и панель мониторинга ClickHouse Keeper

ClickHouse Keeper предоставляет HTTP API и встроенную веб-панель мониторинга для мониторинга, проверок состояния и управления хранилищем. Этот интерфейс позволяет операторам проверять состояние кластера, выполнять команды и управлять хранилищем Keeper через веб-браузер или HTTP-клиенты.

Конфигурация

Чтобы включить HTTP API, добавьте раздел http_control в конфигурацию keeper_server:

<keeper_server>
    <!-- Другие параметры конфигурации keeper_server -->

    <http_control>
        <port>9182</port>
        <!-- <secure_port>9443</secure_port> -->
    </http_control>
</keeper_server>

Параметры конфигурации

Параметр По умолчанию Описание
http_control.port - HTTP-порт для панели мониторинга и API
http_control.secure_port - HTTPS-порт (требуется настройка SSL)
http_control.readiness.endpoint /ready Пользовательский путь для проверки готовности
http_control.storage.session_timeout_ms 30000 Тайм-аут сеанса при операциях с API хранилища

Конечные точки

Панель мониторинга

  • Путь: /dashboard
  • Метод: GET
  • Описание: Отдает встроенную веб-панель мониторинга для наблюдения и управления Keeper

Панель мониторинга предоставляет:

  • Визуализацию состояния кластера в реальном времени
  • Мониторинг узлов (роль, задержка, соединения)
  • Браузер хранилища
  • Интерфейс для выполнения команд

Вкладка Cluster

Вкладка Cluster отображает состав участников Raft в виде графа топологии и таблицы. Для каждого участника отображается цвет состояния:

  • Зелёный — доступен и синхронизирован с лидером
  • Жёлтый — доступен, но отстаёт от лидера более чем на stale_log_gap записей журнала
  • Красный — недоступен (нет успешного ответа Raft в пределах интервала истечения heartbeat)
  • Серый — неизвестно (состояние peer видно только с лидера; followers видят состояние своих peer как неизвестное)

В таблице также указаны роль каждого участника (лидер, follower или observer), приоритет Raft, индекс последней записи журнала, отставание репликации относительно лидера и время с момента последнего успешного ответа Raft. Если текущий узел не является лидером, на вкладке доступна ссылка, открывающая панель мониторинга лидера, где доступна полная информация о состоянии peer. Вкладку можно открыть напрямую по адресу /dashboard?tab=cluster.

Проверка готовности

  • Путь: /ready (настраивается)
  • Метод: GET
  • Описание: Конечная точка проверки состояния

Успешный ответ (HTTP 200):

{
  "status": "ok",
  "details": {
    "role": "leader",
    "hasLeader": true
  }
}

API команд

  • Путь: /api/v1/commands/{command}
  • Методы: GET, POST
  • Описание: Выполняет команды Four-Letter Word или команды CLI-клиента ClickHouse Keeper

Параметры запроса:

  • command - команда для выполнения
  • cwd - текущий рабочий каталог для команд, использующих путь (по умолчанию: /)

Примеры:

# Команда Four-Letter Word
curl http://localhost:9182/api/v1/commands/stat

# Команда ZooKeeper CLI
curl "http://localhost:9182/api/v1/commands/ls?command=ls%20'/'&cwd=/"

API хранилища

  • Базовый путь: /api/v1/storage
  • Описание: REST API для операций с хранилищем Keeper

API хранилища соответствует соглашениям REST, в которых тип операции определяется HTTP-методом:

Операция Путь Метод Код состояния Описание
Get /api/v1/storage/{path} GET 200 Получение данных узла
List /api/v1/storage/{path}?children=true GET 200 Получение списка дочерних узлов
Exists /api/v1/storage/{path} HEAD 200 Проверка существования узла
Create /api/v1/storage/{path} POST 201 Создание нового узла
Update /api/v1/storage/{path}?version={v} PUT 200 Обновление данных узла
Delete /api/v1/storage/{path}?version={v} DELETE 204 Удаление узла
Navigation