Передача логов кластера Yandex MPP Analytics for PostgreSQL в Yandex Cloud Logging
Вы можете настроить регулярный сбор логов о работе кластера Greenplum®. Логи поставляются в лог-группу в сервисе Cloud Logging. Можно выбрать лог-группу одного из двух типов:
Перед началом работы
Создайте сервисный аккаунт c ролью logging.writer.
Передача данных в лог-группу по умолчанию
-
Создайте кластер Greenplum® с включенными настройками логирования и созданным ранее сервисным аккаунтом:
Консоль управленияCLITerraformAPI-
В консоли управления
выберите каталог, в котором нужно создать кластер. -
Выберите сервис Yandex MPP Analytics for PostgreSQL.
-
Нажмите кнопку Создать кластер.
-
Введите имя кластера.
-
В блоке Сетевые настройки выберите:
- Облачную сеть.
- Группу безопасности.
- Зону доступности и подсеть.
-
В блоке Пользователь укажите реквизиты пользователя-администратора:
- Имя пользователя — может содержать латинские буквы, цифры, дефис и подчеркивание, но не может начинаться с дефиса. Длина от 1 до 32 символов.
- Пароль — длина от 8 до 128 символов.
-
В блоке Дополнительные настройки:
- Выберите сервисный аккаунт с ролью
logging.writer. - Включите опцию Запись логов.
- Чтобы логи записывались в лог-группу по умолчанию, выберите значение Каталог в поле Назначение.
- Выберите каталог, лог-группу которого нужно использовать.
- Включите опции Логи Greenplum и Логи командного центра. Уровень логирования можно задать с помощью параметра Log min messages в блоке Настройки СУБД.
- Выберите сервисный аккаунт с ролью
-
Нажмите кнопку Создать.
yc managed-greenplum cluster create <имя_кластера> \ --greenplum-version=6.25 \ --environment=PRODUCTION \ --network-name=<имя_сети_кластера> \ --user-name=<имя_пользователя_кластера> \ --user-password=<пароль_пользователя_кластера> \ --master-config resource-id=s3-c8-m32,` `disk-size=10,` `disk-type=network-hdd \ --segment-config resource-id=s3-c8-m32,` `disk-size=93,` `disk-type=network-ssd-nonreplicated \ --zone-id=<идентификатор_зоны_доступности> \ --subnet-id=<идентификатор_подсети_кластера> \ --assign-public-ip=true \ --security-group-ids=<идентификаторы_групп_безопасности_кластера> \ --service-account <идентификатор_сервисного_аккаунта_кластера> \ --log-enabled \ --log-greenplum-enabled \ --log-command-center-enabled \ --log-folder-id <идентификатор_каталога>Где:
-
--service-account— идентификатор созданного ранее сервисного аккаунта. -
--log-enabled— включает механизм передачи логов. Обязателен для работы других флагов, отвечающих за передачу конкретных логов, например,--log-greenplum-enabled. -
--log-greenplum-enabled— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages. Подробнее о дополнительных настройках Greenplum®. -
--log-command-center-enabled— передача логов командного центра.Логи командного центра передаются полностью, изменить уровень логирования нельзя.
-
--log-folder-id— идентификатор каталога, в котором создан кластер Greenplum®.
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
В конфигурационном файле с описанием кластера укажите следующие параметры:
resource "yandex_mdb_greenplum_cluster" "gp-cluster" { name = "<имя_кластера>" environment = "PRODUCTION" network_id = "<идентификатор_сети>" zone = "<идентификатор_зоны_доступности>" subnet_id = "<идентификатор_подсети_кластера>" assign_public_ip = true version = "6.25" master_host_count = 2 segment_host_count = 2 segment_in_host = 2 service_account_id = "<идентификатор_сервисного_аккаунта>" master_subcluster { resources { resource_preset_id = "s3-c8-m32" # 8 vCPU, 32 GB RAM disk_size = 10 # GB disk_type_id = "network-hdd" } } segment_subcluster { resources { resource_preset_id = "s3-c8-m32" # 8 vCPU, 32 GB RAM disk_size = 93 # GB disk_type_id = "network-ssd-nonreplicated" } } user_name = "<имя_пользователя_кластера>" user_password = "<пароль_пользователя_кластера>" security_group_ids = ["<идентификаторы_групп_безопасности_кластера>"] logging { enabled = true greenplum_enabled = true command_center_enabled = true folder_id = <идентификатор_каталога> } }Где:
-
service_account_id— идентификатор созданного ранее сервисного аккаунта. -
enabled— управляет механизмом передачи логов. Для работы параметров, отвечающих за передачу конкретных логов, передайте значениеtrue. -
greenplum_enabled— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages. Подробнее о дополнительных настройках Greenplum®. -
command_center_enabled— передача логов командного центра.Логи командного центра передаются полностью, изменить уровень логирования нельзя.
-
folder_id— идентификатор каталога, лог-группу которого нужно использовать.
-
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
В теле запроса на создание кластера (Cluster.Create в REST API или ClusterService.Create в gRPC API) укажите следующие параметры:
{ ... "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": "true", "greenplumEnabled": "true", "commandCenterEnabled": "true", "folderId": "<идентификатор_каталога>" } ... }Где:
-
serviceAccountId— идентификатор созданного ранее сервисного аккаунта. -
enabled— управляет механизмом передачи логов. Для работы параметров, отвечающих за передачу конкретных логов, передайте значениеtrue. -
greenplumEnabled— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages. Подробнее о дополнительных настройках Greenplum®. -
commandCenterEnabled— передача логов командного центра.Логи командного центра передаются полностью, изменить уровень логирования нельзя.
-
folderId— идентификатор каталога, лог-группу которого нужно использовать.
-
-
Проверьте передачу логов кластера в лог-группу:
Консоль управленияCLIAPI- В консоли управления перейдите в нужный каталог.
- Выберите сервис Cloud Logging.
- Нажмите на строку с лог-группой
default.
На открывшейся странице отобразятся записи.
Чтобы посмотреть записи в формате JSON, выполните команду:
yc logging read --group-name=default --format=jsonРезультат:
[ { "uid": "22:********:15", "resource": { "type": "mdb.greenplum.cluster", "id": "c9qao2tkhbdt********" }, "timestamp": "2025-04-25T07:50:21.871157Z", "ingested_at": "2025-04-25T07:50:24.553Z", "saved_at": "2025-04-25T07:50:26.125189Z", "level": "INFO", "message": "2025-04-25 10:50:20.209664 MSK,\"monitor\",\"postgres\",p29034,th1258748352,\"localhost\",\"47384\",2025-04-25 07:38:20 MSK,0,con40,cmd20190,seg-1,,,,sx1,\"LOG\",\"00000\",\"statement: \n\t\treset log_min_messages\n\t\",,,,,,,0,,\"postgres.c\",1664,", "json_payload": { "cid": "c9qao2tkhbdt********", "gp_host_type": "master", "gp_preferred_role": "primary", "hostname": "rc1d-jds7okr4********.mdb.yandexcloud.net", "segment_id": "-1", "username": "monitor" }, "stream_name": "greenplum-logs-master-primary" } ]Чтобы посмотреть записи в лог-группе, воспользуйтесь вызовом REST API Cluster.ListLogs или gRPC API LogReadingService/Read.
Подробнее см. в разделе Чтение записей.
Передача данных в пользовательскую лог-группу
-
Создайте лог-группу
greenplum-log-group. -
Создайте кластер Greenplum® с включенными настройками логирования и созданным ранее сервисным аккаунтом:
Консоль управленияCLITerraformAPI-
В консоли управления
выберите каталог, в котором нужно создать кластер. -
Выберите сервис Yandex MPP Analytics for PostgreSQL.
-
Нажмите кнопку Создать кластер.
-
Введите имя кластера.
-
В блоке Сетевые настройки выберите:
- Облачную сеть.
- Группу безопасности.
- Зону доступности и подсеть.
-
В блоке Пользователь укажите реквизиты пользователя-администратора:
- Имя пользователя — может содержать латинские буквы, цифры, дефис и подчеркивание, но не может начинаться с дефиса. Длина от 1 до 32 символов.
- Пароль — длина от 8 до 128 символов.
-
В блоке Дополнительные настройки:
- Выберите сервисный аккаунт с ролью
logging.writer. - Включите опцию Запись логов.
- Чтобы логи записывались в пользовательскую лог-группу, выберите значение Лог-группа в поле Назначение.
- Выберите лог-группу
greenplum-log-group. - Включите опции Логи Greenplum и Логи командного центра. Уровень логирования можно задать с помощью параметра Log min messages в блоке Настройки СУБД.
- Выберите сервисный аккаунт с ролью
-
Нажмите кнопку Создать.
yc managed-greenplum cluster create <имя_кластера> \ --greenplum-version=6.25 \ --environment=PRODUCTION \ --network-name=<имя_сети_кластера> \ --user-name=<имя_пользователя_кластера> \ --user-password=<пароль_пользователя_кластера> \ --master-config resource-id=s3-c8-m32,` `disk-size=10,` `disk-type=network-hdd \ --segment-config resource-id=s3-c8-m32,` `disk-size=93,` `disk-type=network-ssd-nonreplicated \ --zone-id=<идентификатор_зоны_доступности> \ --subnet-id=<идентификатор_подсети_кластера> \ --assign-public-ip=true \ --security-group-ids=<идентификаторы_групп_безопасности_кластера> \ --service-account <идентификатор_сервисного_аккаунта_кластера> \ --log-enabled \ --log-greenplum-enabled \ --log-command-center-enabled \ --log-group-id <идентификатор_лог-группы>Где:
-
--service-account— идентификатор созданного ранее сервисного аккаунта. -
--log-enabled— включает механизм передачи логов. Обязателен для работы других флагов, отвечающих за передачу конкретных логов, например,--log-greenplum-enabled. -
--log-greenplum-enabled— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages. Подробнее о дополнительных настройках Greenplum®. -
--log-command-center-enabled— передача логов командного центра.Логи командного центра передаются полностью, изменить уровень логирования нельзя.
-
--log-group-id— идентификатор лог-группы, в которую будут записываться логи.
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
В конфигурационном файле с описанием кластера укажите следующие параметры:
resource "yandex_mdb_greenplum_cluster" "gp-cluster" { name = "<имя_кластера>" environment = "PRODUCTION" network_id = "<идентификатор_сети>" zone = "<идентификатор_зоны_доступности>" subnet_id = "<идентификатор_подсети_кластера>" assign_public_ip = true version = "6.25" master_host_count = 2 segment_host_count = 2 segment_in_host = 2 service_account_id = "<идентификатор_сервисного_аккаунта>" master_subcluster { resources { resource_preset_id = "s3-c8-m32" # 8 vCPU, 32 GB RAM disk_size = 10 # GB disk_type_id = "network-hdd" } } segment_subcluster { resources { resource_preset_id = "s3-c8-m32" # 8 vCPU, 32 GB RAM disk_size = 93 # GB disk_type_id = "network-ssd-nonreplicated" } } user_name = "<имя_пользователя_кластера>" user_password = "<пароль_пользователя_кластера>" security_group_ids = ["<идентификаторы_групп_безопасности_кластера>"] logging { enabled = true greenplum_enabled = true command_center_enabled = true log_group_id = <идентификатор_лог-группы> } }Где:
-
service_account_id— идентификатор созданного ранее сервисного аккаунта. -
enabled— управляет механизмом передачи логов. Для работы параметров, отвечающих за передачу конкретных логов, передайте значениеtrue. -
greenplum_enabled— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages. Подробнее о дополнительных настройках Greenplum®. -
command_center_enabled— передача логов командного центра.Логи командного центра передаются полностью, изменить уровень логирования нельзя.
-
log_group_id— идентификатор лог-группы, в которую будут записываться логи.
-
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
В теле запроса на создание кластера (Cluster.Create в REST API или ClusterService.Create в gRPC API) укажите следующие параметры:
{ ... "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": "true", "greenplumEnabled": "true", "commandCenterEnabled": "true", "logGroupId": "<идентификатор_лог-группы>" } ... }Где:
-
serviceAccountId— идентификатор созданного ранее сервисного аккаунта. -
enabled— управляет механизмом передачи логов. Для работы параметров, отвечающих за передачу конкретных логов, передайте значениеtrue. -
greenplumEnabled— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages. Подробнее о дополнительных настройках Greenplum®. -
commandCenterEnabled— передача логов командного центра.Логи командного центра передаются полностью, изменить уровень логирования нельзя.
-
logGroupId— идентификатор лог-группы.
-
-
Проверьте передачу логов кластера в лог-группу:
Консоль управленияCLIAPI- В консоли управления перейдите в нужный каталог.
- Выберите сервис Cloud Logging.
- Нажмите на строку с лог-группой
greenplum-log-group.
На открывшейся странице отобразятся записи.
Чтобы посмотреть записи в формате JSON, выполните команду:
yc logging read --group-name=greenplum-log-group --format=jsonРезультат:
[ { "uid": "22:********:15", "resource": { "type": "mdb.greenplum.cluster", "id": "c9qao2tkhbdt********" }, "timestamp": "2025-04-25T07:50:21.871157Z", "ingested_at": "2025-04-25T07:50:24.553Z", "saved_at": "2025-04-25T07:50:26.125189Z", "level": "INFO", "message": "2025-04-25 10:50:20.209664 MSK,\"monitor\",\"postgres\",p29034,th1258748352,\"localhost\",\"47384\",2025-04-25 07:38:20 MSK,0,con40,cmd20190,seg-1,,,,sx1,\"LOG\",\"00000\",\"statement: \n\t\treset log_min_messages\n\t\",,,,,,,0,,\"postgres.c\",1664,", "json_payload": { "cid": "c9qao2tkhbdt********", "gp_host_type": "master", "gp_preferred_role": "primary", "hostname": "rc1d-jds7okr4********.mdb.yandexcloud.net", "segment_id": "-1", "username": "monitor" }, "stream_name": "greenplum-logs-master-primary" } ]Чтобы посмотреть записи в лог-группе, воспользуйтесь вызовом REST API Cluster.ListLogs или gRPC API LogReadingService/Read.
Подробнее см. в разделе Чтение записей.