서비스 메시 Envoy 액세스 로그

요청을 수신할 때 서비스 메시에서 감사 로그를 생성하는 애플리케이션 (Envoy 사이드카)의 로그 형식은 다음과 같습니다.

JSON 표현

{
  "bytes_sent": string,
  "x_forwarded_for": string,
  "severity_text": string,
  "observed_time_unix_nano": integer,
  "user_agent": string,
  "x_request_id": string,
  "start_time": string,
  "upstream_local_address": string,
  "connection_termination_details": string,
  "severity_number": integer,
  "resource": {
    object
  },
  "x_envoy_upstream_service_time": string,
  "response_code_details": string,
  "upstream_host": string,
  "duration": string,
  "upstream_cluster": string,
  "upstream_transport_failure_reason": string,
  "authority": string,
  "username": string,
  "protocol": string,
  "route_name": string,
  "requested_server_name": string,
  "method": string,
  "time_unix_nano": integer,
  "bytes_received": string,
  "path": string,
  "response_flags": string,
  "x_goog_api_client": string,
  "body": {
    object
  },
  "downstream_local_address": string,
  "downstream_remote_address": string,
  "response_code": string
}
필드
bytes_sent

string

본문에서 전송된 바이트입니다. WebSocket 연결의 경우 응답 헤더에서 전송된 바이트도 포함됩니다. 예를 들면 "46259"입니다.

x_forwarded_for

string

클라이언트에서 서버로의 요청이 방문한 IP 주소입니다. 예를 들면 "10.200.0.1"입니다.

severity_text

string

로그 항목의 심각도 수준에 관한 정보입니다. 빈 값일 수 있습니다.

observed_time_unix_nano

integer

로그 항목 수집의 UNIX 에포크 시간(나노초)입니다. 예를 들면 1668556781041333000입니다.

user_agent

string

웹 콘텐츠를 가져오고, 렌더링하고, 최종 사용자와의 상호작용을 지원하는 소프트웨어의 이름입니다. 웹 기술을 사용하여 구현된 사용자 인터페이스를 의미하기도 합니다. 예를 들면 "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"입니다.

x_request_id

string

단일 요청의 고유 ID입니다. 예를 들면 "a4cadca4-662f-4a9c-af63-39a5b3275d8b"입니다.

start_time

string

요청의 시작 시간(밀리초까지)입니다. 예를 들면 "2022-11-15T23:59:41.041Z"입니다.

upstream_local_address

string

업스트림 연결의 로컬 주소입니다. IP 주소인 경우 주소와 포트가 포함됩니다. 예를 들면 "127.0.0.6:42179"입니다.

connection_termination_details

string

Envoy가 연결을 종료한 이유에 관한 추가 정보입니다. 빈 값일 수 있습니다.

severity_number

integer

로그 항목의 심각도 수준입니다. 예를 들면 0입니다.

resource

object

로그 항목을 생성한 Envoy 리소스의 속성입니다. 이러한 속성은 객체의 키-값 쌍에 있습니다. 예를 들면 다음과 같습니다.

{
  "log_name": string,
  "cluster_name": string,
  "node_name": string,
  "zone_name": string
}

x_envoy_upstream_service_time

string

업스트림 호스트가 요청을 처리하는 데 걸린 시간(밀리초)입니다. 예를 들면 "0"입니다.

response_code_details

string

응답 코드에 관한 추가 정보입니다(예: 누가 설정했는지(업스트림 또는 Envoy) 및 이유). 예를 들면 "via_upstream"입니다.

upstream_host

string

업스트림 호스트의 URL입니다. 예를 들면 "10.253.132.163:80"입니다.

duration

string

시작 시간부터 마지막 바이트가 출력될 때까지의 요청의 총 시간(밀리초)입니다. 예를 들면 "4"입니다.

upstream_cluster

string

업스트림 호스트가 속한 클러스터입니다. 예를 들면 "inbound|80||"입니다.

upstream_transport_failure_reason

string

전송 소켓으로 인해 업스트림 연결이 실패하면 전송 소켓에서 실패 이유를 제공합니다. 이 필드의 형식은 구성된 업스트림 전송 소켓에 따라 달라집니다. 예를 들면 "SSLV3_ALERT_CERTIFICATE_EXPIRED"입니다.

authority

string

타겟 URI의 호스트 및 포트 정보입니다. 예를 들면 "console.zone1.google.gdch.test"입니다.

username

string

요청을 시작한 사용자 ID입니다. 예를 들면 "fop-cluster-admin@example.com"입니다.

protocol

string

요청의 프로토콜 유형입니다. 예를 들면 "HTTP/1.1"입니다.

route_name

string

경로의 이름입니다. 예를 들면 "default"입니다.

requested_server_name

string

서버 이름 표시 (SNI)를 위해 SSL 연결 소켓에 설정된 값입니다. 예를 들면 "outbound_.80_._.fleet-admin-platform-admin-ui.gpc-system.svc.cluster.local"입니다.

method

string

메서드 이름입니다. 예를 들면 "GET"입니다.

time_unix_nano

integer

로그 항목 수집의 UNIX 에포크 시간(나노초)입니다. 예를 들면 1668556781041333000입니다.

bytes_received

string

본문에서 수신된 바이트입니다. 예를 들면 "0"입니다.

path

string

HTTP 요청의 경로입니다. 예를 들면 "/metrics"입니다.

response_flags

string

응답 또는 연결에 관한 추가 세부정보(있는 경우) 예를 들면 "UH (no healthy upstream hosts)"입니다.

x_goog_api_client

string

API 클라이언트 식별자입니다. 빈 값일 수 있습니다.

body

object

요청 본문입니다. 빈 값일 수 있습니다.

downstream_local_address

string

다운스트림 연결의 로컬 주소입니다. IP 주소인 경우 주소와 포트가 포함됩니다. 예를 들면 "10.253.132.163:80"입니다.

downstream_remote_address

string

다운스트림 연결의 원격 주소입니다. IP 주소인 경우 주소와 포트가 포함됩니다. 예를 들면 "10.200.0.1:0"입니다.

response_code

string

HTTP 응답 코드입니다.

가능한 값은 다음과 같습니다.

  • "200" (성공)
  • "403" (금지된 요청)
  • "500" (오류)