Registros de acceso de Envoy de Service Mesh

Las aplicaciones (sidecars de Envoy) que generan registros de auditoría en la malla de servicios al recibir solicitudes tienen el siguiente formato de registro.

Representación 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
}
Campos
bytes_sent

string

Los bytes enviados en el cuerpo. En el caso de una conexión WebSocket, también incluye los bytes enviados en el encabezado de respuesta. Por ejemplo, "46259"

x_forwarded_for

string

Las direcciones IP visitadas por una solicitud del cliente al servidor. Por ejemplo, "10.200.0.1"

severity_text

string

Información sobre el nivel de gravedad de la entrada de registro. Puede que sea un valor vacío.

observed_time_unix_nano

integer

Tiempo de época de UNIX en nanosegundos de la recogida de la entrada de registro. Por ejemplo, 1668556781041333000

user_agent

string

Nombre del software que obtiene, renderiza y facilita la interacción del usuario final con el contenido web. También hace referencia a la interfaz de usuario implementada con tecnologías web. Por ejemplo, "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

x_request_id

string

ID único de una sola solicitud. Por ejemplo, "a4cadca4-662f-4a9c-af63-39a5b3275d8b"

start_time

string

Hora de inicio de la solicitud, expresada en milisegundos. Por ejemplo, "2022-11-15T23:59:41.041Z"

upstream_local_address

string

Dirección local de la conexión upstream. Si se trata de una dirección IP, incluye la dirección y el puerto. Por ejemplo, "127.0.0.6:42179"

connection_termination_details

string

Información adicional sobre por qué Envoy ha finalizado la conexión. Puede que sea un valor vacío.

severity_number

integer

Nivel de gravedad de la entrada de registro. Por ejemplo, 0

resource

object

Los atributos del recurso de Envoy que ha generado la entrada de registro. Estos atributos se encuentran en pares clave-valor en el objeto. Por ejemplo,

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

x_envoy_upstream_service_time

string

Tiempo en milisegundos que ha tardado el host upstream en procesar la solicitud. Por ejemplo, "0"

response_code_details

string

Información adicional sobre el código de respuesta, como quién lo ha definido (el upstream o Envoy) y por qué. Por ejemplo, "via_upstream"

upstream_host

string

La URL del host upstream. Por ejemplo, "10.253.132.163:80"

duration

string

Duración total en milisegundos de la solicitud desde la hora de inicio hasta el último byte de salida. Por ejemplo, "4"

upstream_cluster

string

El clúster al que pertenece el host upstream. Por ejemplo, "inbound|80||"

upstream_transport_failure_reason

string

Si la conexión upstream falla debido a un socket de transporte, se indica el motivo del fallo del socket de transporte. El formato de este campo depende del socket de transporte upstream configurado. Por ejemplo, "SSLV3_ALERT_CERTIFICATE_EXPIRED"

authority

string

La información del host y el puerto del URI de destino. Por ejemplo, "console.zone1.google.gdch.test"

username

string

Identidad del usuario que ha iniciado la solicitud. Por ejemplo, "fop-cluster-admin@example.com"

protocol

string

El tipo de protocolo de la solicitud. Por ejemplo, "HTTP/1.1"

route_name

string

El nombre de la ruta. Por ejemplo, "default"

requested_server_name

string

Valor definido en el socket de conexión SSL para la indicación de nombre de servidor (SNI). Por ejemplo, "outbound_.80_._.fleet-admin-platform-admin-ui.gpc-system.svc.cluster.local"

method

string

El nombre del método. Por ejemplo, "GET"

time_unix_nano

integer

Tiempo de época de UNIX en nanosegundos de la recogida de la entrada de registro. Por ejemplo, 1668556781041333000

bytes_received

string

Los bytes recibidos en el cuerpo. Por ejemplo, "0"

path

string

Ruta de la solicitud HTTP. Por ejemplo, "/metrics"

response_flags

string

Detalles adicionales sobre la respuesta o la conexión, si procede. Por ejemplo, "UH (no healthy upstream hosts)"

x_goog_api_client

string

Identificación del cliente de la API. Puede que sea un valor vacío.

body

object

Cuerpo de la solicitud. Puede que sea un valor vacío.

downstream_local_address

string

La dirección local de la conexión de nivel inferior. Si se trata de una dirección IP, incluye la dirección y el puerto. Por ejemplo, "10.253.132.163:80"

downstream_remote_address

string

Dirección remota de la conexión de nivel inferior. Si se trata de una dirección IP, incluye la dirección y el puerto. Por ejemplo, "10.200.0.1:0"

response_code

string

El código de respuesta HTTP.

Posibles valores:

  • "200" (Éxito)
  • "403" (Solicitud prohibida)
  • "500" (Error)