로그 애널리틱스에서 로그 쿼리 및 보기

이 문서에서는 로그 애널리틱스를 사용하도록 업그레이드되는 로그 버킷에 저장된 로그를 쿼리하고 보는 방법을 설명합니다. SQL을 사용하여 이러한 버킷에 있는 로그를 쿼리하면 로그를 필터링하고 집계할 수 있습니다. Cloud Logging의 로그 애널리틱스 기능에 대한 자세한 내용은 로그 애널리틱스 개요를 참조하세요.

로그 애널리틱스를 사용하도록 로그 버킷을 업그레이드하면 로그 탐색기에 대한 액세스를 제한하지 않습니다. 로그 탐색기를 사용하면 문제를 해결하고 이러한 버킷의 개별 로그 항목을 볼 수 있습니다.

로그 애널리틱스를 사용하도록 로그 버킷을 업그레이드하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

시작하기 전에

  • 로그 애널리틱스를 사용하도록 업그레이드된 로그 버킷이 있는지 확인합니다. 로그 스토리지 페이지에 로그 버킷과 해당 구성 정보가 나열됩니다.

    Google Cloud 콘솔의 탐색 패널에서 Logging을 선택한 후 로그 스토리지를 선택합니다.

    로그 스토리지로 이동

  • 로그 애널리틱스 페이지를 로드하고, 쿼리를 실행하고, 로그를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요

    역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

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

    로그 애널리틱스 페이지에서 로그 항목을 보고 쿼리를 실행하는 데 필요한 권한은 로그 탐색기에서 로그를 보는 데 필요한 권한과 동일합니다. 사용자 정의 버킷의 뷰를 쿼리하거나 _Default 로그 버킷의 _AllLogs 뷰를 쿼리해야 하는 추가 역할에 대한 자세한 내용은 Cloud Logging 역할을 참조하세요.

  • 로그 버킷의 연결된 BigQuery 데이터 세트를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 로그 링크 접근자(roles/logging.linkViewer) IAM 역할을 부여해 달라고 요청합니다.

  • BigQuery의 데이터를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청합니다.

로그 뷰 쿼리

문제를 해결할 때 패턴과 일치하는 필드가 있는 로그 항목을 카운트하거나 HTTP 요청의 평균 지연 시간을 계산해야 할 수 있습니다. 로그 뷰에서 SQL 쿼리를 실행하여 이러한 작업을 수행할 수 있습니다.

뷰에 대해 SQL 쿼리를 실행하려면 다음을 수행합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 로깅을 선택한 후 로그 애널리틱스를 선택합니다.

    로그 애널리틱스로 이동

  2. 로그 뷰 목록에서 뷰를 찾은 후 쿼리를 선택합니다. 쿼리 창에는 쿼리되는 테이블의 이름이 포함된 기본 쿼리가 채워집니다.

    쿼리 창에 쿼리를 입력하거나 표시된 쿼리를 수정할 수도 있습니다.

    쿼리의 기간을 설정하려면 기간 선택기를 사용하거나 timestamp 필드를 지정하는 WHERE 절을 추가합니다. 기간 선택기를 사용하여 기간을 지정하는 것이 좋습니다.

    쿼리에 타임스탬프를 지정하면 해당 타임스탬프가 기간 선택기에서 선택한 기간을 재정의하고 기간 선택기가 사용 중지됩니다. 기간 선택기를 사용하려면 쿼리의 WHERE 절에서 타임스탬프 표현식을 삭제하세요.

  3. 툴바에서 쿼리 실행을 클릭합니다.

    쿼리가 실행되고 쿼리 결과가 결과 탭에 표시됩니다.

    툴바 옵션을 사용하여 쿼리 형식을 지정하고, 쿼리를 삭제하고, BigQuery SQL 참고 문서를 열 수 있습니다.

뷰의 스키마 표시

로그 뷰의 스키마는 각 필드에 대해 해당 구조체 및 데이터 유형을 정의합니다. 이 정보로 쿼리 구성 방식이 결정되므로 중요합니다. 예를 들어 HTTP 요청의 평균 지연 시간을 계산한다고 가정해 보세요. 지연 시간 필드에 액세스하는 방법과 정수(예: 100)로 저장되는지 또는 문자열(예: "100")로 저장되는지 여부를 알아야 합니다. 지연 시간 데이터가 문자열로 저장된 경우 평균을 계산하기 전에 쿼리가 값을 숫자 값으로 형 변환해야 합니다.

