Развертывания BYOC включают широкие возможности обсервабилити, позволяя отслеживать сервисы ClickHouse с помощью выделенного стека мониторинга Prometheus и прямых конечных точек метрик серверов ClickHouse. Все данные обсервабилити остаются в пределах вашей облачной учетной записи, обеспечивая полный контроль над инфраструктурой мониторинга.
Подходы к мониторингу с Prometheus
BYOC предлагает два основных способа сбора и визуализации метрик с помощью Prometheus:
- Подключение к встроенному стеку Prometheus: Получите доступ к централизованному предустановленному экземпляру Prometheus, работающему в вашем Kubernetes-кластере BYOC.
- Сбор метрик ClickHouse напрямую: Настройте собственное развертывание Prometheus на сбор метрик с конечной точки
/metrics_all, доступной для каждого сервиса ClickHouse.
Сравнение методов мониторинга
| Возможность | Встроенный стек Prometheus | Прямой сбор с сервисов ClickHouse |
|---|---|---|
| Охват метрик | Объединяет метрики из ClickHouse, Kubernetes и вспомогательных сервисов (полная видимость кластера) | Метрики только с отдельных серверов ClickHouse |
| Процесс настройки | Требует настройки доступа по частной сети (например, через приватный балансировщик нагрузки) | Достаточно настроить Prometheus на сбор с публичной или частной конечной точки ClickHouse |
| Способ подключения | Через приватный балансировщик нагрузки в пределах вашего VPC/сети | Через ту же конечную точку, которую вы используете для доступа к базе данных |
| Аутентификация | Не требуется (доступ ограничен частной сетью) | Используются учётные данные сервиса ClickHouse |
| Сетевые требования | Приватный балансировщик нагрузки и соответствующая сетевая связность | Доступно из любой сети, у которой есть доступ к вашей конечной точке ClickHouse |
| Лучше всего подходит для | Комплексного мониторинга инфраструктуры и сервисов | Мониторинга конкретного сервиса и интеграции |
| Как интегрировать | Настройте федерацию во внешнем Prometheus для приёма метрик кластера | Добавьте конечные точки метрик ClickHouse напрямую в конфигурацию Prometheus |
Рекомендация: Для большинства сценариев мы рекомендуем интеграцию со встроенным стеком Prometheus, так как он предоставляет исчерпывающий набор метрик от всех компонентов в вашем BYOC-развертывании (сервисы ClickHouse, кластер Kubernetes и вспомогательные сервисы), а не только метрики сервера ClickHouse.
Встроенный стек Prometheus для BYOC
ClickHouse BYOC разворачивает в вашем кластере Kubernetes полный стек мониторинга Prometheus, включая Prometheus, Grafana, AlertManager и, при необходимости, Thanos для долговременного хранения метрик. Этот стек собирает метрики из:
- серверов ClickHouse и ClickHouse Keeper
- кластера Kubernetes и системных компонентов
- узлов базовой инфраструктуры
Доступ к стеку Prometheus
Чтобы подключиться к встроенному стеку Prometheus:
- Включите приватный балансировщик нагрузки для инфраструктуры BYOC в консоли ClickHouse Cloud (см. Load Balancers).
- Запросите URL конечной точки Prometheus у службы поддержки ClickHouse.
- Проверьте подключение по частной сети к конечной точке Prometheus — как правило, через пиринг VPC/VNet или другой вариант настройки частной сети.
Форматы конечных точек зависят от типа подключения:
| Подключение | Формат конечной точки |
|---|---|
| Пиринг VPC/VNet | https://prometheus-internal.<subdomain>.<region>.<cloud>.clickhouse-byoc.com |
| Частная конечная точка | https://prometheus.<label>.<subdomain>.<region>.<cloud>.clickhouse-byoc.com |
<cloud> — это aws, gcp или azure. Для частных конечных точек значение <label> зависит от облачного провайдера: vpce в AWS, p в GCP и privatelink в Azure.
Интеграция с вашими инструментами мониторинга
Вы можете использовать стек BYOC Prometheus в своей экосистеме мониторинга несколькими способами:
Вариант 1: Выполнять запросы к API Prometheus
- Обращайтесь к конечной точке API Prometheus напрямую из предпочитаемой вами платформы мониторинга или собственных панелей мониторинга.
- Используйте запросы PromQL, чтобы извлекать, агрегировать и визуализировать нужные вам метрики.
- Идеально подходит для создания специализированных панелей мониторинга или систем оповещений.
Конечная точка запросов Prometheus /query:
https://prometheus-internal.<subdomain>.<region>.<cloud>.clickhouse-byoc.com/queryВариант 2: Федерация метрик в собственный Prometheus
- Настройте свой внешний экземпляр Prometheus для федерации (pull) метрик из стека Prometheus ClickHouse BYOC.
- Это позволит унифицировать и централизовать сбор метрик из нескольких сред или кластеров.
- Пример конфигурации федерации Prometheus:
scrape_configs:
- job_name: 'federate-clickhouse-byoc'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="clickhouse"}'
- '{job="kubernetes"}'
static_configs:
- targets:
- 'prometheus-internal.<subdomain>.<region>.<cloud>.clickhouse-byoc.com'Интеграция Prometheus с сервисом ClickHouse
Сервисы ClickHouse предоставляют совместимую с Prometheus конечную точку метрик, с которой можно напрямую выполнять сбор из собственного экземпляра Prometheus. Этот подход дает метрики, специфичные для ClickHouse, но не включает метрики Kubernetes или вспомогательных сервисов.
Доступ к конечной точке метрик
Конечная точка метрик доступна по пути /metrics_all на конечной точке вашего сервиса ClickHouse:
curl --user <username>:<password> https://<service-subdomain>.<byoc-subdomain>.<region>.<provider>.clickhouse-byoc.com:8443/metrics_allПример ответа:
# HELP ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes The amount of bytes stored on disk `s3disk` in system database
# TYPE ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes gauge
ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes{hostname="c-jet-ax-16-server-43d5baj-0"} 62660929
# HELP ClickHouse_CustomMetric_NumberOfBrokenDetachedParts The number of broken detached parts
# TYPE ClickHouse_CustomMetric_NumberOfBrokenDetachedParts gauge
ClickHouse_CustomMetric_NumberOfBrokenDetachedParts{hostname="c-jet-ax-16-server-43d5baj-0"} 0
# HELP ClickHouse_CustomMetric_TotalNumberOfErrors The total number of errors on server since the last restart
# TYPE ClickHouse_CustomMetric_TotalNumberOfErrors gauge
ClickHouse_CustomMetric_TotalNumberOfErrors{hostname="c-jet-ax-16-server-43d5baj-0"} 9Аутентификация
Для конечной точки метрик требуется аутентификация с использованием учетных данных ClickHouse. Мы рекомендуем использовать пользователя default или создать отдельного пользователя с минимальными разрешениями специально для сбора метрик.
Требуемые разрешения:
- разрешение
REMOTEдля подключения к сервису - разрешения
SELECTна соответствующие системные таблицы
Пример настройки пользователя:
CREATE USER scrapping_user IDENTIFIED BY 'secure_password';
GRANT REMOTE ON *.* TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_custom_metrics_tables TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_database_replicated_recovery_time TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_failed_mutations TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_group TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_shared_catalog_recovery_time TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_table_read_only_duration_seconds TO scrapping_user;
GRANT SELECT ON system._custom_metrics_view_error_metrics TO scrapping_user;
GRANT SELECT ON system._custom_metrics_view_histograms TO scrapping_user;
GRANT SELECT ON system._custom_metrics_view_metrics_and_events TO scrapping_user;
GRANT SELECT(description, metric, value) ON system.asynchronous_metrics TO scrapping_user;
GRANT SELECT ON system.custom_metrics TO scrapping_user;
GRANT SELECT(name, value) ON system.errors TO scrapping_user;
GRANT SELECT(description, event, value) ON system.events TO scrapping_user;
GRANT SELECT(description, labels, metric, value) ON system.histogram_metrics TO scrapping_user;
GRANT SELECT(description, metric, value) ON system.metrics TO scrapping_user;Настройка Prometheus
Настройте экземпляр Prometheus для сбора метрик с конечной точки метрик ClickHouse:
global:
scrape_interval: 15s
scrape_configs:
- job_name: "clickhouse"
static_configs:
- targets: ["<service-subdomain>.<byoc-subdomain>.<region>.<provider>.clickhouse-byoc.com:8443"]
scheme: https
metrics_path: "/metrics_all"
basic_auth:
username: <username>
password: <password>
honor_labels: trueЗамените:
<service-subdomain>.<byoc-subdomain>.<region>.<provider>.clickhouse-byoc.com:8443на фактическую конечную точку вашего сервиса<username>и<password>на учетные данные пользователя, используемые для сбора метрик
ClickHouse Mixin
Для команд, которым нужен готовый набор панелей мониторинга, ClickHouse предлагает ClickHouse Mixin для Prometheus. Это готовая панель мониторинга Grafana, специально разработанная для мониторинга кластеров ClickHouse.
Настройка Grafana и импорт ClickHouse Mix-in
После интеграции вашего экземпляра Prometheus со стеком мониторинга ClickHouse вы сможете визуализировать метрики в Grafana, выполнив следующие шаги:
- Добавьте Prometheus как источник данных в Grafana Перейдите в раздел "Data sources" на боковой панели Grafana, нажмите "Add data source" и выберите "Prometheus". Укажите URL вашего экземпляра Prometheus и необходимые учетные данные для подключения.



- Импортируйте панель мониторинга ClickHouse В Grafana перейдите в раздел панелей мониторинга и выберите "Import". Вы можете либо загрузить JSON‑файл панели мониторинга, либо вставить его содержимое напрямую. JSON‑файл доступен в репозитории ClickHouse mixin: JSON панели мониторинга ClickHouse Mix-in

- Просмотрите свои метрики После импорта панели мониторинга и ее настройки с источником данных Prometheus вы увидите метрики в реальном времени из ваших сервисов ClickHouse Cloud.
