Cloud Logging 개요

이 문서에서는 스토리지, 검색, 분석, 모니터링을 지원하는 실시간 로그 관리 시스템인 Cloud Logging의 개요를 제공합니다. Cloud Logging은 Google Cloud 리소스 로그를 자동으로 수집합니다. 애플리케이션, 온프레미스 리소스, 다른 클라우드 제공업체의 리소스에서 로그를 수집할 수도 있습니다. 또한 특정 종류의 이벤트가 로그에 보고되면 Cloud Monitoring에서 알림을 받도록 알림 정책을 구성할 수 있습니다. 규제 또는 보안상의 이유로 로그 데이터가 저장되는 위치를 결정할 수 있습니다.

애플리케이션 및 서드 파티 소프트웨어에서 로그 수집

클라이언트 라이브러리를 사용하여 애플리케이션을 계측하여 작성한 애플리케이션에서 로그를 수집할 수 있습니다. 하지만 항상 애플리케이션을 계측할 필요는 없습니다. 예를 들어 일부 구성에서는 운영 에이전트를 사용하여 stdout 또는 stderr에 작성된 로그를 Google Cloud 프로젝트로 보낼 수 있습니다.

운영 에이전트를 설치한 후 해당 애플리케이션의 로그를 Google Cloud 프로젝트에 쓰도록 구성하여 nginx와 같은 타사 애플리케이션에서 로그 데이터를 수집할 수도 있습니다.

요구사항에 가장 적합한 방식을 결정하는 데 도움이 되는 정보는 Logging 에이전트 또는 클라이언트 라이브러리 중에서 어느 것을 사용해야 하나요?를 참조하세요.

문제 해결 및 로그 분석

Google Cloud 콘솔을 사용하면 로그 탐색기 또는 로그 분석 페이지에서 로그 데이터를 보고 분석할 수 있습니다. 두 인터페이스 모두에서 로그를 쿼리하고 볼 수 있습니다. 하지만 다른 쿼리 언어를 사용하고 기능이 다릅니다.

서비스 및 애플리케이션의 성능 문제를 해결하고 분석하려면 로그 탐색기를 사용하는 것이 좋습니다. 이 인터페이스는 개별 로그 항목을 보고 관련 로그 항목을 찾을 수 있도록 설계되었습니다. 예를 들어 로그 항목이 오류 그룹의 일부인 경우 해당 항목은 오류의 자세한 정보에 액세스하는 메뉴 옵션으로 주석 처리됩니다.

예를 들어 시간 경과에 따라 특정 URL에 발급된 HTTP 요청의 평균 지연 시간을 계산하기 위해 로그에서 집계 작업을 수행하려면 로그 분석 인터페이스를 사용합니다. 이 인터페이스의 경우 SQL을 사용하여 로그 데이터를 쿼리하므로 SQL의 기능을 사용하여 로그 데이터를 파악할 수 있습니다.

프로그래매틱 방식으로 로그 데이터를 쿼리하려면 Cloud Logging API 또는 Google Cloud CLI를 사용하여 Google Cloud 프로젝트에서 로그 데이터를 내보내면 됩니다.

자세한 내용은 로그 쿼리 및 보기 개요를 참조하세요.

로그 모니터링

로그에서 특정 종류의 이벤트가 발생할 때 알림을 표시하도록 Cloud Logging을 구성할 수 있습니다. 이러한 알림은 로그 항목에 특정 패턴이 나타날 경우나 로그 데이터에서 추세가 감지되면 전송될 수 있습니다. Google Cloud 서비스의 오류율을 보려면 사전 구성된 Cloud Logging 대시보드를 보면 됩니다.

예를 들어 중요한 보안 관련 이벤트와 같은 특정 메시지가 발생할 때 알림을 받으려면 로그 기반 알림 정책을 만들면 됩니다. 로그 기반 알림 정책은 특정 패턴의 로그를 모니터링합니다. 이 패턴이 발견되면 Monitoring이 알림을 전송하고 이슈를 만듭니다. 로그 기반 알림 정책은 다음과 같이 중요하지만 드물게 발생하는 이벤트에 유용합니다.

  • 감사 로그에 이벤트가 표시되면(예: 사용자가 서비스 계정의 보안 키에 액세스하려는 경우) 알림을 받기를 원합니다.
  • 애플리케이션은 배포 메시지를 로그에 작성하며, 배포 변경사항이 로깅될 때 알림을 받기를 원합니다.

