로깅 및 로그 보기

이 페이지에서는 Cloud Run for Anthos on Google Cloud 사용 시 사용할 수 있는 로그와 로그를 보고 쓰는 방법을 설명합니다.

Cloud Run for Anthos on Google Cloud에는 두 가지 유형의 로그가 있으며 이러한 로그는 Cloud Logging으로 자동 전송됩니다.

  • 요청 로그: Cloud Run for Anthos on Google Cloud 서비스에 전송된 요청의 로그입니다. 이러한 로그는 자동으로 생성됩니다.
  • 컨테이너 로그: 컨테이너 로그 작성에 설명된 대로 지원되는 위치에 작성된 컨테이너 인스턴스(일반적으로 자체 코드)에서 내보낸 로그입니다.

로그 보기

다음 두 가지 방법으로 서비스의 로그를 볼 수 있습니다.

  • Cloud Console에서 Cloud Run for Anthos on Google Cloud 페이지 사용
  • Cloud Console에서 Cloud Logging 로그 뷰어 사용

두 방법 모두 Cloud Logging에 저장된 동일한 로그를 검사하지만 Cloud Logging 로그 뷰어는 세부정보와 더 많은 필터링 기능을 제공합니다.

Cloud Run for Anthos on Google Cloud에서 로그 보기

Cloud Run for Anthos on Google Cloud 페이지에서 로그를 보려면 다음 안내를 따르세요.

  1. Cloud Run for Anthos on Google Cloud로 이동

  2. 표시되는 목록에서 원하는 서비스를 클릭합니다.

  3. 로그 탭을 클릭하여 이 서비스의 모든 버전에 대한 요청 및 컨테이너 로그를 가져옵니다. 로그 심각도 수준으로 필터링할 수 있습니다.

Cloud Logging에서 로그 보기

Cloud Logging 로그 뷰어에서 Cloud Run for Anthos on Google Cloud 로그를 보려면 다음 안내를 따르세요.

  1. Cloud Console의 로그 뷰어 페이지로 이동합니다.

    로그 뷰어 페이지로 이동

  2. 페이지 상단에서 기존 Google Cloud 프로젝트를 선택하거나 새 프로젝트를 만듭니다.

  3. 드롭다운 메뉴를 사용하여 Kubernetes 컨테이너를 리소스로 선택합니다.

자세한 내용은 Google Cloud 운영 제품군 Logging에서 로그 보기를 참조하세요.

Cloud Code에서 로그 보기

Cloud Code에서 로그를 보려면 IntelliJVisual Studio Code 가이드를 참조하세요.

프로그래매틱 방식으로 로그 읽기

프로그래매틱 방식으로 로그를 읽으려면 다음 방법 중 하나를 사용하면 됩니다.

컨테이너 로그 작성

서비스에서 로그를 작성하면 로그가 다음 위치 중 한 곳에 작성되는 한 Cloud Logging에서 자동으로 감지됩니다.

대부분의 개발자는 표준 출력 및 표준 오류를 사용하여 로그를 작성할 수 있어야 합니다.

이러한 지원되는 위치에 기록된 컨테이너 로그는 Cloud Run for Anthos on Google Cloud 서비스, 버전, 위치에 자동으로 연결됩니다.

컨테이너 로그와 요청 로그의 상관관계

로그 뷰어에서 trace가 동일하여 상관관계가 있는 여러 로그 항목을 '상위-하위' 형식으로 조회할 수 있습니다. 요청 로그 항목의 왼쪽에 있는 삼각형 아이콘을 클릭하면 해당 요청과 관련된 컨테이너 로그가 요청 로그 아래에 중첩되어 표시됩니다.

Cloud Logging 클라이언트 라이브러리를 사용하는 경우를 제외하고 컨테이너 로그와 요청 로그의 상관관계는 자동으로 지정되지 않습니다. 클라이언트 라이브러리를 사용하지 않고 컨테이너 로그와 요청 로그의 상관관계를 지정하려면 위의 구조화된 로깅 샘플에 표시된 대로 X-Cloud-Trace-Context 헤더에서 추출된 trace 식별자가 있는 logging.googleapis.com/trace 필드를 포함하는 구조화된 JSON 로그 줄을 사용할 수 있습니다.

요청 로그 리소스 사용량 제어

요청 로그는 자동으로 생성됩니다. Cloud Run for Anthos on Google Cloud에서 직접 요청 로그의 양을 제어할 수 없지만 Cloud Logging에서 로그 제외 기능을 활용할 수 있습니다.

Logging 에이전트에 대한 참고사항

Compute Engine과 같은 특정 Google Cloud 제품에서 Cloud Logging을 사용한 경우 Cloud Logging 로깅 에이전트를 사용했을 수 있습니다. Cloud Run for Anthos on Google Cloud는 로그 수집을 기본적으로 지원하므로 Logging 에이전트를 사용하지 않습니다.

Logging 리소스

로그 뷰어에서 로그 항목을 클릭하면 JSON 형식의 로그 항목이 열리고 원하는 세부정보를 확인할 수 있습니다.

타임스탬프, 심각도, httpRequest와 같은 로그 항목의 모든 필드는 표준이며 로그 항목 문서에 설명되어 있습니다.

그러나 Cloud Run for Anthos on Google Cloud에 중요한 라벨 또는 리소스 라벨도 몇 가지 있으며, 이러한 라벨은 샘플 콘텐츠와 함께 아래에 나와 있습니다.

{
 httpRequest: {…}
 insertId:  "5c82b3d1000ece0000000000"
 labels: {
  instanceId:  "00bf4bf00000fb59c906a00000c9e29c2c4e06dce91500000000056008d2b6460f163c0057b97b2345f2725fb2423ee5f0bafd36df887fdb1122371563cf1ff453717282afe000001"
 }
 logName:  "projects/my-project/logs/kuberun/.googleapis.com%2Frequests"
 receiveTimestamp:  "2019-03-08T18:26:25.981686167Z"
 resource: {
  labels: {
   configuration_name:  "myservice"
   location:  "us-central1"
   project_id:  "my-project"
   revision_name:  "myservice-00002"
   service_name:  "myservice"
  }
  type:  "k8s_container"
 }
 severity:  "INFO"
 timestamp:  "2019-03-08T18:26:25.970397Z"
}
필드 값 및 참고
instanceId 요청을 처리한 컨테이너 인스턴스입니다.
logName 요청 로그, 표준 오류, 표준 출력 등의 로그를 식별합니다.
configuration_name 요청을 제공한 버전을 만든 구성 리소스입니다.
location 서비스의 GCP 위치를 식별합니다.
project_id 서비스가 배포되는 프로젝트입니다.
revision_name 요청을 제공한 버전입니다.
service_name 요청을 제공한 서비스입니다.
type Cloud Run for Anthos on Google Cloud 리소스 유형인 k8s_container입니다.