열의 데이터 유형이 JSON이면 해당 열에 사용 가능한 필드가 스키마에 나열되지 않습니다. 예를 들어 로그 항목에 이름이 json_payload인 필드가 있을 수 있습니다. 로그 애널리틱스를 사용하도록 로그 버킷이 업그레이드되면 해당 필드가 JSON 유형의 데이터 열에 매핑됩니다. 스키마에는 열의 하위 필드가 표시되지 않습니다. 즉, 스키마를 사용해서 json_payload.url이 유효한 참조인지 확인할 수 없습니다.

뷰의 스키마를 식별하려면 다음을 수행합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 로깅을 선택한 후 로그 애널리틱스를 선택합니다.

    로그 애널리틱스로 이동

  2. 로그 뷰 목록에서 뷰를 찾은 후 뷰 이름을 선택합니다.

    테이블의 스키마가 표시됩니다. 필터 필드를 사용해서 특정 필드를 찾습니다. 스키마를 수정할 수 없습니다.

쿼리 저장

실행하는 모든 쿼리는 30일 동안 자동으로 저장되며 로그 애널리틱스 페이지에서 최근 탭을 선택하여 액세스할 수 있습니다. 최근 탭에 나열된 쿼리를 검색하고 보고 실행, 공유할 수 있습니다.

나중에 사용할 수 있도록 쿼리를 유지하려면 유용한 정보로 주석 처리하거나 팀원이 쿼리를 보고 실행할 수 있도록 한 후 쿼리를 저장합니다. 이름, 설명, 공개 상태 라벨을 기준으로 저장된 쿼리를 검색하고 정렬할 수 있습니다. 이러한 쿼리를 편집하고 삭제할 수도 있습니다. 저장한 쿼리는 삭제할 때까지 보관됩니다.

Google Cloud 프로젝트당 10,000개의 쿼리를 저장할 수 있습니다.

콘솔

쿼리를 저장하려면 다음을 수행합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 로깅을 선택한 후 로그 애널리틱스를 선택합니다.

    로그 애널리틱스로 이동

  2. 쿼리 창을 쿼리로 채웁니다.

    새 쿼리를 입력하거나 최근 탭에서 쿼리를 선택하거나 저장됨 탭에서 쿼리를 선택하여 쿼리 창을 채울 수 있습니다.

    쿼리 창의 쿼리가 유효하면 저장이 사용 설정됩니다.

  3. 저장을 클릭하고 이름설명 필드를 작성합니다. 이 필드에 설정한 값은 저장됨 탭에 표시됩니다.

  4. 선택사항: Google Cloud 프로젝트 뷰의 로그 애널리틱스 페이지에 액세스할 수 있는 모든 사용자가 저장된 쿼리를 보고 실행할 수 있게 하려면 프로젝트와 공유 전환 버튼을 사용 설정합니다.

    기본적으로 이 전환 버튼은 사용 중지되어 있으며 공개 상태는 사용자로 제한됩니다.

  5. 쿼리 저장을 클릭합니다.

  6. 선택사항: 사용자에게 표시되는 저장된 쿼리를 보고 정렬 및 실행하려면 저장됨 탭을 선택합니다.

    이름, 설명, 공개 상태 라벨을 기준으로 저장된 쿼리를 정렬하고 필터링할 수 있습니다. 쿼리의 콘텐츠로 필터링할 수도 있습니다.

저장됨 탭의 옵션을 사용하여 직접 만든 쿼리를 수정하고 삭제할 수 있습니다.

  • 쿼리를 수정하려면 옵션 더보기를 클릭하고 수정을 선택합니다. 이름설명 필드의 값은 수정할 수 있지만 쿼리 자체는 수정할 수 없습니다.

  • 저장된 쿼리를 삭제하려면 옵션 더보기를 클릭하고 삭제를 선택합니다.

API

Logging API를 사용하여 쿼리를 저장하려면 savedQueries.create 메서드를 사용합니다. 이 메서드, 매개변수, 응답 데이터에 대한 자세한 내용은 savedQueries.create의 참조 페이지를 확인하세요.

savedQueries.create 메서드의 참조 페이지에서 API 탐색기 위젯을 사용하여 해당 메서드를 실행할 수 있습니다. 로그 애널리틱스 쿼리의 경우 opsAnalyticsQuery 필드를 지정해야 합니다. 다음 예시는 SavedQuery의 인스턴스가 포함된 샘플 요청 본문을 보여줍니다.