또는 트렌드 또는 시간 경과에 따른 이벤트 발생을 모니터링할 수 있습니다. 이러한 경우 로그 기반 측정항목을 만들면 됩니다. 로그 기반 측정항목은 일정 기준과 일치하는 로그 항목의 개수를 카운트하거나 응답 시간 등의 정보를 히스토그램으로 추출하여 정리할 수 있습니다. 또한 응답 시간이 허용되지 않는 수준으로 증가하는 경우와 같이 성능 변화가 발생하는 경우 알림을 제공하는 알림 정책을 구성할 수 있습니다. 로그 기반 측정항목은 다음을 수행하려는 경우에 적합합니다.

  • 로그에서 경고 또는 오류와 같은 메시지 발생 횟수를 세고 발생 횟수가 기준점을 초과하면 알림 받기
  • 로그의 지연 시간 값 등의 데이터 추세를 관찰하고 값이 허용되지 않는 범위로 변경되면 알림 받기
  • 로그에서 추출한 숫자 데이터를 표시하는 차트 만들기

자세한 내용은 로그 모니터링을 참조하세요.

로그 스토리지

로그 저장 위치는 구성할 필요가 없습니다. 기본적으로 Google Cloud 프로젝트는 수신하는 모든 로그를 Cloud Logging 로그 버킷에 자동으로 저장합니다. 예를 들어 Google Cloud 프로젝트에 Compute Engine 인스턴스가 포함되어 있으면 Compute Engine이 생성하는 모든 로그가 자동으로 저장됩니다. 그러나 필요한 경우 저장할 로그, 삭제할 로그, 로그 저장 위치와 같은 로그 스토리지의 다양한 측면을 구성할 수 있습니다.

다음 대상으로 로그 항목을 라우팅하거나 전달할 수 있는데, 이는 동일한 Google Cloud 프로젝트 또는 다른 Google Cloud 프로젝트에 있을 수 있습니다.

  • Cloud Logging 버킷: Cloud Logging에서 스토리지를 제공합니다. 로그 버킷은 여러 Google Cloud 프로젝트에서 수신한 로그 항목을 저장할 수 있습니다. Cloud Logging 데이터를 다른 데이트와 결합하려면, 로그 애널리틱스를 사용하도록 로그 버킷을 업그레이드한 후 연결된 BigQuery 데이터 세트를 만들면 됩니다. 로그 버킷에 저장된 로그 항목을 보는 방법을 자세히 알아보려면 쿼리 및 로그 보기 개요Cloud Logging 버킷으로 라우팅된 로그 보기를 참조하세요.
  • BigQuery 데이터 세트: BigQuery 데이터 세트에서 로그 항목의 스토리지를 제공합니다. 저장된 로그 항목에서 빅데이터 분석 기능을 사용할 수 있습니다. Cloud Logging 데이터를 다른 데이터 소스와 결합하려면, 로그 애널리틱스를 사용하도록 로그 버킷을 업그레이드한 후 연결된 BigQuery 데이터 세트를 만드는 것이 좋습니다. BigQuery로 라우팅된 로그 항목을 보는 방법을 자세히 알아보려면 BigQuery로 라우팅된 로그 보기를 참조하세요.
  • Cloud Storage 버킷: Cloud Storage에서 로그 항목의 스토리지를 제공합니다. 로그 항목은 JSON 파일로 저장됩니다. Cloud Storage로 라우팅된 로그 항목을 보는 방법을 자세히 알아보려면 Cloud Storage로 라우팅된 로그 보기를 참조하세요.
  • Pub/Sub 주제: 서드 파티 통합을 지원합니다. 로그 항목은 JSON 형식으로 지정된 후 Pub/Sub 주제로 라우팅됩니다. Pub/Sub로 라우팅된 로그 항목을 보는 방법을 자세히 알아보려면 Pub/Sub로 라우팅된 로그 보기를 참조하세요.
  • Splunk: Splunk를 지원합니다. Pub/Sub 주제로 로그 항목을 라우팅한 후 Splunk를 사용하여 해당 주제를 구독해야 합니다.
  • Google Cloud 프로젝트: 로그 항목을 다른 Google Cloud 프로젝트로 라우팅합니다. 다른 Google Cloud 프로젝트로 로그 항목을 라우팅하면 대상 프로젝트의 로그 라우터가 로그 항목을 수신하고 처리합니다. 수신된 로그 항목의 라우팅 방법은 대상 프로젝트의 싱크에 따라 결정됩니다. 대상 프로젝트가 로그 항목을 대상 프로젝트 소유의 로그 버킷으로 라우팅할 때, Error Reporting을 이용해 해당 로그 항목을 분석할 수 있습니다.
  • 기타 리소스: 로그 항목을 다른 프로젝트에 있는 지원 가능한 대상으로 라우팅합니다. 사용할 경로에 대해 자세히 알아보려면 대상 경로 형식을 참조하세요.

데이터 리전 지원을 비롯한 자세한 내용은 라우팅 및 스토리지 개요를 참조하세요.

로그 카테고리

