로그 애널리틱스를 사용한 쿼리 결과 차트

이 문서에서는 로그 데이터의 패턴 및 추세를 식별할 수 있는 로그 애널리틱스 쿼리 결과를 차트로 만드는 방법을 설명합니다. 로그 애널리틱스를 사용하면 SQL 쿼리를 사용하여 로그를 검색하고 집계하여 유용한 정보를 생성할 수 있습니다.

쿼리를 실행한 후 쿼리 결과를 테이블에서 보거나 차트로 변환할 수 있습니다. 예를 들어 로그에서 생성되는 심각도 유형을 확인하려면 지난 12시간 동안 생성된 로그 수를 표시하는 차트를 만들고 severity로 로그를 분석합니다. 다음 스크린샷은 여러 심각도 유형으로 분류된 데이터 포인트를 보여줍니다.

심각도별 분석 대상 분류를 보여주는 차트 예시

시작하기 전에

  • 로그 애널리틱스 페이지를 불러와 쿼리를 실행하는 데 필요한 권한을 얻으려면 관리자에게 Cloud Logging의 로그 뷰어(roles/logging.viewer) IAM 역할을 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

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

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

  • Google Cloud 콘솔을 사용하여 대시보드를 만들고 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Monitoring 편집자(roles/monitoring.editor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

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

차트로 표시할 데이터 선택

차트에 표시할 데이터를 구성하려면 SQL을 사용하여 쿼리를 빌드합니다. 차트 탭을 선택하면 Logging이 쿼리 결과를 기반으로 차트를 자동으로 생성합니다. 쿼리가 실행되고 차트가 생성된 후 차트 유형을 변경하고 다른 데이터를 볼 열을 선택하여 차트 구성을 맞춤설정할 수 있습니다.

쿼리 결과를 차트로 보려면 다음을 수행하여 쿼리를 실행합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 로깅을 선택한 후 로그 분석을 선택합니다.

    로그 분석으로 이동

  2. 쿼리 창에서 쿼리를 입력한 후 실행을 클릭합니다.

  3. 쿼리가 완료되면 결과 탭에서 쿼리 결과를 볼 방법을 선택합니다.

    • 테이블: 쿼리 결과의 테이블만 봅니다.

    • 차트: 쿼리 결과의 차트만 봅니다.

    • 둘 다: 표와 차트를 모두 나란히 봅니다.

  4. 차트 또는 둘 다 탭을 선택한 경우 차트 유형을 변경하고 차트로 작성할 행과 열을 맞춤설정하여 차트 구성을 맞춤설정할 수 있습니다. 차트 구성에 대한 자세한 내용은 차트 구성 맞춤설정을 참조하세요.

차트 구성 맞춤설정

차트 유형을 변경하고, 차트에서 측정기준을 선택하고 측정하거나, 분류를 적용하여 차트 구성을 맞춤설정할 수 있습니다. 측정기준은 행을 그룹화하거나 분류하는 데 사용되며 X축 값입니다. 측정 또는 Y축 값은 Y축을 기준으로 표시되는 데이터 계열입니다.

차트 유형 변경

측정기준 및 측정으로 선택한 행과 열의 종류 및 해당 데이터를 시각화하는 방법에 따라 세 가지 차트 유형 중에서 선택할 수 있습니다.

  • 막대 그래프(기본값)

    막대 그래프는 데이터를 두 축에 표시합니다. 차트에서 카테고리 또는 문자열을 측정기준으로 사용하는 경우 막대 차트의 차트 구성을 가로 또는 세로로 설정할 수 있으며 여기서 측정기준 및 측정 축이 전환됩니다.

  • 선 차트

    선 차트를 사용하여 시간 경과에 따른 데이터 변경사항을 표시할 수 있습니다. 선 차트를 사용하면 각 시계열이 선택한 측정값에 해당하는 다른 선으로 표시됩니다.

    X축이 시간 기준인 경우 각 데이터 포인트가 시간 간격의 시작 부분에 배치됩니다. 각 데이터 포인트는 선형 보간으로 연결됩니다.

  • 영역 차트

    영역 차트는 선 차트를 기반으로 하며 각 선 아래의 영역은 음영 처리됩니다. 영역 차트에서 데이터 계열이 누적됩니다. 예를 들어 동일한 계열이 2개 있는 경우 선 차트에서는 계열이 겹치지만 음영 처리된 영역은 영역 차트에 누적됩니다.

측정기준 및 측정 변경

측정기준 및 측정 필드를 선택하여 차트로 만들 행과 열을 선택할 수 있습니다.

  • 측정기준

    측정기준은 타임스탬프, 숫자, 문자열 열이어야 합니다. 기본적으로 측정기준은 스키마의 첫 번째 타임스탬프 기반 열로 설정됩니다. 쿼리에 타임스탬프가 없으면 첫 번째 문자열 열이 측정기준으로 선택됩니다. 차트 표시 패널에서 측정기준을 맞춤설정할 수도 있습니다. 타임스탬프 열을 측정기준으로 선택하면 차트에 시간 경과에 따른 데이터 변화가 표시됩니다.

    기본적으로 타임스탬프 간격은 자동으로 설정되지만 커스텀 간격을 선택할 수도 있습니다. 자동 간격은 비슷한 크기의 그룹을 유지하기 위해 시간 범위 선택기에 따라 값을 변경합니다.

    또한 간격을 사용 중지하여 보다 복잡한 분석을 위해 쿼리 내에서 자체 집계 및 시간 범위를 지정할 수 있습니다. 간격을 사용 중지하면 측정의 집계 함수가 none으로 설정됩니다. 측정기준 간격이 사용 중지된 경우 숫자 측정만 허용됩니다.

  • 측정

    차트 표시 패널에서 여러 측정을 선택할 수 있습니다. 측정을 선택할 때는 count, sum, average, percentile-99와 같이 그룹화된 값에 수행할 집계 함수도 선택해야 합니다. 예를 들어 count-distinct는 지정된 열에서 고유한 값 수를 반환합니다.

    측정기준에 간격 사용 중지 체크박스를 선택하면 none 집계 함수 옵션을 사용할 수 있습니다. 측정기준이 문자열 값인 경우 간격 사용 중지 체크박스가 표시되지 않습니다. 하지만 측정의 집계 함수를 none으로 설정하면 간격이 사용 중지됩니다.

분류 추가

단일 데이터 계열을 다른 열을 기준으로 여러 데이터 계열로 분할하려면 분류를 추가합니다.

분류를 선택할 때는 textPayload와 같이 다수의 문자열이나 긴 문자열이 포함될 수 있는 필드 대신 region_name과 같이 짧고 의미 있는 라벨의 작은 열이 포함된 열을 선택합니다.

예를 들어 측정기준 필드가 유형으로 설정되고 측정 필드가 행 수 계산으로 분류 필드가 심각도로 설정된 다음 차트 구성을 참조하세요.

분류를 추가하는 차트 구성 예시

다음 차트는 분류가 추가된 차트의 예시입니다.

심각도별 분류가 포함된 차트 예시

이전 스크린샷에는 리소스 유형 k8s_container가 서로 다른 severity 유형으로 분할된 누적 데이터 계열이 표시됩니다. 이를 통해 특정 리소스에서 생성된 각 심각도 유형의 로그 수를 식별할 수 있습니다.

차트를 커스텀 대시보드에 저장

쿼리에서 차트를 생성하면 차트를 커스텀 대시보드에 저장할 수 있습니다. 커스텀 대시보드를 사용하면 다양한 위젯 유형을 사용하여 유용한 정보를 표시하고 구성할 수 있습니다. 예를 들어 Cloud Storage 버킷 사용량에 대한 세부정보를 제공하는 대시보드를 만들 수 있습니다.

Cloud Storage 버킷 사용량을 보여주는 대시보드 예시

대시보드에 차트를 저장하려면 다음을 수행합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 로깅을 선택한 후 로그 분석을 선택합니다.

    로그 분석으로 이동

  2. 쿼리를 실행하여 차트를 생성한 다음 차트 탭에서 차트 저장을 클릭합니다.

  3. 대시보드에 저장 대화상자에서 차트 제목을 입력하고 차트를 저장할 대시보드를 선택합니다.

  4. 선택사항: 커스텀 대시보드를 보려면 토스트 메시지에서 대시보드 보기를 클릭합니다.

로그 애널리틱스 SQL 쿼리로 생성된 차트가 포함된 커스텀 대시보드 목록을 보려면 차트 저장 버튼으로 이동하고 메뉴를 클릭합니다.

커스텀 대시보드에 저장된 차트 수정

대시보드에 저장된 로그 애널리틱스 SQL 쿼리로 생성된 차트를 수정하려면 위젯 구성 수정을 참조하세요. 위젯 구성 대화상자에서 차트를 생성하는 데 사용되는 쿼리를 수정하거나 차트 데이터를 맞춤설정하여 다양한 데이터를 시각화할 수 있습니다.

제한사항

  • Google Cloud 프로젝트가 Assured Workloads를 사용하는 폴더에 있는 경우 생성한 차트는 커스텀 대시보드에 표시될 수 없습니다.

  • 대시보드 수준 필터는 로그 애널리틱스 SQL 쿼리에서 생성된 차트에는 적용되지 않습니다.

샘플 쿼리

이 섹션에서는 쿼리 결과를 차트로 표시하는 샘플 SQL 쿼리를 제공합니다. 로그에서 유용한 정보를 더 얻기 위해 차트 구성을 맞춤설정합니다. 샘플 쿼리를 사용하려면 다음을 수행하세요.

  1. Google Cloud 콘솔의 탐색 패널에서 로깅을 선택한 후 로그 분석을 선택합니다.

    로그 분석으로 이동

  2. 기본 쿼리를 실행하여 로그 뷰의 테이블 이름을 식별합니다.

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

    기본 쿼리에 액세스하는 방법에 대한 자세한 내용은 로그 뷰 쿼리를 참조하세요.

  3. TABLE을 쿼리하려는 뷰에 해당하는 테이블의 이름으로 바꾼 다음 쿼리를 복사합니다.

  4. 쿼리 창에 쿼리를 붙여넣은 다음 쿼리 실행을 클릭합니다.

위치 및 심각도별 로그 항목 차트

다음 쿼리는 위치 변환을 문자열로 사용하여 locationseverity를 선택합니다.

SELECT
  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
  severity,
FROM
  `TABLE`

샘플 차트 및 차트 구성은 다음과 같습니다.

위치 및 심각도에 대한 로그 항목을 차트로 표시하는 차트의 예시입니다.

위 스크린샷의 차트 구성에는 다음과 같은 차트 구성이 있습니다.

  • 차트 유형: 막대 그래프, 가로
  • 측정기준: location(10개로 제한)
  • 측정: 행 수 계산
  • 분류: severity(5개로 제한)

BigQuery 데이터 액세스 감사 로그 차트

다음 쿼리는 BigQuery data_access 감사 로그를 필터링하고 user_email, ip, auth_permission, job_execution_project와 같은 특정 필드를 선택합니다. 예를 들어 시간 경과에 따라 각 주 구성원의 BigQuery API 사용 빈도를 시각화하는 차트를 만들 수 있습니다.

SELECT
  timestamp,
  proto_payload.audit_log.authentication_info.principal_email as user_email,
  proto_payload.audit_log.request_metadata.caller_ip as ip,
  auth.permission as auth_permission,
  auth.granted as auth_granted,
  JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `TABLE` as data_access,
  UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
  log_id="cloudaudit.googleapis.com/data_access"
  AND data_access.resource.type = 'bigquery_dataset'

샘플 차트 및 차트 구성은 다음과 같습니다.

BigQuery 데이터 액세스 감사 로그의 차트 예시

위 스크린샷의 차트 구성에는 다음과 같은 차트 구성이 있습니다.

  • 차트 유형: 막대 그래프, 세로
  • 측정기준: user_email(5개로 제한)
  • 측정: 행 수 계산
  • 분류: auth_permission(5개로 제한)

제한사항

  • 선택한 열에는 null이 아닌 값이 있는 행이 최소 하나 이상 있어야 합니다.

  • 쿼리를 저장하고 차트 구성을 맞춤설정하면 커스텀 차트 구성이 저장되지 않습니다.

  • 쿼리에 이미 집계가 포함된 경우 로그 애널리틱스에 의해 자동으로 적용되는 추가 집계로 인해 생성된 차트가 다를 수 있습니다.

  • JSON 경로를 차트로 만들려면 문자열 및 숫자로 변환해야 합니다.

다음 단계