Logging
Puoi abilitare, disabilitare e visualizzare i log per un servizio di backend del bilanciatore del carico delle applicazioni esterno. Per i bilanciatori del carico delle applicazioni esterni con bucket di backend, il logging è abilitato automaticamente e non può essere disabilitato.
Puoi abilitare o disabilitare il logging per ciascun servizio di backend. Puoi configurare se registrare tutte le richieste o una frazione campionata in modo casuale.
Devi assicurarti di non avere un'esclusione dei log applicabile ai bilanciatori del carico delle applicazioni esterni. Per istruzioni su come verificare che i log Cloud HTTP Load
Balancer
siano consentiti, consulta Visualizzazione delle esclusioni dei tipi di risorse.
Abilitazione del logging su un nuovo servizio di backend
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico.
Fai clic su
Modifica.Fai clic su Configurazione backend.
Seleziona Crea un servizio di backend.
Compila i campi obbligatori del servizio di backend.
Nella sezione Logging, seleziona la casella di controllo Abilita il logging.
Imposta la probabilità di campionamento nel campo Frequenza di campionamento. Puoi impostare un numero compreso tra
0.0
e1.0
, dove0.0
indica che nessuna richiesta viene registrata e1.0
indica che il 100% delle richieste viene registrato. Il valore predefinito è1.0
.Per completare la modifica del servizio di backend, fai clic su Aggiorna.
Per completare la modifica del bilanciatore del carico, fai clic su Aggiorna.
gcloud: modalità globale
Crea un servizio di backend e abilita il logging utilizzando il comando gcloud compute backend-services create
.
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL_MANAGED
dove
--global
indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con i bilanciatori del carico delle applicazioni esterni globali.--enable-logging
abilita il logging per il servizio di backend in questione.--logging-sample-rate
consente di specificare un valore compreso tra0.0
e1.0
, dove0.0
significa che non viene registrata alcuna richiesta e1.0
indica che viene registrato il 100% delle richieste. Significativo solo con il parametro--enable-logging
. Abilitare il logging, ma impostare la frequenza di campionamento su0.0
, equivale a disabilitare il logging. Il valore predefinito è1.0
.
gcloud: modalità classica
Crea un servizio di backend e abilita il logging utilizzando il comando gcloud compute backend-services create
.
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL
dove
--global
indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con un bilanciatore del carico delle applicazioni classico.--enable-logging
abilita il logging per il servizio di backend in questione.--logging-sample-rate
consente di specificare un valore compreso tra0.0
e1.0
, dove0.0
significa che non viene registrata alcuna richiesta e1.0
indica che viene registrato il 100% delle richieste. Significativo solo con il parametro--enable-logging
. Abilitare il logging, ma impostare la frequenza di campionamento su0.0
, equivale a disabilitare il logging. Il valore predefinito è1.0
.
Abilitazione del logging su un servizio di backend esistente
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico.
Fai clic su
Modifica.Fai clic su Configurazione backend.
Fai clic su
Modifica accanto al servizio di backend.Nella sezione Logging, seleziona la casella di controllo Abilita il logging.
Imposta la probabilità di campionamento nel campo Frequenza di campionamento. Puoi impostare un numero compreso tra
0.0
e1.0
, dove0.0
indica che nessuna richiesta viene registrata e1.0
indica che il 100% delle richieste viene registrato. Il valore predefinito è1.0
.Per completare la modifica del servizio di backend, fai clic su Aggiorna.
Per completare la modifica del bilanciatore del carico, fai clic su Aggiorna.
gcloud: modalità globale
Abilita il logging su un servizio di backend esistente con il comando gcloud compute backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE
dove
--global
indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con i bilanciatori del carico delle applicazioni esterni globali.--enable-logging
abilita il logging per il servizio di backend in questione.--logging-sample-rate
consente di specificare un valore compreso tra0.0
e1.0
, dove0.0
significa che non viene registrata alcuna richiesta e1.0
indica che viene registrato il 100% delle richieste. Significativo solo con il parametro--enable-logging
. Abilitare il logging, ma impostare la frequenza di campionamento su0.0
, equivale a disabilitare il logging. Il valore predefinito è1.0
.
gcloud: modalità classica
Abilita il logging su un servizio di backend esistente con il comando gcloud compute backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE
dove
--global
indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con un bilanciatore del carico delle applicazioni classico.--enable-logging
abilita il logging per il servizio di backend in questione.--logging-sample-rate
consente di specificare un valore compreso tra0.0
e1.0
, dove0.0
significa che non viene registrata alcuna richiesta e1.0
indica che viene registrato il 100% delle richieste. Significativo solo con il parametro--enable-logging
. Abilitare il logging, ma impostare la frequenza di campionamento su0.0
, equivale a disabilitare il logging. Il valore predefinito è1.0
.
Disabilitazione o modifica del logging su un servizio di backend esistente
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico.
Fai clic su
Modifica.Fai clic su Configurazione backend.
Fai clic su
Modifica accanto al servizio di backend.Per disabilitare completamente il logging, nella sezione Logging, deseleziona la casella di controllo Abilita il logging.
Se lasci abilitato il logging, puoi impostare una probabilità di campionamento diversa nel campo Frequenza di campionamento. Puoi impostare un numero compreso tra
0.0
e1.0
, dove0.0
indica che non vengono registrate richieste e1.0
che il 100% delle richieste viene registrato. Il valore predefinito è1.0
. Per ridurre al 20% il numero di log archiviati, imposta il valore su0.2
.Per completare la modifica del servizio di backend, fai clic su Aggiorna.
Per completare la modifica del bilanciatore del carico, fai clic su Aggiorna.
gcloud: modalità globale
Disabilita il logging su un servizio di backend con il comando gcloud compute backend-services update
.
Disattivare completamente il logging
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
dove
--global
indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con i bilanciatori del carico delle applicazioni esterni globali.--region
indica che il servizio di backend è a livello di regione. Utilizza questo campo per i servizi di backend utilizzati con i bilanciatori del carico delle applicazioni esterni regionali.--no-enable-logging
disabilita il logging per il servizio di backend in questione.
Modifica della frequenza di campionamento di logging
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
gcloud: modalità classica
Disabilita il logging su un servizio di backend con il comando gcloud compute backend-services update
.
Disattivare completamente il logging
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
dove
--global
indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con un bilanciatore del carico delle applicazioni classico.--no-enable-logging
disabilita il logging per il servizio di backend in questione.
Modifica della frequenza di campionamento di logging
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
dove
--global
indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con un bilanciatore del carico delle applicazioni classico.--logging-sample-rate
consente di specificare un valore compreso tra0.0
e1.0
, dove0.0
significa che non viene registrata alcuna richiesta e1.0
indica che viene registrato il 100% delle richieste. Significativo solo con il parametro--enable-logging
. Abilitare il logging, ma impostare la frequenza di campionamento su0.0
, equivale a disabilitare il logging.
visualizza i log
Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:
I log HTTP(S) sono indicizzati prima da una regola di forwarding, poi da una mappa URL.
Per visualizzare i log, vai alla pagina Esplora log:
Per visualizzare tutti i log, nel menu del filtro Risorsa, seleziona Cloud HTTP LoadBalancer > Tutte le regole di forwarding.
Per visualizzare i log per una regola di forwarding, selezionane il nome.
Per visualizzare i log per una mappa URL, seleziona una regola di forwarding, quindi una mappa URL.
I campi del log di tipo boolean vengono generalmente visualizzati solo se hanno il valore true
.
Se un campo booleano ha il valore false
, questo campo viene omesso dal log.
La codifica UTF-8 viene applicata in modo forzato ai campi dei log. I caratteri che non sono UTF-8 vengono sostituiti da punti interrogativi.
Per i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni esterni globali, puoi esportare le metriche basate su log utilizzando i log delle risorse (resource.type="http_load_balancer"
). Le metriche create si basano sulla risorsa "Regola del bilanciatore del carico delle applicazioni (metriche basate su log)" (l7_lb_rule
), disponibile nelle dashboard di Cloud Monitoring anziché nella risorsa https_lb_rule
.
Che cosa viene registrato
Le voci di log del bilanciatore del carico delle applicazioni esterno contengono informazioni utili per il monitoraggio e il debug del traffico HTTP(S). I record di log contengono campi obbligatori, che sono i campi predefiniti di ogni record di log.
Campo | Formato del campo | Tipo di campo: obbligatorio o facoltativo | Descrizione |
---|---|---|---|
gravità insertID logName |
LogEntry | Obbligatorio | I campi generali descritti in una voce di log. |
timestamp | string (
|
Facoltativo | L'ora in cui il primo livello GFE riceve la richiesta. |
httpRequest | HttpRequest | Obbligatorio | Un protocollo comune per la registrazione delle richieste HTTP.
|
resource | MonitoredResource | Obbligatorio | MonitoredResource è il tipo di risorsa associato a una voce di log. MonitoredResourceDescriptor
descrive lo schema di un oggetto |
jsonPayload | oggetto (formato Struct) | Obbligatorio | Il payload della voce di log espresso come oggetto JSON. L'oggetto JSON contiene i seguenti campi:
|
string | Obbligatorio | Il campo statusDetails
contiene una stringa che spiega perché il bilanciatore del carico ha restituito
lo stato HTTP. Per ulteriori informazioni su queste stringhe di log,
consulta i messaggi di operazione riuscita HTTP statusDetails e i
messaggi di errore HTTP statusDetails. |
|
string | Obbligatorio | Il campo backendTargetProjectNumber contiene il numero del progetto in cui è stato creato il target del backend, ovvero il servizio di backend o il bucket di backend. Questo campo ha il seguente formato:
projects/PROJECT_NUMBER . |
Etichette risorse
Nella tabella seguente sono elencate le etichette delle risorse per resource.type="http_load_balancer"
.
Campo | Tipo | Descrizione | ||
---|---|---|---|---|
backend_service_name |
string | Il nome del servizio di backend. | ||
forwarding_rule_name |
string | Il nome dell'oggetto della regola di forwarding. | ||
project_id |
string | project_id |
string | L'identificatore del progetto Google Cloud associato a questa risorsa. |
target_proxy_name |
string | Il nome dell'oggetto proxy di destinazione a cui fa riferimento la regola di forwarding. | ||
url_map_name |
string | url_map_name |
string | Il nome dell'oggetto mappa URL configurato per selezionare un servizio di backend. |
zone |
string | zone |
string | La zona in cui è in esecuzione il bilanciatore del carico. La zona è global . |
Messaggi di operazione riuscita HTTP statusDetails
statusDetails (esito positivo) | Significato | Codici di risposta comuni di accompagnamento |
---|---|---|
byte_range_caching
|
La richiesta HTTP è stata gestita utilizzando la memorizzazione nella cache dell'intervallo di byte di Cloud CDN. | È possibile qualsiasi codice di risposta memorizzabile nella cache. |
response_from_cache
|
La richiesta HTTP è stata gestita da una cache di Cloud CDN. | È possibile qualsiasi codice di risposta memorizzabile nella cache. |
response_from_cache_validated
|
Il codice restituito è stato impostato da una voce memorizzata nella cache di Cloud CDN che è stata convalidata da un backend. | È possibile qualsiasi codice di risposta memorizzabile nella cache. |
response_sent_by_backend
|
La richiesta HTTP è stata trasferita correttamente tramite proxy al backend e la risposta è stata restituita dal backend. | Il codice di risposta HTTP viene impostato dal software in esecuzione sul backend. |
Messaggi di errore HTTP statusDetails
statusDetails (errore) | Significato | Codici di risposta comuni di accompagnamento |
---|---|---|
aborted_request_due_to_backend_early_response
|
Una richiesta con corpo è stata interrotta perché il backend ha inviato una risposta anticipata con un codice di errore. La risposta è stata inoltrata al cliente. La richiesta è stata terminata. | 4XX o 5XX |
backend_connection_closed_after_partial_response_sent
|
La connessione di backend si è chiusa in modo imprevisto dopo l'invio di una risposta parziale al client. | Il codice di risposta HTTP viene impostato dal software in esecuzione sul backend. Il codice di risposta HTTP 0 (zero) indica che il backend ha inviato intestazioni HTTP incomplete. Il codice di risposta HTTP è 101 se è stato eseguito l'upgrade della connessione HTTP(S) a una connessione Websocket. |
backend_connection_closed_before_data_sent_to_client
|
Il backend ha chiuso inaspettatamente la connessione al bilanciatore del carico prima che la risposta venisse inviata tramite proxy al client. | 502 Il codice di risposta HTTP è 101 se è stato eseguito l'upgrade della connessione HTTP(S) a una connessione Websocket. |
backend_early_response_with_non_error_status
|
Il backend ha inviato una risposta diversa dall'errore (1XX o 2XX) a una richiesta prima di ricevere l'intero corpo della richiesta. | 502 |
backend_interim_response_not_supported
|
Il backend ha inviato una risposta provvisoria 1XX alla richiesta in un contesto in cui le risposte provvisorie non sono supportate. | 502 |
backend_response_corrupted
|
Il corpo della risposta HTTP inviato dal backend ha una codifica di trasferimento a blocchi non valida o è danneggiato in altro modo. | Qualsiasi codice di risposta possibile a seconda della natura del problema. Spesso 502. |
backend_response_headers_too_long
|
Le intestazioni delle risposte HTTP inviate dal backend hanno superato il limite consentito. Per ulteriori informazioni, consulta la sezione Dimensioni intestazione per bilanciatori del carico delle applicazioni esterni. | 502 |
backend_timeout
|
Timeout del backend durante la generazione di una risposta. Per una connessione WebSocket:
|
502 Il codice di risposta HTTP è 101 se è stato eseguito l'upgrade della connessione HTTP(S) a una connessione Websocket. |
banned_by_security_policy
|
La richiesta è stata esclusa da una regola di esclusione basata sulle tariffe di Google Cloud Armor. | 429 |
body_not_allowed
|
Il client ha inviato una richiesta HTTP con un corpo, ma il metodo HTTP utilizzato non consente un corpo. | 400 |
byte_range_caching_aborted
|
In precedenza il bilanciatore del carico ha ricevuto una risposta che indicava che la risorsa era memorizzabile nella cache e che intervalli di byte supportati. Cloud CDN ha ricevuto una risposta incoerente (ad esempio, una con un codice di risposta diverso dal contenuto parziale 206 previsto). Questo si è verificato durante il tentativo di eseguire il riempimento della cache utilizzando una richiesta di intervallo di byte. Di conseguenza, il bilanciatore del carico ha interrotto la risposta al client. | 2XX |
byte_range_caching_forwarded_backend_response
|
In precedenza il bilanciatore del carico ha ricevuto una risposta che indicava che la risorsa era memorizzabile nella cache e che intervalli di byte supportati. Cloud CDN ha ricevuto una risposta incoerente (ad esempio, una con un codice di risposta diverso dal contenuto parziale 206 previsto). Questo si è verificato durante il tentativo di eseguire il riempimento della cache utilizzando una richiesta di intervallo di byte. Il bilanciatore del carico ha quindi inoltrato la risposta incoerente al client. | Restituito dal backend: è possibile qualsiasi codice di risposta. |
byte_range_caching_retrieval_abandoned
|
Il client ha annullato una richiesta di intervallo di byte o una richiesta di convalida avviata da Cloud CDN. | Restituito dal backend: è possibile qualsiasi codice di risposta. |
byte_range_caching_retrieval_from_backend_failed_after_partial_response
|
Si è verificato un errore in una richiesta di intervallo di byte o in una richiesta di convalida avviata da Cloud CDN. Per informazioni dettagliate sullo stato del backend, fai riferimento alla voce di log di Cloud Logging corrispondente per la richiesta avviata da Cloud CDN. | 2XX |
cache_lookup_failed_after_partial_response
|
Il bilanciatore del carico non è riuscito a fornire una risposta completa dalla cache di Cloud CDN a causa di un errore interno. | 2XX |
cache_lookup_timeout_after_partial_response
|
Il flusso di ricerca nella cache di Cloud CDN è scaduto perché il client non ha recuperato i contenuti in modo tempestivo. | 2XX |
client_disconnected_after_partial_response
|
La connessione al client si è interrotta dopo che il bilanciatore del carico ha inviato una risposta parziale. | Restituito dal backend: è possibile qualsiasi codice di risposta. Il codice di risposta HTTP è 101 se è stato eseguito l'upgrade della connessione HTTP(S) a una connessione Websocket. |
client_disconnected_before_any_response
|
La connessione al client si è interrotta prima che il bilanciatore del carico inviasse una risposta. | 0 Il codice di risposta HTTP è 101 se è stato eseguito l'upgrade della connessione HTTP(S) a una connessione Websocket. |
client_timed_out
|
Il Google Front End (GFE) ha inattivo la connessione client a causa dell'assenza di avanzamento durante il proxy della richiesta o della risposta. | 0 o 408 |
client_cert_invalid_rsa_key_size
|
Un certificato foglia client o certificato intermedio aveva una dimensione della chiave RSA non valida. Per maggiori informazioni, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_unsupported_elliptic_curve_key
|
Un certificato client o intermedio utilizza una curva ellittica non supportata. Per maggiori informazioni, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_unsupported_key_algorithm
|
Un certificato client o intermedio utilizza un algoritmo non RSA o non ECDSA. Per maggiori informazioni, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_pki_too_large
|
L'infrastruttura a chiave pubblica da utilizzare per la convalida ha più di tre certificati intermedi che condividono le stesse informazioni sulla chiave pubblica del soggetto e del soggetto. Per saperne di più, consulta Errori registrati per le connessioni chiuse. | 0 |
client_cert_chain_max_name_constraints_exceeded
|
Un certificato intermedio fornito per la convalida aveva più di dieci vincoli di nome. Per maggiori informazioni, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_chain_invalid_eku |
Il certificato client o l'emittente non dispone di Extended Key Usage (EKU) che includa clientAuth . Per maggiori informazioni, consulta
Errori registrati per connessioni chiuse.
|
0 |
client_cert_validation_timed_out
|
Limite di tempo superato durante la convalida della catena di certificati. Per maggiori informazioni, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_validation_search_limit_exceeded
|
Il limite di profondità o iterazione viene raggiunto durante il tentativo di convalidare la catena di certificati. Per maggiori informazioni, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_validation_not_performed
|
Hai configurato mTLS senza configurare un TrustConfig .
Per maggiori informazioni, consulta
Errori registrati per connessioni chiuse.
|
0 |
client_cert_not_provided
|
Il client non ha fornito il certificato richiesto durante l'handshake. Per maggiori informazioni, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_validation_failed
|
Il certificato client non supera la convalida con TrustConfig .
Per maggiori informazioni, consulta
Errori registrati per connessioni chiuse.
|
0 |
config_not_found
|
Nel bilanciatore del carico manca la configurazione del progetto. Questo potrebbe verificarsi a intermittenza, soprattutto dopo aver apportato modifiche alla configurazione che aggiungono una nuova risorsa. Poiché sono presenti due livelli di proxy, a volte il GFE di primo livello potrebbe non raggiungere il GFE di secondo livello. Ciò potrebbe essere dovuto a un errore interno, ad esempio un'implementazione in corso, un sovraccarico del bilanciatore del carico o problemi di configurazione intermittenti. |
404 o 503 |
direct_response
|
Il bilanciatore del carico ha sovrascritto questa richiesta e ha restituito una risposta fissa. | A seconda della natura del problema, potresti visualizzare eventuali codici di risposta HTTP. Ad esempio, il codice di risposta HTTP 410 indica che il backend non è disponibile a causa di inadempienza dei pagamenti. |
denied_by_security_policy
|
Il bilanciatore del carico ha rifiutato questa richiesta a causa di un criterio di sicurezza di Google Cloud Armor. | Configurata nel criterio di sicurezza. |
error_uncompressing_gzipped_body
|
Si è verificato un errore durante la decompressione di una risposta HTTP compressa con gzip. | 503 |
failed_to_connect_to_backend
|
Il bilanciatore del carico non è riuscito a connettersi al backend. Sono inclusi i timeout durante la fase di connessione. | 503 per i bilanciatori del carico delle applicazioni esterni globali 502 per i bilanciatori del carico delle applicazioni classici |
failed_to_pick_backend
|
Il bilanciatore del carico non è riuscito a scegliere un backend integro per gestire la richiesta. | 502 |
failed_to_negotiate_alpn
|
Il bilanciatore del carico e il backend non sono riusciti a negoziare un protocollo a livello di applicazione (ad esempio HTTP/2) da utilizzare per comunicare tra loro tramite TLS. | 502 |
headers_too_long
|
Le intestazioni delle richieste erano più grandi del numero massimo consentito. | 413 |
http_version_not_supported
|
Versione HTTP non supportata. Al momento sono supportati solo HTTP 0.9, 1.0, 1.1 e 2.0. | 400 |
internal_error
|
Errore interno del bilanciatore del carico. Normalmente rappresenta un errore temporaneo nell'infrastruttura del bilanciatore del carico. Riprova a eseguire la query. | 4XX |
invalid_external_origin_endpoint
|
La configurazione del backend esterno non è valida. Esamina la configurazione del NEG internet e assicurati che specifichi un indirizzo FQDN/IP e una porta validi. | 4XX |
invalid_request_headers
|
Le intestazioni della richiesta HTTP di un client non sono valide. | 400 |
invalid_http2_client_header_format
|
Le intestazioni HTTP/2 di un client non sono valide. | 400 |
multiple_iap_policies
|
Non è possibile combinare più criteri Identity-Aware Proxy (IAP). Se hai un criterio IAP collegato a un servizio di backend e un altro criterio a un oggetto serverless, rimuovi uno dei criteri e riprova. Gli oggetti serverless includono App Engine, Cloud Run e Cloud Functions. | 500 |
malformed_chunked_body
|
Il corpo della richiesta è stato codificato in modo errato con chunk. | 411 |
request_loop_detected
|
Il bilanciatore del carico ha rilevato un loop di richieste. Questo loop potrebbe essere causato da un errore di configurazione a causa del quale il backend ha inoltrato la richiesta al bilanciatore del carico. | 502 |
required_body_but_no_content_length
|
La richiesta HTTP richiede un corpo, ma le intestazioni della richiesta non includevano un'intestazione segmentata con lunghezza del contenuto o con codifica del trasferimento. | 400 o 403 |
secure_url_rejected
|
Una richiesta con un URL https:// è stata ricevuta tramite una connessione HTTP/1.1 in testo non crittografato. | 400 |
ssl_certificate_san_verification_failed
|
Il bilanciatore del carico non è riuscito a trovare un SAN (Subject Alternative Name) nel certificato SSL presentato dal backend che corrisponda al nome host configurato. | 502 |
ssl_certificate_chain_verification_failed
|
Il certificato SSL presentato dal backend non ha superato la verifica del certificato SSL. | 502 |
throttled_by_security_policy
|
La richiesta è stata bloccata da una regola di limitazione di Google Cloud Armor. | 429 |
unsupported_method
|
Il client ha fornito un metodo di richiesta HTTP non supportato. | 400 |
unsupported_100_continue
|
La richiesta del client includeva l 'intestazione "Expect: 100-continue" su un protocollo che non la supporta. | 400 |
upgrade_header_rejected
|
La richiesta HTTP del client conteneva l'intestazione Upgrade ed è stata rifiutata. | 400 |
websocket_closed
|
La connessione WebSocket è stata chiusa. | 101 |
websocket_handshake_failed
|
handshake WebSocket non riuscito. | Qualsiasi codice di risposta possibile a seconda della natura dell'errore di handshake. |
request_body_too_large
|
Il corpo della richiesta HTTP ha superato il limite massimo supportato dal backend. Non applicabile per i backend delle VM. | 413 |
handled_by_identity_aware_proxy
|
Questa risposta è stata generata da Identity-Aware Proxy durante la verifica dell'identità del client prima di consentire l'accesso. | 200, 302, 400, 401, 403, 500, 502 |
serverless_neg_routing_failed
|
Impossibile inviare la richiesta NEG serverless. Questo errore può verificarsi quando non è possibile raggiungere la regione specificata nel NEG o quando non è possibile trovare il nome della risorsa (ad esempio, il nome di Cloud Functions). | 404, 502 |
fault_filter_abort
|
Questo errore può verificarsi se il cliente ha configurato un filtro degli errori e quest'ultimo è stato attivato per la richiesta specificata. | Il valore deve essere compreso tra 200 e 599. |
Visualizza i log per la convalida dei certificati client mTLS
Per visualizzare gli errori registrati per le connessioni chiuse durante la convalida dei certificati client TLS reciproca, completa i seguenti passaggi.
Query sulla console
Nella console Google Cloud, vai alla pagina Esplora log.
Fai clic sul pulsante di attivazione/disattivazione Mostra query.
Incolla il codice seguente nel campo della query. Sostituisci
FORWARDING_RULE_NAME
con il nome della regola di forwarding.jsonPayload.statusDetails=~"client_cert" jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
Fai clic su Esegui query.
Logging per i bucket di backend
Il logging viene abilitato automaticamente per i bilanciatori del carico con bucket di backend. Non puoi modificare o disabilitare il logging per i bucket di backend.
Logging per Google Cloud Armor
La tabella dei messaggi di errore HTTP statusDetail
contiene alcuni messaggi
applicabili a Google Cloud Armor. Per ulteriori informazioni sui log di Google Cloud Armor, consulta Utilizzo del logging delle richieste.
Logging per i deployment di reti VPC condiviso
I log e le metriche del bilanciatore del carico delle applicazioni vengono in genere esportati nel progetto che include la regola di forwarding. Pertanto, gli amministratori del servizio (proprietari o utenti dei progetti in cui è stato creato il servizio di backend) non avranno accesso ai log e alle metriche del bilanciatore del carico per impostazione predefinita. Puoi utilizzare i ruoli IAM per concedere queste autorizzazioni agli amministratori di servizi. Per scoprire di più sui ruoli IAM disponibili e sui passaggi per fornire l'accesso, vedi Concedere l'accesso a Monitoring.
Interazione con i log
Puoi interagire con i log del bilanciatore del carico delle applicazioni esterno utilizzando l'API Cloud Logging. L'API Logging offre modi per filtrare in modo interattivo i log che hanno campi specifici impostati. Esporta i log corrispondenti in Cloud Logging, Cloud Storage, BigQuery o Pub/Sub. Per ulteriori informazioni sull'API Logging, consulta la panoramica dell'API Cloud Logging.
Monitoraggio
Il bilanciatore del carico esporta i dati di monitoraggio in Cloud Monitoring.
Puoi utilizzare le metriche di monitoraggio per:
- Valuta la configurazione, l'utilizzo e le prestazioni di un bilanciatore del carico
- Risolvere i problemi
- Migliora l'utilizzo delle risorse e l'esperienza utente
Oltre alle dashboard predefinite in Cloud Monitoring, puoi creare dashboard personalizzate, configurare avvisi ed eseguire query sulle metriche tramite l'API Cloud Monitoring.
Visualizzazione delle dashboard di Cloud Monitoring predefinite
Cloud Monitoring offre dashboard predefinite per monitorare i bilanciatori del carico. Queste dashboard vengono compilate automaticamente da Cloud Monitoring.
Per accedere alle dashboard predefinite:
Vai a Monitoring nella console Google Cloud.
Nel pannello di navigazione di Monitoring, fai clic su Dashboard.
In Categorie, fai clic su Google Cloud.
Per visualizzare un elenco di dashboard per tutti i bilanciatori del carico Google Cloud, seleziona la dashboard denominata Bilanciatori del carico Google Cloud. Per visualizzare la dashboard di un bilanciatore del carico specifico, individua il bilanciatore del carico nell'elenco e fai clic sul suo nome.
Per visualizzare le dashboard predefinite solo per i bilanciatori del carico delle applicazioni esterni, seleziona la dashboard denominata Bilanciatori del carico HTTP(S) esterni. Questa pagina mostra una dashboard che mostra i rapporti di risposta e la latenza di backend 5XX per tutti gli Application Load Balancer esterni nel progetto. Fornisce inoltre un elenco di dashboard per tutti gli Application Load Balancer esterni del progetto.
Puoi fare clic sulla dashboard di ciascun bilanciatore del carico. Ogni dashboard include:- Grafici precompilati che mostrano suddivisioni delle risposte per classi di codice di risposta (5XX, 4XX, 3XX, 2XX)
- Latenza totale
- Latenza di backend
- RTT frontend
- Conteggio delle richieste
- Un link ai log per il bilanciatore del carico
Per visualizzare le dashboard per i servizi di terze parti, torna alla pagina Dashboard. In Categorie, fai clic su Altro.
- Per visualizzare la dashboard di un servizio di terze parti specifico, individualo nell'elenco e fai clic sul suo nome.
Definizione dei criteri di avviso
Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:
Puoi creare criteri di avviso per monitorare i valori delle metriche e ricevere una notifica quando queste metriche violano una condizione.
-
Nella console Google Cloud, vai alla pagina notifications Avvisi:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Se non hai creato i canali di notifica e vuoi ricevere le notifiche, fai clic su Modifica canali di notifica e aggiungi i tuoi canali di notifica. Torna alla pagina Avvisi dopo aver aggiunto i canali.
- Nella pagina Avvisi, seleziona Crea criterio.
- Per selezionare la metrica, espandi il menu Seleziona una metrica e poi segui questi passaggi:
- Per limitare il menu alle voci pertinenti, inserisci
Global External Application Load Balancer Rule
nella barra dei filtri. Se non vengono mostrati risultati dopo aver filtrato il menu, disattiva il pulsante di attivazione/disattivazione Mostra solo risorse e metriche attive. - Per Tipo di risorsa, seleziona Regola del bilanciatore del carico delle applicazioni esterno globale.
- Seleziona una Categoria di metrica e una Metrica, quindi seleziona Applica.
- Per limitare il menu alle voci pertinenti, inserisci
- Fai clic su Avanti.
- Le impostazioni nella pagina Configura trigger avviso determinano quando l'avviso viene attivato. Seleziona un tipo di condizione e, se necessario, specifica una soglia. Per maggiori informazioni, consulta Creare criteri di avviso con soglia della metrica.
- Fai clic su Avanti.
- (Facoltativo) Per aggiungere notifiche al criterio di avviso, fai clic su Canali di notifica. Nella finestra di dialogo, seleziona uno o più canali di notifica dal menu, quindi fai clic su Ok.
- (Facoltativo) Aggiorna la Durata della chiusura automatica degli incidenti. Questo campo determina quando Monitoring chiude gli incidenti in assenza di dati delle metriche.
- (Facoltativo) Fai clic su Documentazione, quindi aggiungi tutte le informazioni che vuoi includere in un messaggio di notifica.
- Fai clic su Nome avviso e inserisci un nome per il criterio di avviso.
- Fai clic su Crea criterio.
Definizione delle dashboard personalizzate di Cloud Monitoring
Puoi creare dashboard di Cloud Monitoring personalizzate per le metriche del bilanciatore del carico:
Nella console Google Cloud, vai alla pagina Monitoring.
Seleziona Dashboard > Crea dashboard.
Fai clic su Aggiungi grafico, quindi assegna un titolo al grafico.
Per identificare le serie temporali da visualizzare, scegli un tipo di risorsa e un tipo di metrica:
- Nella sezione Risorsa e metrica, fai clic sul grafico e seleziona una delle opzioni disponibili nella sezione Seleziona una metrica:
- Per un bilanciatore del carico delle applicazioni esterno globale, seleziona il tipo di risorsa Regola del bilanciatore del carico delle applicazioni esterno globale.
- Fai clic su Applica.
- Nella sezione Risorsa e metrica, fai clic sul grafico e seleziona una delle opzioni disponibili nella sezione Seleziona una metrica:
Per specificare i filtri di monitoraggio, fai clic su Filtri > Aggiungi filtro.
Fai clic su Salva.
Frequenza e fidelizzazione dei report sulle metriche
Le metriche per i bilanciatori del carico delle applicazioni esterni vengono esportate in Cloud Monitoring in batch con granularità di 1 minuto. I dati di monitoraggio vengono conservati per sei (6) settimane. Le metriche si basano sul traffico campionato (la frequenza di campionamento è dinamica e non può essere modificata). La dashboard fornisce l'analisi dei dati a intervalli predefiniti di 1 ora (un'ora), 6 ore (sei ore), 1 giorno (un giorno), 1 sett. (una settimana) e 6 settimane (sei settimane). Puoi richiedere manualmente l'analisi in un intervallo compreso tra 6 W e 1 minuto.
Monitoraggio delle metriche
Puoi monitorare le seguenti metriche per i bilanciatori del carico delle applicazioni esterni.
Le seguenti metriche per i bilanciatori del carico delle applicazioni esterni globali vengono segnalate in Cloud Monitoring.
Queste metriche sono precedute da loadbalancing.googleapis.com/
.
Metrica | Nome | Descrizione |
---|---|---|
Conteggio delle richieste | https/request_count |
Il numero di richieste gestite dal bilanciatore del carico delle applicazioni esterno |
Conteggio byte richiesta | https/request_bytes_count |
Il numero di byte inviati come richieste dai client al bilanciatore del carico delle applicazioni esterno |
Conteggio byte risposta | https/response_bytes_count |
Il numero di byte inviati come risposte dal bilanciatore del carico delle applicazioni esterno ai client |
Latenze totali | https/total_latencies |
Una distribuzione della latenza. La latenza è il tempo che intercorre tra il primo byte della richiesta ricevuta e l'ultimo byte della risposta inviata dal GFE. Le latenze totali vengono misurate in base alla richiesta/risposta. Le pause tra le richieste
sulla stessa connessione che utilizzano Per le connessioni WebSocket, questo campo si riferisce all'intera durata della connessione.† Esempio: un bilanciatore del carico riceve 1 richiesta al secondo dal Regno Unito, tutte con latenza di 100 ms e 9 richieste al secondo dagli Stati Uniti, tutte con una latenza di 50 ms. In un determinato minuto sono state registrate 60 richieste dal Regno Unito e 540 dagli Stati Uniti. Le metriche di monitoraggio conservano la distribuzione su tutte le dimensioni. Puoi richiedere informazioni come le seguenti:
|
RTT frontend* | https/frontend_tcp_rtt |
Una distribuzione del tempo di round trip livellato (RTT) misurato per ogni connessione tra il client e il GFE (misurato dallo stack TCP del GFE). RTT fluido è un algoritmo che gestisce le variazioni e le anomalie che possono verificarsi nelle misurazioni RTT. |
Latenze di backend* | https/backend_latencies |
Una distribuzione della latenza misurata da quando il GFE ha inviato il primo byte di richiesta al backend, fino a quando il GFE ha ricevuto dal backend l'ultimo byte della risposta. Per le connessioni WebSocket, le latenze di backend vengono applicate all'intera durata della sessione WebSocket.† |
Frazione della classe del codice di risposta | Frazione delle risposte totali del bilanciatore del carico delle applicazioni esterno incluse in ogni classe del codice di risposta (2XX, 4XX, ...). In Cloud Monitoring, questo valore è disponibile solo nelle dashboard predefinite. Non è disponibile per le dashboard personalizzate. Puoi utilizzare l'API per impostare i relativi avvisi. | |
Conteggio di richieste di backend | https/backend_request_count |
Il numero di richieste inviate dal bilanciatore del carico delle applicazioni esterno ai backend. |
Conteggio byte richieste backend | https/backend_request_bytes_count |
Il numero di byte inviati come richieste dal bilanciatore del carico delle applicazioni esterno ai backend. |
Conteggio byte risposte backend | https/backend_response_bytes_count |
Il numero di byte inviati come risposte dai backend (inclusa la cache) al bilanciatore del carico delle applicazioni esterno. |
* Non è garantito che la somma delle latenze RTT del frontend e del backend sia inferiore o uguale alle latenze totali. Questo perché, anche se eseguiamo il polling RTT sul socket da GFE al client quando la risposta HTTP viene confermata, ci basiamo sui report del kernel per alcune di queste misurazioni e non possiamo garantire che il kernel avrà una misurazione RTT per la risposta HTTP specificata. Il risultato finale è un valore RTT livellato che è interessato anche da risposte HTTP, SYN/ACK e handshake SSL precedenti che non influiscono sulle tempistiche effettive delle richieste HTTP attuali.
† Per monitorare le connessioni WebSocket, crea un servizio di backend specifico per i WebSocket.
Filtrare le dimensioni in base alle metriche
Puoi applicare filtri alle metriche per i bilanciatori del carico delle applicazioni esterni.
Le metriche vengono aggregate per ogni bilanciatore del carico delle applicazioni classico e per il bilanciatore del carico delle applicazioni esterno globale. Puoi filtrare
le metriche aggregate in base alle seguenti dimensioni per
resource.type="http_load_balancer"
o resource.type="https_lb_rule"
.
Proprietà | Descrizione |
---|---|
backend_scope |
L'ambito Google Cloud (regione o zona) del gruppo di istanze del servizio di backend che ha gestito la connessione. Se nessun gruppo di istanze era disponibile o se la richiesta è stata gestita da un'altra entità, vedrai uno dei seguenti valori invece della regione o della zona del gruppo di istanze del servizio di backend.
Se scegli questa suddivisione, i grafici mostrano le metriche di backend (dal bilanciatore del carico ai backend), non le metriche frontend (dal bilanciatore del carico client). |
proxy_continent | Continente del GFE HTTP(S) che ha terminato la connessione HTTP(S).
(Esempi: America , Europe , Asia ) |
backend_type | Il nome del gruppo di backend che ha gestito la richiesta del client.
Può essere
|
backend_target_type | Il nome del servizio di backend che ha gestito la richiesta. Può essere
BACKEND_SERVICE , BACKEND_BUCKET ,
UNKNOWN se il backend non è stato assegnato o
NO_BACKEND_SELECTED se si è verificato un errore o un'altra interruzione prima che fosse possibile selezionare un
backend o si è verificato un reindirizzamento dell'URL. |
matched_url_path_rule | La regola del percorso della mappa degli URL corrispondente al prefisso della richiesta HTTP(S) (fino a 50 caratteri). |
forwarding_rule_name | Il nome della regola di forwarding utilizzata dal client per inviare la richiesta. |
url_map_name | La regola del percorso della mappa URL o la regola di route configurata nella chiave della mappa URL. Può essere
|
target_proxy_name | Il nome dell'oggetto proxy HTTP(S) di destinazione a cui fa riferimento la regola di forwarding. |
backend_target_name | Il nome della destinazione del backend. Il target può essere un servizio o un bucket di backend. UNKNOWN viene restituito se non è stato assegnato un backend.
|
backend_name | Il nome del gruppo di istanza di backend, del bucket o del NEG.
Viene restituito UNKNOWN se il backend non è stato assegnato oppure NO_BACKEND_SELECTED se si è verificato un errore o un'altra interruzione prima che fosse possibile selezionare un backend o che si sia verificato un reindirizzamento dell'URL. |
backend_scope_type | Il tipo di ambito del gruppo di backend. Può essere
|