Dataflow 로그 수집 제어

제외 필터를 사용하면 디버깅을 위해 상세 로깅을 계속 수행하는 동안 Cloud Logging에서 수집한 Dataflow 로그의 볼륨을 제어할 수 있습니다. 제외 필터를 사용하여 일치하는 로그 항목이 Cloud Logging에서 수집되거나 싱크 대상으로 라우팅되지 않도록 제외할 수 있습니다. Logging 쿼리 언어를 사용하여 제외 필터를 만듭니다. Logging 쿼리 언어를 사용하면 프로젝트나 폴더와 같이 선택한 Google Cloud 리소스에 있는 모든 로그 항목의 하위 집합을 지정할 수 있습니다.

제외 필터를 사용하면 Dataflow 로그 수집으로 인해 발생하는 Cloud Logging 비용을 줄일 수 있습니다. Cloud Logging의 로그 수집 가격에 대한 자세한 내용은 Cloud Logging 가격 책정 요약을 참조하세요. 제외 필터의 작동 방식과 제한사항에 대한 자세한 내용은 Cloud Logging 문서의 제외 필터를 참조하세요.

Dataflow 작업은 여러 로그 유형을 내보냅니다. 이 페이지에서는 Dataflow 작업 로그 및 작업자 로그를 필터링하는 방법을 보여줍니다.

로그 제외 필터 만들기

이 예시에서는 _Default Cloud Logging 싱크에서 제외 필터를 만듭니다. 이 필터는 DEFAULT, DEBUG, INFO, NOTICE 심각도 Dataflow 로그가 모두 Cloud Logging에 수집되지 않도록 제외합니다. WARNING, ERROR, CRITICAL, ALERT, EMERGENCY 심각도 로그는 계속 캡처됩니다. 지원되는 로그 수준에 대한 자세한 내용은 LogSeverity를 참조하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

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

    Go to project selector

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

권한

시작할 때 다음 사항을 확인하시기 바랍니다.

  • 로그 탐색기에서 볼 수 있는 로그가 포함된 Google Cloud 프로젝트가 있어야 합니다.

  • 로그를 라우팅할 소스 Google Cloud 프로젝트에 대해 다음 IAM 역할 중 하나가 있어야 합니다.

    • 소유자(roles/owner)
    • Logging 관리자(roles/logging.admin)
    • 로그 구성 작성자(roles/logging.configWriter)

    이러한 역할에 포함된 권한을 사용하면 싱크를 생성, 삭제 또는 수정할 수 있습니다. IAM 역할 설정에 대한 자세한 내용은 Logging 액세스 제어 가이드를 참조하세요.

  • 지원되는 대상에 리소스가 있거나 이를 만들 수 있습니다.

    Google Cloud CLI, Google Cloud 콘솔 또는 Google Cloud API를 통해 싱크 전에 라우팅 대상을 만들어야 합니다. 모든 조직의 모든 Google Cloud 프로젝트에서 대상을 만들 수 있습니다. 대상을 만들기 전에 싱크의 서비스 계정에 대상에 쓰기 권한이 있는지 확인합니다.

제외 필터 추가

다음 단계에서는 Dataflow 로그에 Cloud Logging 제외 필터를 추가하는 방법을 설명합니다. 이 제외 필터는 debug 문자열로 끝나지 않는 Dataflow 작업에서 심각도가 DEFAULT, DEBUG, INFO, NOTICE인 Dataflow 로그 항목을 모두 선택합니다. 필터는 이러한 로그가 Default Cloud Logging 버킷에서 수집되지 않도록 제외합니다.

  1. Google Cloud 콘솔에서 로그 라우터 페이지로 이동합니다.

    로그 라우터로 이동

  2. _Default 싱크가 있는 행을 찾아 작업 옵션을 펼친 다음 싱크 수정을 클릭합니다.

  3. 싱크에서 필터링할 로그 선택에서 제외 필터 빌드에 대해 제외 추가를 클릭합니다.

  4. 제외 필터의 이름을 입력합니다.

  5. 제외 필터 빌드 섹션에서 다음 텍스트를 상자에 붙여넣습니다.

    resource.type="dataflow_step" AND
    labels."dataflow.googleapis.com/job_name"!~".*debug" AND
    severity=(DEFAULT OR DEBUG OR INFO OR NOTICE)
    
    • 첫 번째 줄은 Dataflow 서비스에서 생성된 모든 로그 항목을 선택합니다.
    • 두 번째 줄은 job_name 필드가 debug 문자열로 끝나지 않는 모든 로그 항목을 선택합니다.
    • 세 번째 줄은 심각도가 DEFAULT, DEBUG, INFO 또는 NOTICE인 모든 로그 항목을 선택합니다.
  6. 싱크 업데이트를 클릭합니다.

