Log e metriche per i servizi di backend

Questo documento mostra come configurare e utilizzare Cloud Logging. e Cloud Monitoring con i bilanciatori del carico delle applicazioni classici, bilanciatori del carico delle applicazioni esterni globali e Cloud CDN.

Logging

Puoi abilitare, disabilitare e visualizzare i log per un bilanciatore del carico delle applicazioni esterno servizio di backend. Per i bilanciatori del carico delle applicazioni esterni con backend bucket, logging è abilitato automaticamente e non può essere disabilitato.

Puoi abilitare o disabilitare il logging per ciascun servizio di backend. Puoi configurare se per registrare tutte le richieste o una frazione campionata in modo casuale.

Devi assicurarti di non avere un'esclusione dei log applicabile a bilanciatori del carico delle applicazioni esterni. Per istruzioni su come verificare che i log Cloud HTTP Load Balancer siano consentiti, consulta Visualizzazione del tipo di risorsa esclusioni.

Abilitazione del logging su un nuovo servizio di backend

Console

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome del bilanciatore del carico.

  3. Fai clic su Modifica.

  4. Fai clic su Configurazione backend.

  5. Seleziona Crea un servizio di backend.

  6. Compila i campi obbligatori del servizio di backend.

  7. Nella sezione Logging, seleziona la casella di controllo Abilita il logging.

  8. Imposta la probabilità di campionamento nel campo Frequenza di campionamento. Puoi impostare un numero compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Il valore predefinito è 1.0.

  9. Per completare la modifica del servizio di backend, fai clic su Aggiorna.

  10. 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 metodo 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 ti consente di specificare un valore da Da 0.0 a 1.0, dove 0.0 indica che non viene registrata alcuna richiesta 1.0 significa che viene registrato il 100% delle richieste. Significativo solo con Parametro --enable-logging. È in corso l'abilitazione del logging, ma l'impostazione la frequenza di campionamento a 0.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 metodo 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 ti consente di specificare un valore da Da 0.0 a 1.0, dove 0.0 indica che non viene registrata alcuna richiesta 1.0 significa che viene registrato il 100% delle richieste. Significativo solo con Parametro --enable-logging. È in corso l'abilitazione del logging, ma l'impostazione la frequenza di campionamento a 0.0 equivale a disabilitare il logging. Il valore predefinito è 1.0.

Abilitazione del logging su un servizio di backend esistente

Console

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome del bilanciatore del carico.

  3. Fai clic su Modifica.

  4. Fai clic su Configurazione backend.

  5. Fai clic su Modifica accanto di servizio di backend.

  6. Nella sezione Logging, seleziona la casella di controllo Abilita il logging.

  7. Imposta la probabilità di campionamento nel campo Frequenza di campionamento. Puoi impostare un numero compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Il valore predefinito è 1.0.

  8. Per completare la modifica del servizio di backend, fai clic su Aggiorna.

  9. 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 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 ti consente di specificare un valore da Da 0.0 a 1.0, dove 0.0 indica che non viene registrata alcuna richiesta 1.0 significa che viene registrato il 100% delle richieste. Significativo solo con Parametro --enable-logging. È in corso l'abilitazione del logging, ma l'impostazione la frequenza di campionamento a 0.0 equivale a disabilitare il logging. Il valore predefinito è 1.0.

gcloud: modalità classica

Abilita il logging su un servizio di backend esistente con 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 ti consente di specificare un valore da Da 0.0 a 1.0, dove 0.0 indica che non viene registrata alcuna richiesta 1.0 significa che viene registrato il 100% delle richieste. Significativo solo con Parametro --enable-logging. È in corso l'abilitazione del logging, ma l'impostazione la frequenza di campionamento a 0.0 equivale a disabilitare il logging. Il valore predefinito è 1.0.

Disabilitazione o modifica del logging su un servizio di backend esistente

Console

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome del bilanciatore del carico.

  3. Fai clic su Modifica.

  4. Fai clic su Configurazione backend.

  5. Fai clic su Modifica accanto di servizio di backend.

  6. Per disabilitare completamente il logging, nella sezione Logging, deseleziona la casella di controllo Abilita il logging.

  7. Se lasci abilitato il logging, puoi impostare un campionamento diverso nel campo Frequenza di campionamento. Puoi impostare un numero da 0.0 tramite 1.0, dove 0.0 significa che non viene registrata alcuna richiesta e 1.0 significa che viene registrato il 100% delle richieste. Il valore predefinito è 1.0. Per ridurre al 20% il numero di log archiviati, imposta il valore su 0.2.

  8. Per completare la modifica del servizio di backend, fai clic su Aggiorna.

  9. Per completare la modifica del bilanciatore del carico, fai clic su Aggiorna.

