Service Mesh 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 リソースの属性。これらの属性は、オブジェクト内の Key-Value ペアで指定します。次に例を示します。

{
  "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

Server Name Indication(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" (エラー)