Передача логов кластера Managed Service for Greenplum® в Yandex Cloud Logging
Вы можете настроить регулярный сбор логов о работе кластера Managed Service for Greenplum®. Логи поставляются в лог-группу в сервисе Cloud Logging. Можно выбрать лог-группу одного из двух типов:
Перед началом работы
Создайте сервисный аккаунт c ролью logging.writer.
Передача данных в лог-группу по умолчанию
- 
Создайте кластер Managed Service for Greenplum® с включенными настройками логирования и созданным ранее сервисным аккаунтом: Консоль управленияCLITerraformAPI- 
В консоли управления - 
Выберите сервис Managed Service for Greenplum. 
- 
Нажмите кнопку Создать кластер. 
- 
Введите имя кластера. 
- 
В блоке Сетевые настройки выберите: - Облачную сеть.
- Группу безопасности.
- Зону доступности и подсеть.
 
- 
В блоке Пользователь укажите реквизиты пользователя-администратора: - Имя пользователя — может содержать латинские буквы, цифры, дефис и подчеркивание, но не может начинаться с дефиса. Длина от 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— идентификатор каталога, в котором создан кластер Managed Service for 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.
- 
Создайте кластер Managed Service for Greenplum® с включенными настройками логирования и созданным ранее сервисным аккаунтом: Консоль управленияCLITerraformAPI- 
В консоли управления - 
Выберите сервис Managed Service for Greenplum. 
- 
Нажмите кнопку Создать кластер. 
- 
Введите имя кластера. 
- 
В блоке Сетевые настройки выберите: - Облачную сеть.
- Группу безопасности.
- Зону доступности и подсеть.
 
- 
В блоке Пользователь укажите реквизиты пользователя-администратора: - Имя пользователя — может содержать латинские буквы, цифры, дефис и подчеркивание, но не может начинаться с дефиса. Длина от 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. Подробнее см. в разделе Чтение записей.