로그 버킷에 연결된 BigQuery 데이터 세트 만들기

BigQuery Studio 또는 데이터 스튜디오와 같은 BigQuery 서비스를 사용하여 로그 데이터를 분석하려면 로그 버킷에 연결된 BigQuery 데이터 세트를 만듭니다. 이 데이터 세트를 사용하면 로그 데이터를 다른 데이터 세트와 조인할 수 있습니다. SQL 쿼리의 결과를 모니터링하는 알림 정책을 만들 수도 있습니다.

연결된 BigQuery 데이터 세트 는 로그 버킷에 대한 읽기 전용 포인터입니다. 이를 통해 데이터를 복제하거나 BigQuery에서 별도의 스토리지를 구매하지 않고도 BigQuery 서비스를 사용하여 로그 데이터를 쿼리할 수 있습니다.

분석 뷰 연결된 BigQuery 데이터 세트를 만들 수 없습니다.

모니터링 가능성 분석에 익숙하지 않으면 모니터링 가능성 분석 개요를 참조하세요.

연결된 BigQuery 데이터 세트가 필요한 경우

로그 데이터를 쿼리하거나 로그 및 trace 데이터를 쿼리할 때는 연결된 BigQuery 데이터 세트가 필요하지 않습니다. 이러한 시나리오에서는 모니터링 가능성 분석 페이지를 사용할 수 있습니다. 쿼리를 저장 및 공유하고 쿼리를 커스텀 대시보드에 저장할 수도 있습니다. trace 데이터 쿼리에 대한 자세한 내용은 trace 쿼리 및 분석을 참조하세요.

다음 작업을 수행하려면 연결된 BigQuery 데이터 세트가 필요합니다.

  • 로그 항목 데이터를 다른 BigQuery 데이터 세트와 조인합니다.
  • BigQuery Studio 또는 데이터 스튜디오와 같은 다른 서비스에서 로그 데이터를 쿼리합니다.
  • SQL 쿼리 결과를 모니터링하는 알림 정책을 만듭니다. 자세한 내용은 알림 정책으로 SQL 쿼리 결과 모니터링을 참조하세요.

로그 버킷의 연결된 BigQuery 데이터 세트를 사용하면 BigQuery에서 로그 버킷의 데이터를 읽을 수 있습니다.

로그 버킷 및 로그 뷰가 BigQuery 객체에 매핑되는 방식

로그 버킷의 연결된 BigQuery 데이터 세트를 만들면 BigQuery에서 새 데이터 세트를 사용할 수 있게 됩니다. 연결 프로세스 중에 연결된 BigQuery 데이터 세트 이름을 지정합니다. 로그 버킷 내 모든 로그 뷰는 데이터 세트의 가상 뷰에 자동으로 매핑됩니다. 가상 뷰 이름은 해당 로그 뷰 이름과 동일합니다.

예를 들어 프로젝트 my_project에 로그 버킷 example이 있고 이 로그 버킷에 로그 뷰 _AllLogs가 있다고 가정해 보겠습니다. 이름 my_dataset으로 해당 로그 버킷의 연결된 BigQuery 데이터 세트를 만들면 BigQuery의 탐색기 페이지에 my_project 항목이 표시됩니다. my_project 항목의 하위 요소는 데이터 세트 my_dataset이며 이 데이터 세트에는 가상 뷰 _AllLogs가 나열됩니다.

연결된 BigQuery 데이터 세트를 사용할 때의 액세스 제어 영향

주 구성원이 연결된 BigQuery 데이터 세트에서 뷰를 쿼리하면 Cloud Logging 권한 레이어가 아닌 BigQuery 권한 레이어를 통해 쿼리가 실행됩니다. 따라서 주 구성원에게 부여된 연결된 BigQuery 데이터 세트에 대한 BigQuery 역할과 권한에 따라 데이터 세트 쿼리 여부가 결정됩니다.

주 구성원을 연결된 데이터 세트 내 특정 가상 뷰로 제한할 수 없습니다. 연결된 BigQuery 데이터 세트에 대한 액세스 권한이 부여된 주 구성원은 해당 데이터 세트의 모든 뷰를 쿼리할 수 있습니다.

연결된 데이터 세트를 만들 때 발생하는 시스템 작업

모니터링 가능성 데이터 세트에 링크를 만들면 다음이 발생합니다.

  • Google Cloud Observability에서 다음 서비스 계정을 만들거나 IAM 역할 부여를 수정할 수 있습니다.

  • 감사 로그는 링크를 만드는 요청과 서비스 에이전트 관리자가 모니터링 서비스 계정에 IAM 역할인 모니터링 서비스 에이전트를 부여하는 요청을 기록합니다. 이러한 로그는 장기 실행 작업의 완료도 기록합니다.

시작하기 전에

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. 연결된 데이터 세트를 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 로그 구성 작성자 (roles/logging.configWriter) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

    커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

  4. 모니터링 가능성 분석을 사용하도록 로그 버킷이 업그레이드되었는지 확인합니다.

    1. 콘솔 Google Cloud 에서 로그 스토리지 페이지로 이동합니다.

      로그 스토리지로 이동

      검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging 인 결과를 선택합니다.

    2. 로그 버킷에 업그레이드가 표시되면 업그레이드 를 클릭하고 대화상자를 완료합니다.