gcloud: modalità globale

Disabilita il logging su un servizio di backend con 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 regionale. Utilizza questo campo per i servizi di backend utilizzati con di Application Load Balancer 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 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 ti consente di specificare un valore da Da 0.0 a 1.0, dove 0.0 indica che non viene registrata alcuna richiesta 1.0 significa che viene registrato il 100% delle richieste. Significativo solo con Parametro --enable-logging. È in corso l'abilitazione del logging, ma l'impostazione la frequenza di campionamento a 0.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:

Procedura guidata


I log HTTP(S) vengono indicizzati prima da un regola di forwarding, e poi da una mappa URL.

Per visualizzare i log, vai alla pagina Esplora log:

Vai a Esplora log

  • Per visualizzare tutti i log, nel menu del filtro Risorsa, seleziona Cloud HTTP Load (Carico HTTP Cloud) Bilanciatore > 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 seleziona un URL mappa.

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.

Codifica UTF-8 per i campi dei log. Caratteri non 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 metriche basate su log mediante l'uso di dei log delle risorse (resource.type="http_load_balancer"). Le metriche create si basano sulla "Regola del bilanciatore del carico delle applicazioni (metriche basate su log)" (l7_lb_rule), disponibile in alle 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: monitoraggio e debug del traffico HTTP(S). I record di log contengono elementi 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 (Timestamp format) Facoltativo L'ora in cui il primo livello GFE riceve la richiesta.
httpRequest HttpRequest Obbligatorio Un protocollo comune per la registrazione delle richieste HTTP.

HttpRequest.protocol non è compilato per resource.type="http_load_balancer"

.
resource MonitoredResource Obbligatorio

La risorsa MonitoredResource è il tipo di risorsa associato a una voce di log.

L'elemento MonitoredResourceDescriptor descrive lo schema di un oggetto MonitoredResource utilizzando un nome del tipo e un insieme di etichette. Per ulteriori informazioni, consulta Etichette delle risorse.

jsonPayload oggetto (formato Struct) Obbligatorio Il payload della voce di log espresso come oggetto JSON. Il file JSON contiene i seguenti campi:
  • statusDetails
  • backendTargetProjectNumber
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, vedi i messaggi di operazione riuscita HTTP statusDetails e Messaggi di errore HTTP statusDetails.
string Obbligatorio Il campo backendTargetProjectNumber contiene il progetto numero in cui il target del backend: servizio di backend o backend di Cloud Shell. Questo campo ha il seguente formato: projects/PROJECT_NUMBER.

Etichette risorse

La tabella seguente elenca 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 L'identificatore del progetto Google Cloud associato a questa risorsa.
target_proxy_name string Il nome del all'oggetto proxy di destinazione a cui fa riferimento la regola di forwarding.
url_map_name string Il nome dell'URL l'oggetto mappa configurato per selezionare un servizio di backend.
zone string La zona in cui viene eseguito il carico è in esecuzione. 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 Cloud CDN memorizzazione nella cache dell'intervallo di byte. È 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 di Cloud CDN memorizzata nella cache che era 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 è 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 body è stata interrotta a causa dell'invio di una richiesta prima del backend 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 inaspettatamente dopo che è stata ricevuta una risposta parziale inviate 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 HTTP incompleto headers.

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 da errore (1XX o 2XX) a una richiesta prima che riceve 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 un chunking non valido tradizionale o altrimenti danneggiata. 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. Consulta la sezione Dimensioni intestazione per i bilanciatori del carico delle applicazioni esterni. 502
backend_timeout

Timeout del backend durante la generazione di una risposta.

Per una connessione WebSocket:

  • Per il bilanciatore del carico delle applicazioni esterno globale, viene generato un errore quando il GFE chiude la connessione websocket in stato di inattività dopo il servizio di backend il timeout scade.
  • Per il bilanciatore del carico delle applicazioni classico, viene generato un errore quando GFE chiude la connessione WebSocket in stato inattivo o attivo, dopo che scade il timeout del servizio di backend.

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 consentire l'accesso a 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 gli intervalli di byte supportati. Cloud CDN ricevuto una risposta incoerente (ad esempio, una con un codice di risposta) diversi dai previsti 206 Contenuti parziali). È successo quando di eseguire il riempimento della cache utilizzando 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 gli intervalli di byte supportati. Cloud CDN ricevuto una risposta incoerente (ad esempio, una con un codice di risposta) diversi dai previsti 206 Contenuti parziali). È successo quando di eseguire il riempimento della cache utilizzando 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 dal con Cloud CDN.

