Передача логов кластера Managed Service for Greenplum® в Yandex Cloud Logging
Вы можете настроить регулярный сбор логов о работе кластера Managed Service for Greenplum®. Логи поставляются в лог-группу в сервисе Cloud Logging. Можно выбрать лог-группу одного из двух типов:
Перед началом работы
Создайте сервисный аккаунт c ролью logging.writer
.
Передача данных в лог-группу по умолчанию
-
Создайте кластер Managed Service for Greenplum® с включенными настройками логирования и созданным ранее сервисным аккаунтом:
CLITerraformAPIyc 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_id
— идентификатор созданного ранее сервисного аккаунта. -
--log-greenplum-enabled
— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages
. Подробнее о дополнительных настройках Greenplum®. -
--log-command-center-enabled
— передача логов Yandex Command Center.Логи Command Center передаются полностью, изменить уровень логирования нельзя.
-
--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
— идентификатор созданного ранее сервисного аккаунта. -
greenplum-enabled
— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages
. Подробнее о дополнительных настройках Greenplum®. -
command-center-enabled
— передача логов Yandex Command Center.Логи Command Center передаются полностью, изменить уровень логирования нельзя.
-
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
— идентификатор созданного ранее сервисного аккаунта. -
greenplumEnabled
— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages
. Подробнее о дополнительных настройках Greenplum®. -
commandCenterEnabled
— передача логов Yandex Command Center.Логи Command Center передаются полностью, изменить уровень логирования нельзя.
-
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® с включенными настройками логирования и созданным ранее сервисным аккаунтом:
CLITerraformAPIyc 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 <идентификатор_каталога> --log-group-id <идентификатор_лог-группы>
Где:
-
--service_account_id
— идентификатор созданного ранее сервисного аккаунта. -
--log-greenplum-enabled
— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages
. Подробнее о дополнительных настройках Greenplum®. -
--log-command-center-enabled
— передача логов Yandex Command Center.Логи Command Center передаются полностью, изменить уровень логирования нельзя.
-
--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
— идентификатор созданного ранее сервисного аккаунта. -
greenplum-enabled
— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages
. Подробнее о дополнительных настройках Greenplum®. -
command-center-enabled
— передача логов Yandex Command Center.Логи Command Center передаются полностью, изменить уровень логирования нельзя.
-
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
— идентификатор созданного ранее сервисного аккаунта. -
greenplumEnabled
— передача логов Greenplum®.Вы можете задать уровень логирования Greenplum® в параметре
Log min messages
. Подробнее о дополнительных настройках Greenplum®. -
commandCenterEnabled
— передача логов Yandex Command Center.Логи Command Center передаются полностью, изменить уровень логирования нельзя.
-
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.
Подробнее см. в разделе Чтение записей.