Просмотр логов кластера 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
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Команда не завершается после отправки. Новые логи отображаются в выводе команды в режиме реального времени.