Restituito dal backend: è possibile qualsiasi codice di risposta.

byte_range_caching_retrieval_from_backend_failed_after_partial_response Una richiesta di intervallo di byte o una richiesta di convalida avviata da Cloud CDN ha riscontrato un errore. Fai riferimento alle Voce di log di Cloud Logging per la richiesta avviata da Cloud CDN per lo stato dettagliato del backend. 2XX
cache_lookup_failed_after_partial_response Il bilanciatore del carico non è riuscito a fornire una risposta completa da 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 un come 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 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 disattivato la connessione client per mancanza di l'avanzamento mentre eseguiva 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 ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
client_cert_unsupported_elliptic_curve_key Un certificato client o intermedio utilizza un'ellittica non supportata della curva. Per ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
client_cert_unsupported_key_algorithm Un certificato client o intermedio utilizza un certificato non RSA o non ECDSA dell'algoritmo. Per ulteriori informazioni, vedi 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 chiave pubblica del soggetto e del soggetto. Per ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
client_cert_chain_max_name_constraints_exceeded Un certificato intermedio fornito per la convalida aveva più di dieci vincoli relativi ai nomi. Per ulteriori informazioni, vedi 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 include clientAuth. Per ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
client_cert_validation_timed_out Limite di tempo superato durante la convalida della catena di certificati. Per ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
client_cert_validation_search_limit_exceeded Viene raggiunto il limite di profondità o iterazione durante il tentativo di convalidare nella catena di certificati. Per ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
client_cert_validation_not_performed Hai configurato mTLS senza configurare un TrustConfig. Per ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
client_cert_not_provided Il client non ha fornito il certificato richiesto durante l'handshake. Per ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
client_cert_validation_failed Il certificato client non supera la convalida con TrustConfig. Per ulteriori informazioni, vedi Errori registrati per connessioni chiuse. 0
config_not_found

Nel bilanciatore del carico manca la configurazione del progetto. Ciò può 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 del primo livello non riescono a 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 un di configurazione.

404, 502, 503
direct_response Il bilanciatore del carico ha sovrascritto questa richiesta e ha restituito una risposta fissa. Potresti visualizzare codice di risposta HTTP, a seconda della natura del problema. 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 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'applicazione Layer Protocol (come HTTP/2) da utilizzare per comunicare 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. Attualmente solo HTTP 0.9, 1.0, 1.1 e 2.0 sono supportati. 400
internal_error Errore interno del bilanciatore del carico. Normalmente rappresenta un nell'infrastruttura del bilanciatore del carico. Riprova a eseguire la query. 4XX
invalid_external_origin_endpoint La configurazione del backend esterno non è valida. Esamina il NEG internet configurazione e assicurati che specifichi un indirizzo e una porta FQDN/IP 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 eseguire più criteri Identity-Aware Proxy (IAP) combinati. Se hai un criterio IAP collegato a un e un altro criterio collegato 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 può essere causato da un errore di configurazione in cui il backend ha inoltrato la richiesta al carico con il bilanciatore del carico di rete passthrough esterno regionale. 502
required_body_but_no_content_length La richiesta HTTP richiede un corpo, ma le intestazioni della richiesta non includono un'intestazione chunked con codifica di trasferimento o di lunghezza dei contenuti. 400 o 403
secure_url_rejected È stata ricevuta una richiesta con un URL https:// su un HTTP/1.1 in testo non crittografato connessione. 400
ssl_certificate_san_verification_failed Il bilanciatore del carico non è riuscito a trovare una SAN (Subject Alternative Name) nel Certificato SSL presentato dal backend che corrisponde al nome host configurato. 502
ssl_certificate_chain_verification_failed Il certificato SSL presentato dal backend non ha superato il certificato SSL verifica. 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 cliente includeva "Aspetta: 100-continua" 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'handshake errore.
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 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 la regione specificata nel NEG non può essere raggiunta o quando non è stato trovato il nome risorsa (ad esempio il nome di Cloud Functions). 404, 502
fault_filter_abort Questo errore può verificarsi se il cliente ha configurato un filtro di errore e è stato attivato il filtro degli errori 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 reciproca dei certificati client TLS, completa i seguenti passaggi.

