Registros de acceso de Envoy de Service Mesh

Las aplicaciones (sidecars de Envoy) que generan registros de auditoría en la malla de servicios cuando reciben 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

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

x_forwarded_for

string

Son las direcciones IP que visita una solicitud del cliente al servidor. Por ejemplo, "10.200.0.1"

severity_text

string

Es información sobre el nivel de gravedad de la entrada de registro. Puede ser un valor vacío.

observed_time_unix_nano

integer

Es el tiempo de época de UNIX en nanosegundos de la recopilación de entrada de registro. Por ejemplo, 1668556781041333000

user_agent

string

Es el nombre del software que recupera, 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

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

start_time

string

Hora de inicio de la solicitud, con una precisión de hasta milisegundos. Por ejemplo, "2022-11-15T23:59:41.041Z"

upstream_local_address

string

Es la dirección local de la conexión ascendente. Si es una dirección IP, incluye la dirección y el puerto. Por ejemplo, "127.0.0.6:42179"

connection_termination_details

string

Es información adicional sobre por qué Envoy finalizó la conexión. Puede ser un valor vacío.

severity_number

integer

Es el nivel de gravedad de la entrada de registro. Por ejemplo, 0

resource

object

Son los atributos del recurso de Envoy que produjo 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

Es el tiempo en milisegundos que el host upstream dedicó a procesar la solicitud. Por ejemplo, "0"

response_code_details

string

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

upstream_host

string

Es 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 enviado. Por ejemplo, "4"

upstream_cluster

string

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

upstream_transport_failure_reason

string

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

authority

string

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

username

string

Es la identidad del usuario que inició la solicitud. Por ejemplo, "fop-cluster-admin@example.com"

protocol

string

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

route_name

string

Es el nombre de la ruta. Por ejemplo, "default"

requested_server_name

string

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

method

string

Es el nombre del método. Por ejemplo, "GET"

time_unix_nano

integer

Es el tiempo de época de UNIX en nanosegundos de la recopilación de entrada de registro. Por ejemplo, 1668556781041333000

bytes_received

string

Son los bytes recibidos en el cuerpo. Por ejemplo, "0"

path

string

Es la ruta de acceso de la solicitud HTTP. Por ejemplo, "/metrics"

response_flags

string

Son los detalles adicionales sobre la respuesta o la conexión, si los hay. Por ejemplo, "UH (no healthy upstream hosts)"

x_goog_api_client

string

Es la identificación del cliente de la API. Puede ser un valor vacío.

body

object

Es el cuerpo de la solicitud. Puede ser un valor vacío.

downstream_local_address

string

Es la dirección local de la conexión descendente. Si es una dirección IP, incluye la dirección y el puerto. Por ejemplo, "10.253.132.163:80"

downstream_remote_address

string

Es la dirección remota de la conexión de transmisión descendente. Si es 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.

Valores posibles:

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