BigQuery의 기능을 사용하여 로그 데이터를 분석하려면 모니터링 가능성 분석을 사용하도록 로그 버킷을 업그레이드한 다음 연결된 데이터 세트를 만듭니다. 이 구성을 사용하면 Logging에서 로그 데이터를 저장하지만 BigQuery에서 로그 데이터를 읽을 수 있습니다.

Google Cloud 콘솔

기존 로그 버킷의 BigQuery 데이터 세트에 대한 링크를 만들려면 다음을 수행합니다.

  1. 콘솔 Google Cloud 에서 로그 스토리지 페이지로 이동합니다.

    로그 스토리지로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging 인 결과를 선택합니다.

  2. 로그 버킷을 찾고 모니터링 가능성 분석 사용 가능 열에 열기 가 표시되는지 확인합니다.

    이 열에 업그레이드가 표시되면 로그 버킷이 모니터링 가능성 분석을 사용하도록 업그레이드되지 않은 것입니다. 모니터링 가능성 분석을 구성합니다.

    1. 업그레이드 를 클릭합니다.
    2. 대화상자에서 확인을 클릭합니다.

    업그레이드가 완료되면 다음 단계로 진행합니다.

  3. 로그 버킷에서 더보기를 클릭한 다음 버킷 수정을 수정합니다.

    로그 버킷 수정 대화상자가 열립니다.

  4. 이 버킷에 연결되는 새 BigQuery 데이터 세트 만들기를 선택하고 새 데이터 세트의 이름을 입력합니다.

    데이터 세트 이름은 Google Cloud 프로젝트마다 고유해야 합니다. 기존 데이터 세트의 이름을 입력하면 Dataset name must be unique in the selected region. 오류가 표시됩니다.

  5. 완료를 클릭한 다음 버킷 업데이트를 클릭합니다.

    Logging의 로그 스토리지 페이지에 연결된 데이터 세트 이름이 표시된 후 BigQuery에서 데이터 세트를 인식하기까지 몇 분 정도 걸릴 수 있습니다.

gcloud

모니터링 가능성 분석을 사용하도록 업그레이드된 로그 버킷의 연결된 데이터 세트를 만들려면 다음 gcloud logging links create 명령어를 실행합니다.

gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION

제공하는 LINK_ID는 BigQuery 데이터 세트의 이름으로 사용되며 이 필드 값은 프로젝트에서 고유해야 합니다. Google Cloud

links create 명령어는 비동기식입니다. 비동기 메서드는 Operation 객체를 반환하며 메서드의 진행률에 대한 정보를 포함합니다. 메서드가 완료되면 Operation 객체에 상태가 포함됩니다. 자세한 내용은 비동기 API 메서드를 참조하세요.

links create 명령어가 완료되는 데 몇 분 정도 걸립니다.

예를 들어 다음 명령어는 my-bucket 로그 버킷의 연결된 데이터 세트 mylink를 만듭니다.

gcloud logging links create mylink --bucket=my-bucket --location=global

데이터 세트 이름은 Google Cloud 프로젝트마다 고유해야 합니다. 기존 데이터 세트와 이름이 같은 데이터 세트를 만들려고 하면 다음 오류가 표시됩니다.

BigQuery dataset with name "LINK_ID" already exists.

모니터링 가능성 분석을 사용하도록 업그레이드되지 않은 로그 버킷에 연결된 데이터 세트를 만들려고 하면 다음 오류가 보고됩니다.

A link can only be created for an analytics-enabled bucket.

REST

모니터링 가능성 분석을 사용하여 업그레이드된 기존 로그 버킷 에 연결된 BigQuery 데이터 세트를 만들려면 Cloud Logging API의 비동기 projects.locations.buckets.links.create 메서드를 호출합니다.

메서드의 인수를 다음과 같이 준비하세요.

  1. create 명령어의 요청 본문을 구성합니다. 요청 본문은 Link 객체로 형식이 지정됩니다.
  2. 명령어의 쿼리 매개변수에는 linkId=LINK_ID를 사용합니다. 제공하는 LINK_ID는 BigQuery 데이터 세트의 이름으로 사용되며 이 필드 값은 Google Cloud 프로젝트에서 고유해야 합니다.

비동기 메서드에 대한 응답은 Operation 객체입니다. 이 객체에는 메서드의 진행률에 대한 정보가 포함됩니다. 메서드가 완료되면 Operation 객체에 상태가 포함됩니다. 자세한 내용은 비동기 API 메서드를 참조하세요.

links.create 메서드가 완료되는 데 몇 분 정도 걸립니다.

데이터 세트 이름은 Google Cloud 프로젝트마다 고유해야 합니다. 기존 데이터 세트와 이름이 같은 데이터 세트를 만들려고 하면 다음 오류가 표시됩니다.

BigQuery dataset with name "LINK_ID" already exists.

모니터링 가능성 분석을 사용하도록 업그레이드되지 않은 로그 버킷에 연결된 데이터 세트를 만들려고 하면 다음 오류가 보고됩니다.

A link can only be created for an analytics-enabled bucket.

다음 단계