Query sulla console

  1. Nella console Google Cloud, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Fai clic sul pulsante di attivazione/disattivazione Mostra query.

  3. Incolla il codice seguente nel campo della query. Sostituisci FORWARDING_RULE_NAME con il nome del tuo di una 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
    
  4. 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 il backend bucket.

Logging per Google Cloud Armor

La tabella dei messaggi di errore HTTP statusDetail contiene alcuni messaggi che si applicano a Google Cloud Armor. Per ulteriori informazioni 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 generalmente esportati nel progetto che include la regola di forwarding. Di conseguenza, gli amministratori del servizio, proprietari o utenti di i progetti in cui viene creato il servizio di backend, dei log e delle metriche del bilanciatore del carico. Puoi utilizzare IAM per concedere queste autorizzazioni agli amministratori del servizio. Per saperne di più sulle i ruoli IAM disponibili e i passaggi per fornire l'accesso. consulta l'articolo Concedere l'accesso a monitoraggio.

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 filtra i log con campi specifici impostati. Esporta i log corrispondenti in Cloud Logging, Cloud Storage, BigQuery o Pub/Sub. Per ulteriori informazioni Consulta la panoramica dell'API Cloud Logging.

Monitoraggio

Il bilanciatore del carico esporta i dati di monitoraggio 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 API Cloud Monitoring.

Visualizzazione delle dashboard di Cloud Monitoring predefinite

Cloud Monitoring offre dashboard predefinite per monitorare bilanciatori del carico. Queste dashboard vengono compilate automaticamente e configurazione in Cloud Monitoring.

Per accedere alle dashboard predefinite:

  1. Vai a Monitoring nella console Google Cloud.

    Vai a Monitoring

  2. Nel pannello di navigazione di Monitoring, fai clic su Dashboard.

  3. In Categorie, fai clic su Google Cloud.

    • Per visualizzare un elenco di dashboard per tutti i tuoi carichi di lavoro Google Cloud bilanciatori del carico, seleziona la dashboard denominata Bilanciatori del carico Google Cloud. Individua la dashboard di un bilanciatore del carico specifico 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 5XX e per tutti i bilanciatori del carico delle applicazioni esterni nel progetto. Offre inoltre un elenco di dashboard per tutti i bilanciatori del carico delle applicazioni esterni nel progetto.

      Puoi fare clic sulla dashboard di ogni bilanciatore del carico. Ogni dashboard include:

      • Grafici precompilati che mostrano suddivisioni delle risposte per classi di codici 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
  4. Per visualizzare le dashboard per i servizi di terze parti, torna alle Dashboard . In Categorie, fai clic su Altro.

    • Per visualizzare la dashboard di un servizio di terze parti specifico, individuala 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:

Procedura guidata


Puoi creare criteri di avviso per monitorare i valori delle metriche e ricevere notifiche quando queste metriche violano una condizione.

  1. Nella console Google Cloud, vai alla Pagina Avvisi:

    Vai ad Avvisi

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

  2. Se non hai creato i canali di notifica e vuoi ricevere notifiche, fai clic su Modifica canali di notifica e aggiungi i tuoi canali di notifica. Torna a Avvisi dopo aver aggiunto i canali.
  3. Nella pagina Avvisi, seleziona Crea criterio.
  4. Per selezionare la metrica, espandi il menu Seleziona una metrica e poi segui questi passaggi:
      .
    1. Per limitare il menu alle voci pertinenti, inserisci Global External Application Load Balancer Rule nella barra dei filtri. Se non ci sono risultati dopo aver filtrato il menu, disattiva fai clic su Mostra solo risorse attive pulsante di attivazione/disattivazione delle metriche.
    2. Per Tipo di risorsa, seleziona Regola del bilanciatore del carico delle applicazioni esterno globale.
    3. Seleziona una Categoria di metrica e una Metrica, quindi seleziona Applica.
  5. Fai clic su Avanti.
  6. 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 ulteriori informazioni le informazioni, vedi Crea criteri di avviso per la soglia delle metriche.
  7. Fai clic su Avanti.
  8. (Facoltativo) Per aggiungere notifiche al criterio di avviso, fai clic su Canali di notifica. Nella finestra di dialogo, seleziona una o più notifiche canali dal menu, quindi fai clic su OK.
  9. (Facoltativo) Aggiorna la Durata della chiusura automatica degli incidenti. Questo campo determina quando Il monitoraggio chiude gli incidenti in assenza di dati delle metriche.
  10. (Facoltativo) Fai clic su Documentazione, quindi aggiungi le eventuali informazioni da includere in un messaggio di notifica.
  11. Fai clic su Nome avviso e inserisci un nome per il criterio di avviso.
  12. Fai clic su Crea criterio.