{
  "parent": "projects/my-project/locations/global"
  "saved_query":
  {
     "ops_analytics_query":
     {
        "sql_query_text" :
           "SELECT
           timestamp, log_name, severity, json_payload, resource, labels
           FROM
           `TABLE`
           WHERE
           timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
           ORDER BY timestamp ASC
           LIMIT 100"
     }
     "visibility": "PRIVATE"
  }
}

쿼리 공유

콘솔

문제를 해결하거나 비정상적인 결과가 표시되면 쿼리 및 해당 결과를 팀원과 공유할 수 있습니다. 로그 애널리틱스 페이지에서 쿼리 결과를 볼 때 실행된 쿼리와 결과를 표시하는 URL을 복사할 수 있습니다.

쿼리 및 결과를 팀원과 공유하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔의 탐색 패널에서 로깅을 선택한 후 로그 애널리틱스를 선택합니다.

    로그 애널리틱스로 이동

  2. 쿼리로 쿼리 창을 채우고 쿼리 실행을 클릭합니다.

    새 쿼리를 입력하거나 최근 탭에서 쿼리를 선택하거나 저장됨 탭에서 쿼리를 선택하여 쿼리 창을 채울 수 있습니다.

  3. 링크 공유를 클릭합니다.

  4. 팀원에게 링크를 보냅니다.

    팀원이 링크를 열면 로그 애널리틱스 페이지가 열립니다. 이 페이지에는 실행한 쿼리와 및 해당 쿼리 결과가 표시됩니다.

    URL을 성공적으로 열려면 Google Cloud 프로젝트에서 팀원의 Identity and Access Management 역할에 Logging 페이지를 보는 데 필요한 권한이 포함되어 있어야 합니다.

API

Logging API를 사용하여 savedQueries.Create 메서드를 사용하고 visibility 필드에 SHARED 값을 지정하여 공유 쿼리를 만들 수 있습니다.

최근 쿼리 또는 저장된 쿼리 보기 및 실행

쿼리를 보거나 다시 실행하려면 로그 애널리틱스 페이지에서 최근 탭을 선택하고 쿼리를 찾습니다.

  • 쿼리를 실행하려면 실행을 클릭합니다.
  • 쿼리를 보려면 옵션 더보기 메뉴의 옵션을 사용합니다.

저장된 쿼리를 보거나 수정하거나 실행하려면 로그 애널리틱스 페이지에서 저장됨 탭을 선택하고 쿼리를 찾습니다.

  • 쿼리를 실행하려면 실행을 클릭합니다.
  • 쿼리를 수정하거나 보거나 삭제하려면 옵션 더보기 메뉴의 옵션을 사용합니다.

BigQuery를 사용하여 로그 쿼리

로그 애널리틱스를 사용하도록 로그 버킷이 업그레이드되면 연결된 BigQuery 데이터 세트를 만들어 BigQuery에서 데이터를 볼 수도 있습니다. 이 구성을 사용하면 BigQuery를 사용하여 연결된 데이터 세트를 통해 액세스할 수 있는 로그 데이터를 다른 비즈니스 데이터와 조인할 수 있습니다. 연결된 데이터 세트를 만드는 방법에 대한 자세한 내용은 BigQuery 뷰에 로그 버킷에 대한 액세스 권한 부여를 참조하세요.

연결된 데이터 세트를 쿼리하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔의 탐색 패널에서 로깅을 선택한 후 로그 애널리틱스를 선택합니다.

    로그 애널리틱스로 이동

  2. 로그 뷰 목록에서 뷰를 찾은 후 쿼리를 선택합니다. 쿼리 창에는 기본 쿼리가 채워집니다.

    쿼리 창에 쿼리를 입력하거나 표시된 쿼리를 수정할 수도 있습니다.

  3. 툴바에서 BigQuery에서 실행을 클릭합니다.

    BigQuery Studio 페이지가 열립니다. 쿼리의 FROM 문은 BigQuery 테이블 경로 문법을 사용하여 연결된 데이터 세트에서 뷰 경로를 지정하도록 수정됩니다.

    표시된 쿼리를 수정할 수도 있습니다.

  4. 쿼리 실행을 클릭합니다.

다음 단계