로그 카테고리는 사용자에게 제공되는 로깅 정보를 설명하는 데 도움이 되며, 카테고리들은 상호 배타적이지 않습니다.

  • 플랫폼 로그는 Google Cloud 서비스에서 작성된 로그입니다. 이러한 로그는 문제를 디버깅하고 해결하는 데 도움이 되며 사용 중인 Google Cloud 서비스를 더 잘 이해하는 데 도움이 됩니다. 예를 들어 VPC 흐름 로그는 VM 인스턴스에서 전송되거나 수신되는 네트워크 흐름의 샘플을 기록합니다.

  • 구성요소 로그는 플랫폼 로그와 비슷하지만 시스템에서 실행되는 Google 제공 소프트웨어 구성요소에 의해 생성됩니다. 예를 들어 GKE는 사용자가 자체 VM 또는 자체 데이터 센터에서 실행할 수 있는 소프트웨어 구성요소를 제공합니다. 로그는 사용자의 GKE 인스턴스에서 생성되고 사용자의 Google Cloud 프로젝트로 전송됩니다. GKE는 로그 또는 로그 메타데이터를 사용하여 사용자에게 지원을 제공합니다.

  • 보안 로그는 "누가 어디서 언제 무엇을 했는지"에 대한 답변을 도와줍니다.

    • Cloud 감사 로그는 Google Cloud 리소스 내의 관리 활동 및 액세스에 대한 정보를 제공합니다. 감사 로그를 사용 설정하면 보안, 감사, 규정 준수 항목이 Google Cloud 데이터 및 시스템에서 취약점 발생 또는 외부 데이터 오용 가능성을 모니터링할 수 있습니다. Google Cloud 지원 서비스 목록은 감사 로그를 생성하는 Google 서비스를 참조하세요.

    • 액세스 투명성은 Google 직원이 Google Cloud 콘텐츠에 액세스할 때 수행한 작업의 로그를 제공합니다. 액세스 투명성 로그는 조직에서 법률 및 규제 요구사항을 준수하는지 추적하는 데 유용합니다. Google Cloud 지원 서비스 목록은 액세스 투명성 로그를 생성하는 Google 서비스를 참조하세요.

  • 사용자 작성 로그는 커스텀 애플리케이션 및 서비스에서 작성된 로그입니다. 일반적으로 이러한 로그는 다음 방법 중 하나를 사용하여 Cloud Logging에 기록됩니다.

  • 멀티 클라우드 로그하이브리드 클라우드 로그는 Microsoft Azure와 같은 다른 클라우드 제공업체의 로그 및 온프레미스 인프라의 로그를 참조합니다.

로그에 대한 데이터 모델

Cloud Logging이 로그 데이터를 구성하는 데 사용하는 데이터 모델은 해당 데이터를 쿼리할 수 있는 측정기준을 결정합니다. 예를 들어 로그는 개별 항목의 이름이 지정된 컬렉션이므로 로그 이름을 기준으로 데이터를 쿼리할 수 있습니다. 마찬가지로 각 로그는 LogEntry 객체로 형식이 지정된 로그 항목으로 구성되므로 LogEntry 필드의 값이 일부 기준과 일치하는 해당 로그 항목만 검색하는 쿼리를 작성할 수 있습니다. 예를 들어 severity 필드에 ERROR의 값이 있는 로그 항목만 표시할 수 있습니다.

각 로그 항목은 상태를 기록하거나 VM 인스턴스 만들기와 같은 특정 이벤트를 기술하며 최소한 다음 요소를 포함합니다.

  • 이벤트가 발생한 시점 또는 Cloud Logging에서 수신된 시점을 나타내는 타임스탬프
  • 로그 항목 소스에 관한 정보. 이 소스를 모니터링 리소스라고 합니다. 모니터링된 리소스의 예시로는 개별 Compute Engine VM 인스턴스 및 Google Kubernetes Engine 컨테이너가 있습니다. 모니터링 리소스 유형의 전체 목록은 모니터링 리소스 및 서비스를 참조하세요.
  • 구조화되지 않은 텍스트 데이터로 제공되거나 JSON 형식의 구조화된 텍스트 데이터로 제공되는 페이로드(메시지라고도 함)
  • 로그가 속한 로그의 이름. 로그 이름에는 로그 항목이 속한 리소스의 전체 경로와 식별자가 포함됩니다. 다음은 로그 이름의 예시입니다.

    • projects/my-project/logs/stderr
    • projects/my-project/logs/stdout
    • projects/my-project/compute.googleapis.com/activity

액세스 제어

Identity and Access Management 역할은 주 구성원이 로그에 액세스하는 기능을 제어합니다. 주 구성원에게 사전 정의된 역할을 부여하거나 커스텀 역할을 만들 수 있습니다. 필요한 권한에 대한 자세한 내용은 액세스 제어를 참조하세요.

보관

로그 항목은 지정된 기간 동안 로그 버킷에 저장된 후 삭제됩니다. 자세한 내용은 라우팅 및 스토리지 개요: 보관을 참조하세요.

가격 책정 및 비용 관리

가격 책정에 대한 자세한 내용은 Cloud Logging 가격 책정을 참조하세요.

Logging 비용을 절감하는 전략은 Logging 비용 관리를 참조하세요.