Per saperne di più, consulta Criteri di avviso.

Definizione delle dashboard personalizzate di Cloud Monitoring

Puoi creare dashboard di Cloud Monitoring personalizzate per il bilanciamento del carico metrics:

  1. Nella console Google Cloud, vai alla pagina Monitoring.

    Vai a Monitoring

  2. Seleziona Dashboard > Crea dashboard.

  3. Fai clic su Aggiungi grafico, quindi assegna un titolo al grafico.

  4. Per identificare le serie temporali da visualizzare, scegli un tipo di risorsa e tipo di metrica:

    1. Nella sezione Risorse e Metrica, fai clic sul grafico e poi Nella sezione Seleziona una metrica, scegli una delle opzioni disponibili:
        .
      • Per un bilanciatore del carico delle applicazioni esterno globale, seleziona il tipo di risorsa Regola del bilanciatore del carico delle applicazioni esterno globale.
    2. Fai clic su Applica.
  5. Per specificare i filtri di monitoraggio, fai clic su Filtri > Aggiungi filtro.

  6. 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 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 rettificato). Il pannello fornisce l'analisi dei dati a intervalli predefiniti di 1 ora (un'ora), 6 h (sei ore), 1 g (un giorno), 1 w (una settimana) e 6 w (sei settimane). Puoi richiedere manualmente l'analisi in qualsiasi 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 sono segnalati 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 all'ultimo byte della risposta inviata dal GFE.

Le latenze totali vengono misurate in base alla richiesta/risposta. Mette in pausa tra le richieste sulla stessa connessione che usano Connection: keep-alive non incidono sulla misurazione. Questa misurazione viene generalmente ridotta al 95° posto percentile nelle viste di Cloud Monitoring.

Per le connessioni WebSocket, questo campo si riferisce all'intera durata della connessione.

Esempio: un bilanciatore del carico ha 1 richiesta al secondo dal Regno Unito, tutte con 100 ms e 9 richieste al secondo dagli Stati Uniti, tutte con una latenza di 50 ms. Oltre un in un determinato minuto ci sono state 60 richieste dal Regno Unito e 540 richieste dal Stati Uniti. Le metriche di monitoraggio conservano la distribuzione su tutte le dimensioni. Tu può richiedere informazioni quali:

  • latenza complessiva media (300/600) - 50 ms
  • Latenza mediana per il Regno Unito (30/60) - 100 ms
  • Latenza complessiva al 95° percentile (570/600) - 100 ms
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 (misurata dallo stack TCP del GFE). Il RTT fluido è un algoritmo che si occupa di variazioni e anomalie che possono verificarsi nelle misurazioni RTT.
Latenze di backend* https/backend_latencies

Una distribuzione della latenza misurata dal momento della prima richiesta il byte è stato inviato dal GFE al backend, finché il GFE non ha ricevuto esegui il backend dell'ultimo byte della risposta.

Per le connessioni WebSocket, le latenze di backend si applicano all'intero durata della sessione WebSocket.

