Передача логов кластера Apache Hive™ Metastore в Yandex Cloud Logging
Вы можете настроить регулярный сбор логов о работе кластера Apache Hive™ Metastore. Логи поставляются в лог-группу в сервисе Yandex Cloud Logging. Можно выбрать лог-группу одного из двух типов:
- лог-группа, которая используется по умолчанию в каталоге кластера;
- пользовательская лог-группа.
Перед началом работы
- Создайте сервисный аккаунт
metastore-logging-sa. - Назначьте сервисному аккаунту роль
managed-metastore.integrationProvider. - В подсети, к которой будет подключен кластер, настройте NAT-шлюз. Это нужно, чтобы кластер мог взаимодействовать с сервисами Yandex Cloud.
- Настройте группу безопасности.
Передача данных в лог-группу по умолчанию
-
Создайте кластер Apache Hive™ Metastore:
Консоль управленияCLIREST APIgRPC API-
В консоли управления
выберите нужный каталог. -
Выберите сервис Yandex MetaData Hub.
-
На панели слева выберите
Metastore-сервер. -
Нажмите кнопку Создать кластер.
-
Укажите имя кластера
metastore-cluster. -
В поле Сервисный аккаунт выберите
metastore-logging-sa. -
В блоке Сетевые настройки выберите сеть и подсеть с настроенным NAT-шлюзом. Укажите настроенную группу безопасности.
-
В блоке Логирование:
-
Включите опцию Запись логов.
-
Чтобы логи записывались в лог-группу по умолчанию, выберите значение Каталог в поле Назначение.
-
Укажите каталог, лог-группу которого нужно использовать.
-
Выберите минимальный уровень логирования.
В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —
TRACE,DEBUG,INFO,WARN,ERRORиFATAL. Уровень по умолчанию —INFO.
-
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду
yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров--folder-nameили--folder-id.Выполните команду:
yc managed-metastore cluster create \ --name metastore-cluster \ --service-account-id <идентификатор_сервисного_аккаунта> \ --version <версия_Apache Hive™ Metastore> \ --subnet-ids <идентификаторы_подсетей> \ --security-group-ids <идентификаторы_групп_безопасности> \ --resource-preset-id <идентификатор_вычислительных_ресурсов> \ --log-enabled \ --log-folder-id <идентификатор_каталога> \ --log-min-level <уровень_логирования>Где:
--service-account-id— идентификатор созданного ранее сервисного аккаунтаmetastore-logging-sa.--subnet-ids— идентификатор подсети с настроенным NAT-шлюзом.--security-group-ids— идентификатор настроенной ранее группы безопасности.--log-folder-id— идентификатор каталога, лог-группу которого нужно использовать.--log-min-level— уровень логирования. В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —TRACE,DEBUG,INFO,WARN,ERRORиFATAL. Уровень по умолчанию —INFO.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "folderId": "<идентификатор_каталога>", "name": "metastore-cluster", "version": "<версия_Apache Hive™ Metastore>", "configSpec": { "resources": { "resourcePresetId": "<идентификатор_конфигурации_ресурсов>" } }, "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": true, "folderId": "<идентификатор_каталога>", "minLevel": "<уровень_логирования>" }, "network": { "subnetIds": [ "<список_идентификаторов_подсетей>" ], "securityGroupIds": [ "<список_идентификаторов_групп_безопасности>" ] }, }Где:
serviceAccountId— идентификатор созданного ранее сервисного аккаунтаmetastore-logging-sa.logging.folderId— идентификатор каталога, лог-группу которого нужно использовать.logging.minLevel— уровень логирования. В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —TRACE,DEBUG,INFO,WARN,ERRORиFATAL. Уровень по умолчанию —INFO.network.subnetIds— идентификатор подсети с настроенным NAT-шлюзом.network.securityGroupIds— идентификатор настроенной ранее группы безопасности.
-
Воспользуйтесь методом Cluster.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://metastore.api.cloud.yandex.net/managed-metastore/v1/clusters' \ --data '@body.json' -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "folder_id": "<идентификатор_каталога>", "name": "metastore-cluster", "version": "<версия_Apache Hive™ Metastore>", "config_spec": { "resources": { "resource_preset_id": "<идентификатор_конфигурации_ресурсов>" } }, "service_account_id": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": true, "folder_id": "<идентификатор_каталога>", "min_level": "<уровень_логирования>" }, "network": { "subnet_ids": [ "<список_идентификаторов_подсетей>" ], "security_group_ids": [ "<список_идентификаторов_групп_безопасности>" ] }, }Где:
service_account_id— идентификатор созданного ранее сервисного аккаунтаmetastore-logging-sa.logging.folder_id— идентификатор каталога, лог-группу которого нужно использовать.logging.min_level— уровень логирования. В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —TRACE,DEBUG,INFO,WARN,ERRORиFATAL. Уровень по умолчанию —INFO.network.subnet_ids— идентификатор подсети с настроенным NAT-шлюзом.network.security_group_ids— идентификатор настроенной ранее группы безопасности.
-
Воспользуйтесь вызовом ClusterService.Create и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/metastore/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ metastore.api.cloud.yandex.net:443 \ yandex.cloud.metastore.v1.ClusterService.Create \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Проверьте передачу логов кластера в лог-группу:
Консоль управленияCLIAPI- В консоли управления перейдите в нужный каталог.
- Выберите сервис Cloud Logging.
- Нажмите на строку с лог-группой
default.
На открывшейся странице отобразятся записи.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду
yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров--folder-nameили--folder-id.Чтобы посмотреть записи в формате JSON, выполните команду:
yc logging read --group-name=default --format=jsonРезультат:
[ { "uid": "23:6d******:3", "resource": { "type": "managed-metastore.cluster", "id": "c9qcv46p3g3a********" }, "timestamp": "2024-11-18T09:45:23.092484Z", "ingested_at": "2024-11-18T09:45:24Z", "saved_at": "2024-11-18T09:45:25.559195Z", "level": "INFO", "message": "ugi=metastore\tip=10.253.89.135\tcmd=Done cleaning up thread local RawStore\t", "json_payload": { "instance": "metastore-server-5f9c7ff***-*****", "logger": "org.apache.hadoop.hive.metastore.HiveMetaStore.audit", "resource_id": "c9qcv46p3g3a********", "stream_name": "metastore-server", "thread": "pool-6-thread-79" }, "stream_name": "metastore-server" } ]Чтобы посмотреть записи в лог-группе, воспользуйтесь вызовом gRPC API LogReadingService.Read.
Подробнее см. в разделе Чтение записей.
Передача данных в пользовательскую лог-группу
-
Создайте лог-группу
metastore-log-group. -
Создайте кластер Apache Hive™ Metastore:
Консоль управленияCLIREST APIgRPC API-
В консоли управления
выберите нужный каталог. -
Выберите сервис Yandex MetaData Hub.
-
На панели слева выберите
Metastore-сервер. -
Нажмите кнопку Создать кластер.
-
Укажите имя кластера
metastore-cluster. -
В поле Сервисный аккаунт выберите
metastore-logging-sa. -
В блоке Сетевые настройки выберите сеть и подсеть с настроенным NAT-шлюзом. Укажите настроенную группу безопасности.
-
В блоке Логирование:
-
Включите опцию Запись логов.
-
Чтобы логи записывались в пользовательскую лог-группу, выберите значение Лог-группа в поле Назначение.
-
Укажите лог-группу
metastore-log-group. -
Выберите минимальный уровень логирования.
В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —
TRACE,DEBUG,INFO,WARN,ERRORиFATAL. Уровень по умолчанию —INFO.
-
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду
yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров--folder-nameили--folder-id.Выполните команду:
yc managed-metastore cluster create \ --name metastore-cluster \ --service-account-id <идентификатор_сервисного_аккаунта> \ --version <версия_Apache Hive™ Metastore> \ --subnet-ids <идентификаторы_подсетей> \ --security-group-ids <идентификаторы_групп_безопасности> \ --resource-preset-id <идентификатор_вычислительных_ресурсов> \ --log-enabled \ --log-group-id <идентификатор_лог-группы> \ --log-min-level <уровень_логирования>Где:
--service-account-id— идентификатор созданного ранее сервисного аккаунтаmetastore-logging-sa.--subnet-ids— идентификатор подсети с настроенным NAT-шлюзом.--security-group-ids— идентификатор настроенной ранее группы безопасности.--log-group-id— идентификатор лог-группыmetastore-log-group.--log-min-level— уровень логирования. В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —TRACE,DEBUG,INFO,WARN,ERRORиFATAL. Уровень по умолчанию —INFO.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "folderId": "<идентификатор_каталога>", "name": "metastore-cluster", "version": "<версия_Apache Hive™ Metastore>", "configSpec": { "resources": { "resourcePresetId": "<идентификатор_конфигурации_ресурсов>" } }, "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": true, "logGroupId": "<идентификатор_лог-группы>", "minLevel": "<уровень_логирования>" }, "network": { "subnetIds": [ "<список_идентификаторов_подсетей>" ], "securityGroupIds": [ "<список_идентификаторов_групп_безопасности>" ] }, }Где:
serviceAccountId— идентификатор созданного ранее сервисного аккаунтаmetastore-logging-sa.logging.logGroupId— идентификатор лог-группыmetastore-log-group.logging.minLevel— уровень логирования. В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —TRACE,DEBUG,INFO,WARN,ERRORиFATAL. Уровень по умолчанию —INFO.network.subnetIds— идентификатор подсети с настроенным NAT-шлюзом.network.securityGroupIds— идентификатор настроенной ранее группы безопасности.
-
Воспользуйтесь методом Cluster.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://metastore.api.cloud.yandex.net/managed-metastore/v1/clusters' \ --data '@body.json' -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "folder_id": "<идентификатор_каталога>", "name": "metastore-cluster", "version": "<версия_Apache Hive™ Metastore>", "config_spec": { "resources": { "resource_preset_id": "<идентификатор_конфигурации_ресурсов>" } }, "service_account_id": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": true, "log_group_id": "<идентификатор_лог-группы>", "min_level": "<уровень_логирования>" }, "network": { "subnet_ids": [ "<список_идентификаторов_подсетей>" ], "security_group_ids": [ "<список_идентификаторов_групп_безопасности>" ] }, }Где:
service_account_id— идентификатор созданного ранее сервисного аккаунтаmetastore-logging-sa.logging.log_group_id— идентификатор лог-группыmetastore-log-group.logging.min_level— уровень логирования. В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —TRACE,DEBUG,INFO,WARN,ERRORиFATAL. Уровень по умолчанию —INFO.network.subnet_ids— идентификатор подсети с настроенным NAT-шлюзом.network.security_group_ids— идентификатор настроенной ранее группы безопасности.
-
Воспользуйтесь вызовом ClusterService.Create и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/metastore/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ metastore.api.cloud.yandex.net:443 \ yandex.cloud.metastore.v1.ClusterService.Create \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Проверьте передачу логов кластера в лог-группу:
Консоль управленияCLIAPI- В консоли управления перейдите в нужный каталог.
- Выберите сервис Cloud Logging.
- Нажмите на строку с лог-группой
metastore-log-group.
На открывшейся странице отобразятся записи.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду
yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров--folder-nameили--folder-id.Чтобы посмотреть записи в формате JSON, выполните команду:
yc logging read --group-name=metastore-log-group --format=jsonРезультат:
[ { "uid": "23:6d******:3", "resource": { "type": "managed-metastore.cluster", "id": "c9qcv46p3g3a********" }, "timestamp": "2024-11-18T09:45:23.092484Z", "ingested_at": "2024-11-18T09:45:24Z", "saved_at": "2024-11-18T09:45:25.559195Z", "level": "INFO", "message": "ugi=metastore\tip=10.253.89.135\tcmd=Done cleaning up thread local RawStore\t", "json_payload": { "instance": "metastore-server-5f9c7ff***-*****", "logger": "org.apache.hadoop.hive.metastore.HiveMetaStore.audit", "resource_id": "c9qcv46p3g3a********", "stream_name": "metastore-server", "thread": "pool-6-thread-79" }, "stream_name": "metastore-server" } ]Чтобы посмотреть записи в лог-группе, воспользуйтесь вызовом gRPC API LogReadingService.Read.
Подробнее см. в разделе Чтение записей.
Apache® и Apache Hive™