Просмотр логов кластера MySQL®
Managed Service for MySQL® позволяет получить фрагмент логов кластера за выбранный период и просматривать логи в реальном времени.
Примечание
Логи кластера хранятся 30 дней.
Получить лог кластера
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера и выберите вкладку
Логи. - Укажите период времени, за который нужно отобразить логи: введите его вручную или выберите в календаре, нажав на поле ввода дат.
- Выберите тип отображаемых событий. По умолчанию используется тип
MYSQL_ERROR
. - При необходимости укажите хосты и уровень логирования в строке с полем ввода дат.
Будет отображен список записей в логе за выбранный период времени. Чтобы посмотреть подробную информацию о событии, нажмите на интересующую запись в списке.
Если записей слишком много и отображается только часть из них, нажмите на кнопку Загрузить еще в конце списка.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Просмотрите описание команды CLI для просмотра логов кластера:
yc managed-mysql cluster list-logs --help
-
Запустите команду получения логов кластера (в примере приведены не все доступные параметры):
yc managed-mysql cluster list-logs <имя_или_идентификатор_кластера> \ --limit <ограничение_количества_записей> \ --format <формат_вывода> \ --service-type <тип_сервиса> \ --columns <список_колонок> \ --filter <настройки_фильтрации> \ --since <левая_граница_временного_диапазона> \ --until <правая_граница_временного_диапазона>
Где:
-
--limit
— ограничение на количество выводимых записей. -
--format
— формат, в котором будут представлены записи логов (text
,yaml
,json
илиjson-rest
). -
--service-type
— тип сервиса, для которого требуется вывести записи (mysql-error
,mysql-general
,mysql-slow-query
илиmysql-audit
). -
--columns
— список колонок для вывода информации:hostname
— имя хоста.id
— идентификатор запроса.message
— сообщение, которое выводит сервис.status
— статус сообщения, напримерNote
илиWarning
.
Примечание
В примере приведены только основные колонки. Список выводимых колонок зависит от выбранного типа сервиса
--service-type
.Для вывода отдельных колонок передайте ключ
--format
с указанием формата вывода (yaml
,json
илиjson-rest
). Колонки не поддерживаются для формата выводаtext
(установлен по умолчанию). -
--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-mysql/v1/clusters/<идентификатор_кластера>:logs' \ --url-query serviceType=<тип_сервиса> \ --url-query columnFilter=<список_колонок> \ --url-query fromTime=<левая_граница_временного_диапазона> \ --url-query toTime=<правая_граница_временного_диапазона>
Где:
-
serviceType
— тип сервиса, логи которого нужно получить:-
MYSQL_ERROR
— лог ошибок, связанных с запуском, работой и остановкой инстансов MySQL®. -
MYSQL_GENERAL
— лог клиентских соединений и запросов.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки General log при изменении настроек MySQL®.
-
MYSQL_SLOW_QUERY
— лог медленных запросов.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки Slow query log при изменении настроек MySQL®. См. также настройки Log slow filter, Log slow rate limit, Log slow rate type, Log slow sp statements и Slow query log always write time.
-
MYSQL_AUDIT
— лог аудита.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки Audit log при изменении настроек MySQL®.
-
-
columnFilter
— список колонок для вывода информации:hostname
— имя хоста;id
— идентификатор запроса;message
— сообщение, которое выводит сервис;status
— статус сообщения, напримерNote
илиWarning
;raw
— информация по всем колонкам в необработанном виде.
Примечание
В примере приведены только основные колонки. Список выводимых колонок зависит от выбранного типа сервиса
serviceType
. -
fromTime
— левая граница временного диапазона в формате RFC-3339 . Пример:2024-09-18T15: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/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "service_type": "<тип_сервиса>", "column_filter": [ "<колонка_1>", "<колонка_2>", ..., "<колонка_N>" ], "from_time": "<левая_граница_временного_диапазона>", "to_time": "<правая_граница_временного_диапазона>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.ListLogs
Где:
-
service_type
— тип сервиса, логи которого нужно получить:-
MYSQL_ERROR
— лог ошибок, связанных с запуском, работой и остановкой инстансов MySQL®. -
MYSQL_GENERAL
— лог клиентских соединений и запросов.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки General log при изменении настроек MySQL®.
-
MYSQL_SLOW_QUERY
— лог медленных запросов.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки Slow query log при изменении настроек MySQL®. См. также настройки Log slow filter, Log slow rate limit, Log slow rate type, Log slow sp statements и Slow query log always write time.
-
MYSQL_AUDIT
— лог аудита.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки Audit log при изменении настроек MySQL®.
-
-
column_filter
— список колонок для вывода информации:hostname
— имя хоста;id
— идентификатор запроса;message
— сообщение, которое выводит сервис;status
— статус сообщения, напримерNote
илиWarning
;raw
— информация по всем колонкам в необработанном виде.
Примечание
В примере приведены только основные колонки. Список выводимых колонок зависит от выбранного типа сервиса
service_type
. -
from_time
— левая граница временного диапазона в формате RFC-3339 . Пример:2024-09-18T15:04:05Z
. -
to_time
— правая граница временного диапазона, формат аналогиченfrom_time
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить поток логов кластера
Этот способ позволяет получать логи кластера в реальном времени.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Для просмотра логов кластера по мере их поступления выполните команду:
yc managed-mysql 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-mysql/v1/clusters/<идентификатор_кластера>:stream_logs' \ --url-query serviceType=<тип_сервиса> \ --url-query columnFilter=<список_колонок>
Где:
-
serviceType
— тип сервиса, логи которого нужно получить:-
MYSQL_ERROR
— лог ошибок, связанных с запуском, работой и остановкой инстансов MySQL®. -
MYSQL_GENERAL
— лог клиентских соединений и запросов.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки General log при изменении настроек MySQL®.
-
MYSQL_SLOW_QUERY
— лог медленных запросов.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки Slow query log при изменении настроек MySQL®. См. также настройки Log slow filter, Log slow rate limit, Log slow rate type, Log slow sp statements и Slow query log always write time.
-
MYSQL_AUDIT
— лог аудита.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки Audit log при изменении настроек MySQL®.
-
-
columnFilter
— список колонок для вывода информации:hostname
— имя хоста.id
— идентификатор запроса.message
— сообщение, которое выводит сервис.status
— статус сообщения, напримерNote
илиWarning
.raw
— информация по всем колонкам в необработанном виде.
Примечание
В примере приведены только основные колонки. Список выводимых колонок зависит от выбранного типа сервиса
serviceType
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Команда не завершается после отправки. Новые логи отображаются в выводе команды в режиме реального времени.
-
Получите 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/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "service_type": "<тип_сервиса>", "column_filter": [ "<колонка_1>", "<колонка_2>", ..., "<колонка_N>" ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.StreamLogs
Где:
-
service_type
— тип сервиса, логи которого нужно получить:-
MYSQL_ERROR
— лог ошибок, связанных с запуском, работой и остановкой инстансов MySQL®. -
MYSQL_GENERAL
— лог клиентских соединений и запросов.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки General log при изменении настроек MySQL®.
-
MYSQL_SLOW_QUERY
— лог медленных запросов.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки Slow query log при изменении настроек MySQL®. См. также настройки Log slow filter, Log slow rate limit, Log slow rate type, Log slow sp statements и Slow query log always write time.
-
MYSQL_AUDIT
— лог аудита.По умолчанию лог не ведется. Чтобы включить его, измените значение настройки Audit log при изменении настроек MySQL®.
-
-
column_filter
— список колонок для вывода информации:hostname
— имя хоста.id
— идентификатор запроса.message
— сообщение, которое выводит сервис.status
— статус сообщения, напримерNote
илиWarning
.raw
— информация по всем колонкам в необработанном виде.
Примечание
В примере приведены только основные колонки. Список выводимых колонок зависит от выбранного типа сервиса
service_type
. -
from_time
— левая граница временного диапазона в формате RFC-3339 . Пример:2024-09-18T15:04:05Z
. -
to_time
— правая граница временного диапазона, формат аналогиченfrom_time
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Команда не завершается после отправки. Новые логи отображаются в выводе команды в режиме реального времени.