Frazione della classe del codice di risposta Frazione delle risposte totali del bilanciatore del carico delle applicazioni esterno in ognuna classe del codice di risposta (2XX, 4XX, ...). In Cloud Monitoring, questo valore disponibile solo nelle dashboard predefinite. Non è disponibile per i modelli le dashboard. 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 all'account di backend.
Conteggio byte richieste backend https/backend_request_bytes_count Il numero di byte inviati come richieste dal bilanciatore del carico delle applicazioni esterno all' di backend.
Conteggio byte risposte backend https/backend_response_bytes_count Il numero di byte inviati come risposte dai backend (tra cui 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é sebbene polliamo RTT sopra dal GFE al client nel momento in cui la risposta HTTP viene confermata, ci affidiamo report kernel per alcune di queste misurazioni e non possiamo garantire il kernel avrà una misurazione RTT per la risposta HTTP data. Fine Il risultato è un valore RTT livellato che è interessato anche dalle richieste HTTP precedenti risposte, SYN/ACK e handshake SSL che non interessano le connessioni HTTP correnti richiedere le tempistiche effettive.

Per monitorare le connessioni WebSocket, crea un servizio di backend in particolare per 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 e aggregate in base alle seguenti dimensioni resource.type="http_load_balancer" o resource.type="https_lb_rule".

Proprietà Descrizione
backend_scope L'ambito di 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 fornita da un altro , verrà visualizzato uno dei seguenti valori al posto della regione o zona del gruppo di istanze del servizio di backend.

  • FRONTEND_5XX - Si è verificato un errore interno prima che GFE potesse selezionare di un backend. Il GFE ha restituito "5XX" al client.
  • INVALID_BACKEND - Il GFE non è riuscito a trovare un backend integro da assegnare la richiesta, quindi ha restituito una risposta "5XX" al richiedente.
  • NO_BACKEND_SELECTED - Si è verificato un errore o un'altra interruzione prima è stato possibile selezionare un backend o è stato eseguito un reindirizzamento URL.
  • MULTIPLE_BACKENDS - La richiesta è stata elaborata da più elementi di backend. Questo può accadere quando Cloud CDN ha gestito la richiesta parzialmente dalla cache e ha inviato anche uno o più intervallo di byte richieste al backend. Usa backend_scope per visualizzare ogni richiesta dal bilanciatore del carico al backend.

Quando viene scelta questa suddivisione, i grafici mostrano le metriche di backend (carico dai bilanciatori ai backend), non alle metriche frontend (bilanciatore client-carico).
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 INSTANCE GROUP, NETWORK_ENDPOINT_GROUP, o UNKNOWN se il backend non è stato assegnato. Se nessun gruppo di backend era disponibile o se la richiesta è stata fornita da un'altra entità, viene visualizzato uno dei seguenti valori al posto di un gruppo di backend.

  • FRONTEND_5XX - Si è verificato un errore interno prima che GFE potesse selezionare di un backend. Il GFE ha restituito "5XX" al client.
  • INVALID_BACKEND: il GFE non è riuscito a trovare un backend integro a cui assegnare in modo da restituire una risposta "5XX" al richiedente.
  • NO_BACKEND_SELECTED - Si è verificato un errore o un'altra interruzione prima è stato selezionato un backend o si è verificato un reindirizzamento dell'URL.
  • MULTIPLE_BACKENDS - La richiesta è stata elaborata da più elementi di backend. Questo può accadere quando Cloud CDN ha gestito la richiesta parzialmente dalla cache e ha inviato anche uno o più intervallo di byte richieste al backend. Usa backend_scope per visualizzare ogni richiesta dal bilanciatore del carico al backend.
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 oppure NO_BACKEND_SELECTED se si è verificato un errore o un'altra interruzione prima di un è stato selezionato 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 come parte della mappa URL chiave. Può essere UNMATCHED o UNKNOWN come opzioni di riserva.

  • UNMATCHED si riferisce a una richiesta che non corrisponde ad alcun URL regole percorso, quindi url_map_name usa la regola percorso predefinita.
  • UNKNOWN indica un errore interno.
target_proxy_name Il nome dell'oggetto proxy HTTP(S) di destinazione a cui fa riferimento l'inoltro personalizzata.
backend_target_name Il nome della destinazione del backend. La destinazione può essere un backend o un bucket di backend. UNKNOWN viene restituito se un backend non era assegnato.
backend_name Il nome del gruppo di istanza di backend, del bucket o del NEG. UNKNOWN viene restituito se il backend non è stato assegnato oppure NO_BACKEND_SELECTED se si è verificato un errore o un'altra interruzione prima che sia possibile selezionare un backend o è avvenuto un reindirizzamento URL.
backend_scope_type

Il tipo di ambito del gruppo di backend. Può essere GLOBAL, REGION, ZONE, MULTIPLE_BACKENDS o NO_BACKEND_SELECTED se si è verificato un errore o un'altra interruzione prima che sia possibile selezionare un backend, che sia avvenuto un reindirizzamento URL oppure possibili output backend_type.

MULTIPLE_BACKENDS viene utilizzato quando si utilizza la memorizzazione nella cache di blocchi. Vengono inviate più query allo stesso backend per blocchi di dati diversi. per supportare una singola richiesta del client.

Passaggi successivi