Journaux d'accès Envoy Service Mesh

Les applications (side-cars Envoy) qui génèrent des journaux d'audit sur le service mesh lorsqu'elles reçoivent des requêtes utilisent le format de journal suivant.

Représentation 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
}
Champs
bytes_sent

string

Octets envoyés dans le corps. Pour une connexion WebSocket, il inclut également les octets envoyés dans l'en-tête de réponse. Par exemple : "46259"

x_forwarded_for

string

Adresses IP visitées par une requête du client au serveur. Par exemple : "10.200.0.1"

severity_text

string

Informations sur le niveau de gravité de l'entrée de journal. Il peut s'agir d'une valeur vide.

observed_time_unix_nano

integer

Heure de l'epoch UNIX en nanosecondes de la collecte des entrée de journal. Par exemple : 1668556781041333000

user_agent

string

Nom du logiciel qui récupère et affiche le contenu Web, et permet aux utilisateurs finaux d'interagir avec celui-ci. Il fait également référence à l'interface utilisateur implémentée à l'aide de technologies Web. Par exemple : "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

x_request_id

string

ID unique d'une requête. Par exemple : "a4cadca4-662f-4a9c-af63-39a5b3275d8b"

start_time

string

Heure de début de la requête, en millisecondes. Par exemple : "2022-11-15T23:59:41.041Z"

upstream_local_address

string

Adresse locale de la connexion en amont. S'il s'agit d'une adresse IP, elle inclut l'adresse et le port. Par exemple : "127.0.0.6:42179"

connection_termination_details

string

Informations supplémentaires sur la raison pour laquelle Envoy a mis fin à la connexion. Il peut s'agir d'une valeur vide.

severity_number

integer

Niveau de gravité de l'entrée du journal. Par exemple : 0

resource

object

Attributs de la ressource Envoy qui a généré l'entrée de journal. Ces attributs sont des paires clé/valeur dans l'objet. Par exemple,

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

x_envoy_upstream_service_time

string

Temps (en millisecondes) passé par l'hôte en amont pour traiter la requête. Par exemple : "0"

response_code_details

string

Informations supplémentaires sur le code de réponse, comme l'auteur (en amont ou Envoy) et la raison. Par exemple : "via_upstream"

upstream_host

string

URL de l'hôte en amont. Par exemple : "10.253.132.163:80"

duration

string

Durée totale en millisecondes de la requête, de l'heure de début au dernier octet envoyé. Par exemple : "4"

upstream_cluster

string

Cluster auquel appartient l'hôte en amont. Par exemple : "inbound|80||"

upstream_transport_failure_reason

string

Si la connexion en amont échoue en raison d'un socket de transport, elle fournit la raison de l'échec à partir du socket de transport. Le format de ce champ dépend du socket de transport en amont configuré. Par exemple : "SSLV3_ALERT_CERTIFICATE_EXPIRED"

authority

string

Informations sur l'hôte et le port de l'URI cible. Par exemple : "console.zone1.google.gdch.test"

username

string

Identité de l'utilisateur qui a lancé la requête. Par exemple : "fop-cluster-admin@example.com"

protocol

string

Type de protocole de la requête. Par exemple : "HTTP/1.1"

route_name

string

Nom de l'itinéraire. Par exemple : "default"

requested_server_name

string

Valeur définie sur le socket de connexion SSL pour l'indication du nom du serveur (SNI). Par exemple : "outbound_.80_._.fleet-admin-platform-admin-ui.gpc-system.svc.cluster.local"

method

string

Nom de la méthode. Par exemple : "GET"

time_unix_nano

integer

Heure de l'epoch UNIX en nanosecondes de la collecte des entrée de journal. Par exemple : 1668556781041333000

bytes_received

string

Octets reçus dans le corps. Par exemple : "0"

path

string

Chemin de la requête HTTP. Par exemple : "/metrics"

response_flags

string

Informations supplémentaires sur la réponse ou la connexion, le cas échéant. Par exemple : "UH (no healthy upstream hosts)"

x_goog_api_client

string

Identification du client de l'API. Il peut s'agir d'une valeur vide.

body

object

Corps de la requête. Il peut s'agir d'une valeur vide.

downstream_local_address

string

Adresse locale de la connexion en aval. S'il s'agit d'une adresse IP, elle inclut l'adresse et le port. Par exemple : "10.253.132.163:80"

downstream_remote_address

string

Adresse distante de la connexion en aval. S'il s'agit d'une adresse IP, elle inclut l'adresse et le port. Par exemple : "10.200.0.1:0"

response_code

string

Code de réponse HTTP.

Valeurs possibles :

  • "200" (Succès)
  • "403" (Demande interdite)
  • "500" (Erreur)