제외 필터 테스트

샘플 Dataflow 작업을 실행한 다음 로그를 확인하여 필터가 제대로 작동하는지 확인할 수 있습니다.

작업 실행이 시작된 후 작업 로그를 보려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 Dataflow 작업 페이지로 이동합니다.

    작업으로 이동

    Dataflow 작업 목록이 상태와 함께 표시됩니다.

  2. 작업을 선택합니다.

  3. 작업 세부정보 페이지의 로그 패널에서 표시를 클릭합니다.

  4. 작업 로그 패널에 로그가 표시되지 않고 DEFAULT, DEBUG, INFO 또는NOTICE 로그가 작업자 로그 패널에 표시되지 않는지 확인합니다.

제외 필터 우회

Dataflow 작업 이름(job_name)은 생성된 Dataflow 로그를 캡처해야 하는 시나리오의 우회 메커니즘을 제공하는 데 사용됩니다. 이 우회를 사용하여 실패한 작업을 다시 실행하고 모든 로그 정보를 캡처할 수 있습니다.

이 시나리오에서 만든 필터는 job_name 필드가 debug 문자열로 끝나는 경우 모든 로그 항목을 유지합니다. 제외 필터를 우회하고 Dataflow 작업의 모든 로그를 표시하려면 작업 이름에 debug를 추가합니다. 예를 들어 제외 필터를 우회하려면 작업 이름 dataflow-job-debug를 사용할 수 있습니다.

로그 수 비교

제외 필터가 있는 로그와 없는 로그의 볼륨을 비교하려면 작업 이름에 debug가 추가된 작업과 그렇지 않은 작업을 각각 하나씩 실행합니다. 시스템 정의 로그 기반 측정항목 로그 바이트를 사용하여 수집 데이터를 보고 비교합니다. 수집 데이터 보기에 대한 자세한 내용은 측정항목 탐색기에서 수집 데이터 보기를 참조하세요.

외부 대상 만들기

선택적으로 제외 필터를 만든 후 추가 Cloud Logging 싱크를 만들 수 있습니다. 이 싱크를 사용하여 전체 Dataflow 로그 세트를 BigQuery, Pub/Sub 또는 Splunk 등 지원되는 외부 대상으로 리디렉션할 수 있습니다.

이 시나리오에서 외부 로그는 로그 탐색기에 저장되지 않지만 외부 대상에서 사용할 수 있습니다. 외부 대상을 사용하면 로그 탐색기에 로그를 저장하여 발생하는 비용을 더 세밀하게 제어할 수 있습니다.

Cloud Logging이 로그를 라우팅하는 방식을 제어하는 단계는 싱크 구성 및 관리를 참조하세요. 외부 대상에 모든 Dataflow 로그를 캡처하려면 싱크에 포함할 로그 선택 패널의 포함 필터 빌드 필드에 다음 필터 표현식을 입력합니다.

resource.type="dataflow_step"

Cloud Logging에서 지원되는 대상으로 라우팅한 로그 항목을 찾으려면 싱크 대상에서 로그 보기를 참조하세요.

심각도별로 Dataflow 로그 메시지 추적

사용자 정의 로그 기반 측정항목에는 제외 필터가 적용되지 않습니다. 이 측정항목은 지정된 필터와 일치하는 로그 항목 수를 세거나 일치하는 로그 항목에 있는 특정 값을 기록합니다. 심각도를 기반으로 Dataflow 로그 메시지 수를 추적하려면 Dataflow 로그에 대한 로그 기반 측정항목을 만들면 됩니다. 로그 메시지가 수집에서 제외되는 경우에도 로그가 추적됩니다.

사용자 정의 로그 기반 측정항목에 대한 요금이 청구됩니다. 가격 정보는 요금이 부과되는 측정항목을 참조하세요.

사용자 정의 로그 기반 측정항목을 구성하려면 카운터 측정항목 만들기를 참조하세요. Dataflow 로그를 추적하려면 필터 선택 섹션의 빌드 필터 상자에서 다음 텍스트를 입력하세요.

resource.type="dataflow_step"