싱크 개요

이 페이지에서는 Cloud Logging이 로그를 라우팅하는 방식을 제어하는 싱크에 대한 개념적 개요를 제공합니다.

싱크를 사용하면 일부 또는 모든 로그를 지원되는 대상으로 라우팅하거나 로그 항목이 Cloud Logging에 저장되지 않도록 제외할 수 있습니다. 로그 라우팅 방식을 제어해야 하는 이유는 다음과 같을 수 있습니다.

  • 읽을 가능성이 없지만 규정 준수를 위해 유지해야 하는 로그를 저장하기 위해
  • 로그에 빅데이터 분석 도구를 사용하기 위해
  • 로그를 다른 애플리케이션, 다른 저장소, 제3자로 스트리밍하기 위해

싱크의 작동 방식

Cloud Logging API에 기록되는 모든 로그 항목은 로그 라우터를 통해 전달됩니다. 클라우드 프로젝트, 폴더, 청구 계정, 조직 리소스에 로그 항목이 도착할 때마다 Logging은 리소스와 연관된 싱크의 필터와 로그 항목을 비교합니다.

필터 및 대상을 포함하는 로그 싱크 구성에 따라 Cloud Logging에서 수신되는 모든 로그 항목은 다음 카테고리 중 하나에 포함됩니다.

  • Cloud Logging에 저장되고 다른 곳으로 라우팅되지 않음
  • Cloud Logging에 저장되고 또한 지원되는 대상으로 라우팅됨
  • Cloud Logging에 저장되지 않지만 지원되는 대상으로 라우팅됨
  • Cloud Logging에 저장되지 않고 다른 곳으로 라우팅되지 않음
    • 이러한 로그는 완전히 제외됩니다.

Cloud Logging은 각 Google Cloud 프로젝트에 대해 _Required_Default라는 두 개의 미리 정의된 로그 싱크를 제공합니다. Google Cloud 프로젝트에서 생성되는 모든 로그는 이러한 두 가지 로그 싱크를 통해 자동으로 처리된 후 _Required_Default라는 로그 버킷에 저장됩니다.

로그 싱크는 서로 독립적으로 작동합니다. 사전 정의된 로그 싱크가 로그 항목을 처리하는 방식에 관계없이 싱크를 만들어 일부 또는 전체 로그를 여러 지원되는 대상으로 라우팅하거나 Cloud Logging에서 저장되지 않도록 완전히 제외할 수 있습니다.

싱크는 일반적으로 Google Cloud 프로젝트에 생성됩니다. 조직, 폴더, 청구 계정 수준에서 싱크를 설정하려면 집계 싱크를 사용합니다.

싱크 경로 라우팅에 대한 자세한 내용은 라우팅 및 스토리지 개요를 참조하세요.

지원되는 대상

로그 라우팅에는 라우팅하려는 로그 항목을 선택하는 필터로 싱크를 만들고 다음 옵션 중에서 대상을 선택하는 과정이 포함됩니다.

  • Cloud Storage: Cloud Storage 버킷에 저장된 JSON 파일입니다. 저렴한 장기 스토리지를 제공합니다.
  • BigQuery: BigQuery 데이터 세트에 생성되는 테이블입니다. 빅 데이터 분석 기능을 제공합니다.
  • Pub/Sub: Pub/Sub 주제에 전달되는 JSON 형식의 메시지입니다. Logging에서 Splunk와 같은 타사 통합을 지원합니다.
  • Cloud Logging: 로그 버킷에 저장되는 로그 항목입니다. Cloud Logging에서 맞춤설정 가능한 보관 기간의 스토리지를 제공합니다.

싱크 속성 및 용어

싱크에는 앞에서 언급한 필터 및 대상을 포함하여 여러 속성이 포함되어 있습니다.

  • 싱크 식별자: 싱크의 이름입니다. 예를 들면 my-vm-error-sink입니다.

  • 상위 리소스: 싱크를 만드는 Google Cloud 리소스입니다. 상위 항목은 다음 중 하나일 수 있습니다.

    • projects/PROJECT_ID
    • folders/FOLDER_ID
    • billingAccounts/BILLING_ACCOUNT_ID
    • organizations/ORGANIZATION_ID

    싱크는 상위 리소스에 속하는 로그를 라우팅합니다. 또한 집계 싱크를 사용하여 Google Cloud 조직의 모든 클라우드 프로젝트, 폴더, 청구 계정에서 로그를 조합하고 라우팅할 수 있습니다.

    싱크의 전체 리소스 이름은 상위 리소스와 싱크 식별자로 구성됩니다. 예를 들면 다음과 같습니다.

    projects/PROJECT_ID/sinks/SINK_ID

  • 포함 필터: 이 싱크를 통해 라우팅할 로그 항목을 선택합니다. 포함 필터 예시는 샘플 쿼리를 참조하세요.

  • 제외 필터: 로그 항목이 싱크의 포함 필터와 일치하더라도 라우팅되지 않도록 명시적으로 제외할 로그 항목을 선택합니다.

    싱크에는 여러 제외 필터가 포함될 수 있습니다. 로그 항목이 필터와 일치하면 해당 로그 항목이 라우팅에서 제외됩니다.

  • 대상: 필터와 일치하는 로그 항목을 전송할 위치입니다. 다음은 지원되는 대상의 이름입니다.

    • Cloud Storage 버킷: storage.googleapis.com/BUCKET_ID

    • BigQuery 데이터 세트: bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID

    • Pub/Sub 주제: pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID

    • Logging 버킷: logging.googleapis.com/projects/PROJECT_ID/locations/REGION/buckets/BUCKET_ID

    또한 하나의 클라우드 프로젝트에서 다른 클라우드 프로젝트의 대상으로 로그를 전송하기 위해 싱크를 만들 때 로그 탐색기에서 커스텀 대상 옵션을 지정할 수도 있습니다.

    대상에서 싱크의 서비스 계정이 작성자로 승인되는 한 모든 클라우드 프로젝트의 대상으로 로그를 라우팅할 수 있습니다.

  • 작성자 ID: 서비스 계정 이름입니다. 대상의 소유자가 대상에 쓰기 권한을 이 서비스 계정에 부여해야 합니다. 로그를 라우팅할 때 Logging은 이 ID를 사용하여 승인합니다. 보안 강화를 위해 새 싱크는 고유한 서비스 계정을 얻습니다.

    GENERATED_ID_1@GENERATED_ID_2.iam.gserviceaccount.com

    자세한 내용은 대상 위치 권한을 참조하세요.

  • includeChildren: 이 속성은 집계 싱크에 설명되어 있습니다. 이는 조직, 폴더, 청구 계정을 위해 생성된 싱크에만 관련이 있습니다.

싱크에 대한 자세한 내용은 LogSink 유형을 참조하세요.

액세스 제어

싱크를 만들거나 수정하려면 싱크의 상위 리소스에 Identity and Access Management 소유자 또는 Logging/로그 구성 작성자 역할이 있어야 합니다. 기존 싱크를 보려면 싱크의 상위 리소스에 IAM 뷰어 또는 로깅/로그 뷰어 역할이 있어야 합니다. 자세한 내용은 액세스 제어를 참조하세요.

로그를 대상으로 라우팅하려면 싱크의 작성자 서비스 계정에 해당 대상에 대한 쓰기 권한이 부여되어야 합니다. 작성자 ID에 대한 자세한 내용은 이 페이지의 싱크 속성을 참조하세요.

가격 책정

Cloud Logging은 로그를 라우팅하는 데 비용을 청구하지 않지만 대상 요금을 적용할 수도 있습니다. 자세한 내용은 해당 서비스의 가격 책정 세부정보를 참조하세요.

Virtual Private Cloud 흐름 로그를 전송한 후 Cloud Logging에서 제외하면 대상 요금 외에 VPC 흐름 로그 생성 요금이 부과됩니다.

다음 단계

로그 라우팅

로그 라우팅을 위해 싱크를 만들고 관리하는 방법은 다음 페이지를 참조하세요.

로그를 라우팅하는 방법은 다음 문서를 참조하세요.

로그 찾기 및 사용

라우팅된 로그 항목의 형식과 로그가 대상에서 어떻게 구성되는지 알아보려면 라우팅된 로그 찾기를 참조하세요.

Logging 라우팅 시나리오 살펴보기

다음 튜토리얼에서는 로그를 라우팅할 수 있는 시나리오를 설명합니다. 각 튜토리얼에는 요구사항, 설정, 사용법, 라우팅한 로그 공유 방법이 나와 있습니다.