Просмотр логов кластера ClickHouse®
Managed Service for ClickHouse® позволяет получить фрагмент логов кластера за выбранный период и просматривать логи в реальном времени.
Примечание
Логи кластера хранятся 30 дней.
Получить логи кластера
- Перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
- Нажмите на имя нужного кластера и выберите вкладку
Логи. - Укажите период времени, за который нужно отобразить логи: введите его вручную или выберите в календаре, нажав на поле ввода дат.
- При необходимости укажите хосты и уровень логирования в строке с полем ввода дат.
Будет отображен список записей в логе за выбранный период времени. Чтобы посмотреть подробную информацию о событии, нажмите на интересующую запись в списке.
Если записей слишком много и отображается только часть из них, нажмите на кнопку Загрузить еще в конце списка.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Просмотрите описание команды CLI для просмотра логов кластера:
yc managed-clickhouse cluster list-logs --help -
Запустите команду получения логов кластера:
yc managed-clickhouse cluster list-logs <имя_или_идентификатор_кластера> \ --limit <ограничение_количества_записей> \ --columns <список_колонок_для_вывода_информации> \ --filter <настройки_фильтрации_записей> \ --since <левая_граница_временного_диапазона> \ --until <правая_граница_временного_диапазона>Где:
-
--limit— ограничение на количество выводимых записей. --columns— список колонок для вывода информации:hostname— имя хоста.component— тип компонента, который попадет в лог. Например,HTTP-Session.message— сообщение, которое выводит компонент.query_id— идентификатор запроса.severity— уровень логирования, например,Debug.thread— идентификатор потока, участвующего в обработке запросов.
-
--filter— настройки фильтрации записей, например,message.hostname='node1.mdb.yandexcloud.net'. -
--since— левая граница временного диапазона в формате RFC-3339 ,HH:MM:SSили временного промежутка относительно текущего времени. Примеры:2006-01-02T15:04:05Z,15:04:05,2h,3h30m ago. -
--until— правая граница временного диапазона, формат аналогичен--since.
-
Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.ListLogs и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>:logs' \ --url-query serviceType=CLICKHOUSE \ --url-query columnFilter=<список_колонок_для_вывода_информации> \ --url-query fromTime=<левая_граница_временного_диапазона> \ --url-query toTime=<правая_граница_временного_диапазона>Где:
-
serviceType— тип сервиса, для которого нужно запросить логи. Допустимо только значениеCLICKHOUSE. -
columnFilter— список колонок для вывода информации:hostname— имя хоста.component— тип компонента, который попадет в лог. Например,HTTP-Session.message— сообщение, которое выводит компонент.query_id— идентификатор запроса.severity— уровень логирования, например,Debug.thread— идентификатор потока, участвующего в обработке запросов.
В одном параметре
columnFilterможно указать только одну колонку. Если необходимо отфильтровать логи по нескольким колонкам, передайте перечень нужных колонок в нескольких параметрах.
fromTime— левая граница временного диапазона в формате RFC-3339 . Пример:2006-01-02T15:04:05Z.
toTime— правая граница временного диапазона, формат аналогиченfromTime.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.ListLogs и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "service_type" : "CLICKHOUSE", "column_filter": [<список_колонок_для_вывода_информации>], "from_time": "<левая_граница_временного_диапазона>" \ "to_time": "<правая_граница_временного_диапазона>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.ListLogsГде:
-
service_type— тип сервиса, для которого нужно запросить логи. Допустимо только значениеCLICKHOUSE. -
column_filter— список колонок для вывода информации:hostname— имя хоста.component— тип компонента, который попадет в лог. Например,HTTP-Session.message— сообщение, которое выводит компонент.query_id— идентификатор запроса.severity— уровень логирования, например,Debug.thread— идентификатор потока, участвующего в обработке запросов.
В параметре
column_filterможно указать несколько колонок, если нужно отфильтровать логи по нескольким колонкам.
from_time— левая граница временного диапазона в формате RFC-3339 . Пример:2006-01-02T15:04:05Z.
to_time— правая граница временного диапазона, формат аналогиченfrom_time.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить поток логов кластера
Этот способ позволяет получать логи кластера в реальном времени.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Для просмотра логов кластера по мере их поступления выполните команду:
yc managed-clickhouse cluster list-logs <имя_или_идентификатор_кластера> --follow
Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.StreamLogs и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>:stream_logs' \ --url-query serviceType=CLICKHOUSE \ --url-query columnFilter=<список_колонок_для_вывода_информации> \ --url-query fromTime=<левая_граница_временного_диапазона> \ --url-query toTime=<правая_граница_временного_диапазона> \ --url-query filter=<фильтр_логов>Где:
-
serviceType— тип сервиса, для которого нужно запросить логи. Допустимо только значениеCLICKHOUSE. -
columnFilter— список колонок для вывода информации:hostname— имя хоста.component— тип компонента, который попадет в лог. Например,HTTP-Session.message— сообщение, которое выводит компонент.query_id— идентификатор запроса.severity— уровень логирования, например,Debug.thread— идентификатор потока, участвующего в обработке запросов.
В одном параметре
columnFilterможно указать только одну колонку. Если необходимо отфильтровать логи по нескольким колонкам, передайте перечень нужных колонок в нескольких параметрах.
fromTime— левая граница временного диапазона в формате RFC-3339 . Пример:2006-01-02T15:04:05Z.
-
toTime— правая граница временного диапазона, формат аналогиченfromTime.Если не указывать этот параметр, то в поток логов будут отсылаться новые логи по мере их появления. Это поведение семантически эквивалентно
tail -f. -
filter— фильтр логов. Можно отфильтровать логи так, чтобы поток логов содержал только нужные логи.Подробнее о фильтрах и их синтаксисе см. в справочнике API.
Совет
Фильтр может содержать в себе кавычки и другие символы. Экранируйте их, если это необходимо.
Поддерживаемые фильтры:
message.hostname— фильтрация по имени хоста.message.severity— фильтрация по уровню логирования.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.StreamLogs и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "service_type" : "CLICKHOUSE", "column_filter": [<список_колонок_для_вывода_информации>], "from_time": "<левая_граница_временного_диапазона>", "to_time": "<правая_граница_временного_диапазона>", "filter": "<фильтр_логов>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.StreamLogsГде:
-
service_type— тип сервиса, для которого нужно запросить логи. Допустимо только значениеCLICKHOUSE. -
column_filter— список колонок для вывода информации:hostname— имя хоста.component— тип компонента, который попадет в лог. Например,HTTP-Session.message— сообщение, которое выводит компонент.query_id— идентификатор запроса.severity— уровень логирования, например,Debug.thread— идентификатор потока, участвующего в обработке запросов.
В параметре
column_filterможно указать несколько колонок, если нужно отфильтровать логи по нескольким колонкам.
from_time— левая граница временного диапазона в формате RFC-3339 . Пример:2006-01-02T15:04:05Z.
-
to_time— правая граница временного диапазона, формат аналогиченfrom_time.Если не указывать этот параметр, то в поток логов будут отсылаться новые логи по мере их появления. Это поведение семантически эквивалентно
tail -f. -
filter— фильтр логов. Можно отфильтровать логи так, чтобы поток логов содержал только нужные логи.Совет
Фильтр может содержать в себе кавычки и другие символы. Экранируйте их, если это необходимо.
Поддерживаемые фильтры:
message.hostname— фильтрация по имени хоста.message.severity— фильтрация по уровню логирования.
Подробнее о фильтрах и их синтаксисе см. в справочнике API.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc