로그 내보내기 개요

로그의 일부 또는 전부의 사본을 Stackdriver Logging 밖으로 내보낼 수 있습니다. 다음과 같은 이유로 로그를 내보낼 수 있습니다.

  • 로그를 더 오랫동안 보관하기 위해. Logging은 일반적으로 로그를 몇 년이 아니라 몇 주 동안 보관합니다. 자세한 내용은 할당량 정책을 참조하세요.
  • 로그에 빅데이터 분석 도구를 사용하기 위해.
  • 로그를 다른 애플리케이션, 다른 저장소, 제3자로 스트리밍하기 위해.

로그를 내보내는 방법을 확인하려면 이 페이지 끝의 다음 단계 섹션을 참조하세요.

내보내기 개요

아래의 다이어그램은 내보낸 로그 항목이 Stackdriver Logging에서 어떻게 처리되는지 보여줍니다.

로그 수명

내보내기는 내보내려는 로그 항목을 선택하는 필터를 작성하고 Cloud Storage, BigQuery, Cloud Pub/Sub에서 대상을 선택하는 과정입니다. 필터와 대상은 싱크라고 하는 객체에 보관됩니다. 싱크는 프로젝트, 조직, 폴더, 결제 계정에 만들 수 있습니다.

Logging에서 로그를 내보낼 때 요금이나 제한 사항이 적용되지는 않지만 로그 데이터를 보관하거나 전송할 때는 내보내기 대상 요금이 적용됩니다.

싱크 속성 및 용어

싱크는 다음과 같은 속성을 지닙니다.

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

  • 상위 리소스: 싱크가 만들어지는 리소스입니다. 상위 요소는 프로젝트일 때가 제일 많지만 다음 중 하나일 수도 있습니다.

    "projects/[PROJECT_ID]"
    "folders/[FOLDER_ID]"
    "billingAccounts/[BILLINGACCOUNT_ID]"
    "organizations/[ORGANIZATION_ID]"
    

    싱크는 그 상위 리소스에 속한 로그만 내보낼 수 있습니다. 이 규칙의 유일한 예외를 확인하려면 아래의 집계 내보내기 속성을 참조하세요.

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

    "projects/[PROJECT_ID]/sinks/[SINK_ID]"
    
  • 로그 필터: 이 싱크를 통해 어떤 로그 항목을 내보낼지 선택합니다. 자세한 내용은 고급 로그 필터를 참조하세요. 예를 들어 다음 필터는 지정한 Compute Engine VM 인스턴스에서 심각도가 ERROR 또는 그 이상인 모든 로그 항목을 선택합니다.

    resource.type = gce_instance AND
       resource.labels.instance_id = "[INSTANCE_ID]" AND
       severity >= ERROR
    
  • 대상: 필터와 일치하는 로그 항목을 전송할 단일 위치입니다. 지원되는 대상은 다음 세 가지입니다.

    • Cloud Storage 버킷은 비용이 저렴하고 오랫동안 보관할 수 있습니다.

      storage.googleapis.com/[BUCKET_ID]
      
    • BigQuery 데이터세트는 빅데이터 분석 기능을 제공합니다.

      bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]
      
    • Cloud Pub/Sub 주제는 로그 항목을 다른 애플리케이션 또는 저장소로 스트리밍합니다.

      pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]
      

    한 프로젝트의 로그를 다른 프로젝트의 싱크로 전송하는 내보내기를 만들 경우 로그 뷰어에서 커스텀 대상 옵션을 사용해도 됩니다. 자세한 내용은 싱크 만들기를 참조하세요.

    내보내기 대상이 싱크의 서비스 계정을 작성자로 승인하는 한, 로그를 모든 프로젝트의 대상으로 내보낼 수 있습니다.

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

    [GENERATED_ID_1]@[GENERATED_ID_2].iam.gserviceaccount.com
    

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

  • 집계 내보내기. includeChildren 속성은 집계 내보내기에서 설명합니다. 이는 조직 또는 폴더를 위해 생성된 싱크에만 관련이 있습니다.

싱크에 관한 자세한 내용은 LogSink 유형, projects.sinks.create API 메소드, API에서 로그 내보내기를 참조하세요.

싱크의 작동 방식

프로젝트, 폴더, 결제 계정, 조직 리소스에 로그 항목이 도착할 때마다 Logging은 이 로그 항목을 그 리소스의 싱크와 비교합니다. 필터가 로그 항목과 일치하는 모든 싱크는 싱크의 내보내기 대상에 해당 로그 항목의 사본을 만듭니다.

내보내기는 새 로그 항목에만 실행되므로 싱크가 생성되기 전에 Logging이 수신한 로그 항목은 내보낼 수 없습니다.

액세스 제어

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

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

내보낸 로그를 무단 액세스로부터 보호하려면 내보내기 대상의 액세스 제어 기능을 사용해야 합니다. 싱크는 비공개 데이터 액세스 제어 감사 로그를 비롯한 모든 로그 항목을 내보낼 수 있습니다.

문제해결

다음은 로그를 내보낼 때 발생할 수 있는 몇 가지 일반적인 문제와 그 해결책입니다.

  • 대상에서 발생하는 오류: 싱크에서 내보내기 대상의 사양을 확인하세요. projects.sinks.get을 사용하여 싱크의 작성자 ID를 찾고 내보내기 대상에 대한 쓰기 권한이 이 ID에 있는지 확인하세요. 오류가 해결되면 싱크가 로그 내보내기를 시작합니다.

  • 로그가 내보내지지 않음: 다음과 같은 몇 가지 이유가 있을 것입니다.

    • 싱크를 만든 이후로 일치하는 로그 항목이 수신되지 않았습니다. 새로운 로그 항목만 내보내집니다.
    • 필터가 잘못되었습니다. 필터의 단어 철자가 잘못되면 어떤 로그 항목도 일치하지 않습니다. 로그 뷰어의 고급 필터 인터페이스에서 동일한 필터를 사용하여 일치하는 로그 항목이 있는지 확인해보세요.
    • 내보내진 로그를 대상에서 확인하려면 약간의 지연 시간이 지나야 합니다. Cloud Storage 대상의 경우에는 특히 그렇습니다. 내보낸 로그 가용성을 참조하세요.

다음 단계

로그 내보내기

로그를 내보내는 방법을 알아보려면 다음 페이지를 참조하세요.

내보낸 로그 찾기 및 사용하기

내보낸 로그 항목의 형식에 관해 알아보고 내보낸 로그가 대상에서 어떻게 구성되는지 알아보려면 내보낸 로그 사용을 참조하세요.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Stackdriver Logging
도움이 필요하시나요? 지원 페이지를 방문하세요.