Questo documento fornisce le informazioni necessarie per comprendere le metriche di logging e monitoraggio per gli Application Load Balancer interni. Le metriche di logging e monitoraggio per gli Application Load Balancer interni regionali e per gli Application Load Balancer interni tra regioni sono le stesse.
Logging
Puoi abilitare il logging in base al servizio di backend. La mappa URL di un singolo bilanciatore del carico delle applicazioni interno può fare riferimento a più di un servizio di backend. A seconda della configurazione, potrebbe essere necessario abilitare il logging per più servizi di backend.
Campionamento e raccolta dei log
Google Cloud campiona i pacchetti che lasciano e entrano nelle istanze di macchine virtuali (VM) del backend del bilanciatore del carico. Questi pacchetti campionati vengono elaborati per generare i log.
Non tutti i pacchetti vengono campionati. Google Cloud campiona un sottoinsieme variabile di pacchetti in base alla quantità di traffico sull'host fisico. La frequenza di campionamento più bassa possibile è di uno su 1024 pacchetti. La frequenza di campionamento è controllata in modo dinamico da Google Cloud. Non puoi modificare la frequenza di campionamento.
Il campionamento dei pacchetti interagisce con le regole del firewall nei seguenti modi:
- I pacchetti vengono campionati prima dell'applicazione delle regole firewall in uscita.
- I pacchetti vengono campionati dopo l'applicazione delle regole firewall in entrata.
Dopo il campionamento, Google Cloud elabora i pacchetti campionati in base alla seguente procedura:
Aggregazione: i pacchetti campionati vengono aggregati in un intervallo di 5 secondi per produrre una singola voce di flusso.
Campionamento dei log configurabile (secondario): si tratta di un secondo processo di campionamento che campiona i flussi. Puoi controllare la frazione delle voci di flusso emesse come voci di log in base al parametro logConfig.sampleRate. Quando
logConfig.sampleRate
è1.0
(100%), significa che tutti i pacchetti campionati vengono elaborati.Scrivi nel logging: le voci di log vengono scritte in Cloud Logging.
Campi facoltativi
I record di log contengono campi obbligatori e facoltativi. La sezione Cosa viene registrato elenca i campi facoltativi e quelli obbligatori. Tutti i campi obbligatori sono sempre inclusi. Puoi personalizzare i campi facoltativi da conservare.
Se selezioni includi tutti i campi facoltativi, tutti i campi facoltativi nel formato del record di log vengono inclusi nei log di flusso. Quando al formato di record vengono aggiunti nuovi campi facoltativi, i log di flusso includono automaticamente i nuovi campi.
Se selezioni escludi tutti i campi facoltativi, tutti i campi facoltativi vengono omessi.
Se selezioni personalizzato, puoi specificare i campi facoltativi che vuoi includere, ad esempio
tls.protocol,tls.cipher
.
Per istruzioni sulla personalizzazione dei campi facoltativi, consulta Abilitare il logging su un servizio di backend esistente.
Abilitazione del logging su un servizio di backend esistente
Per gli Application Load Balancer interni regionali, segui questi passaggi:
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 tuo servizio di backend.Fai clic su Configurazioni avanzate (affinità sessione, timeout per svuotamento della connessione).
Fai clic su Abilita il logging.
Imposta una frazione di 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
.(Facoltativo) Per includere tutti i campi facoltativi nei log, nella sezione Campi facoltativi, fai clic su Includi tutti i campi facoltativi.
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
Per aggiornare il servizio di backend in modo da abilitare il logging, utilizza il comando gcloud compute
backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --region=REGION \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
dove
--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
indica che non viene registrata alcuna richiesta, mentre1.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
.--logging-optional
consente di specificare i campi facoltativi che vuoi includere nei log:INCLUDE_ALL_OPTIONAL
per includere tutti i campi facoltativi.EXCLUDE_ALL_OPTIONAL
(valore predefinito) per escludere tutti i campi facoltativi.CUSTOM
per includere un elenco personalizzato di campi facoltativi che hai specificato inOPTIONAL_FIELDS
.
--logging-optional-fields
consente di specificare un elenco di campi facoltativi, separati da virgole, da includere nei log.Ad esempio,
tls.protocol,tls.cipher
può essere impostato solo seLOGGING_OPTIONAL_MODE
è impostato suCUSTOM
.
Per i bilanciatori del carico delle applicazioni interni tra regioni, segui questi passaggi:
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 tuo servizio di backend.Fai clic su Configurazioni avanzate (affinità sessione, timeout per svuotamento della connessione).
Fai clic su Abilita il logging.
Imposta una frazione di 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
.(Facoltativo) Per includere tutti i campi facoltativi nei log, nella sezione Campi facoltativi, fai clic su Includi tutti i campi facoltativi.
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
Per aggiornare il servizio di backend in modo da abilitare il logging, utilizza il comando gcloud compute
backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --global \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
dove
--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
indica che non viene registrata alcuna richiesta, mentre1.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
.--logging-optional
consente di specificare i campi facoltativi che vuoi includere nei log:INCLUDE_ALL_OPTIONAL
per includere tutti i campi facoltativi.EXCLUDE_ALL_OPTIONAL
(valore predefinito) per escludere tutti i campi facoltativi.CUSTOM
per includere un elenco personalizzato di campi facoltativi che hai specificato inOPTIONAL_FIELDS
.
--logging-optional-fields
consente di specificare un elenco di campi facoltativi, separati da virgole, da includere nei log.Ad esempio,
tls.protocol,tls.cipher
può essere impostato solo seLOGGING_OPTIONAL_MODE
è impostato suCUSTOM
.
Dopo aver abilitato il logging sul servizio di backend, ogni richiesta HTTP(S) viene registrata utilizzando Cloud Logging.
Come visualizzare i log
Per visualizzare i log, nella console Google Cloud, vai alla pagina Esplora log.
I log del bilanciatore del carico delle applicazioni interno vengono indicizzati prima per rete e poi per regione.
- Per visualizzare i log di tutti i bilanciatori del carico delle applicazioni interni, seleziona Regola del bilanciatore del carico delle applicazioni interno nel primo menu a discesa.
- Per visualizzare i log di una sola rete, seleziona Regola del bilanciatore del carico delle applicazioni interno, quindi seleziona il nome di una rete.
- Per visualizzare i log relativi a una sola regione della rete, seleziona Regola del bilanciatore del carico delle applicazioni interno >
NETWORK
>REGION
.
I campi log di tipo boolean vengono generalmente visualizzati solo se hanno un valore di true
.
Se un campo booleano ha il valore false
, viene omesso dal log.
Per i campi di log viene applicata la codifica UTF-8. I caratteri non UTF-8 vengono sostituiti con punti interrogativi.
Puoi configurare l'esportazione delle metriche basate su log per i log delle risorse (resource.type="internal_http_lb_rule"
). Le metriche create sono basate sulla risorsa "Regola del bilanciatore del carico delle applicazioni interno", disponibile nelle dashboard di Cloud Monitoring:
Cosa viene registrato
Le voci di log del bilanciatore del carico delle applicazioni interno contengono informazioni utili per il monitoraggio e il debug del traffico HTTP(S). I record di log contengono campi obbligatori, ovvero i campi predefiniti di ogni record di log, e campi facoltativi che aggiungono ulteriori informazioni sul traffico HTTP(S). Possono essere omessi per risparmiare sui costi di archiviazione. Le voci di log contengono i seguenti tipi di informazioni:
- Informazioni generali mostrate nella maggior parte dei log di Google Cloud, ad esempio gravità, ID progetto, numero di progetto e timestamp, come descritto nella voce LogEntry.
- Campi log HttpRequest.
Alcuni campi di log sono in un formato a più campi, con più di un dato in un determinato campo. Ad esempio, il campo tls
è nel formato TlsDetails
, che contiene il protocollo TLS e la crittografia TLS in un singolo campo.
Questi campi a più campi sono descritti nella seguente tabella dei formati di record.
Campo | Tipo | Tipo di campo: obbligatorio o facoltativo | Description |
---|---|---|---|
logName
|
string | Obbligatorio |
Il nome della risorsa del log a cui appartiene questa voce di log. Nel modulo "projects/PROJECT_ID/logs/requests" .
|
timestamp
|
string | Obbligatorio | L'ora in cui è iniziata la richiesta. |
severity
|
Formato LogSeverity | Obbligatorio |
La gravità della voce di log. Il valore predefinito è
LogSeverity.DEFAULT .
|
httpRequest
|
Oggetto HttpRequest | Obbligatorio | Un protocollo HttpRequest che descrive la richiesta HTTP(S) registrata. |
trace
|
string | Obbligatorio |
Il nome della risorsa dell'eventuale traccia associata all'eventuale voce di log. Se contiene un nome di risorsa relativo, si presume che sia relativo a https://tracing.googleapis.com . Esempio:
projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824 .
I bilanciatori del carico delle applicazioni interni non supportano questo campo. |
spanId
|
string | Obbligatorio |
L'ID intervallo all'interno della traccia associata alla voce di log. Per gli intervalli di Trace, questa stringa presenta lo stesso formato utilizzato dall'API Trace v2: una codifica esadecimale di 16 caratteri di un array a 8 byte, ad esempio 000000000000004a .
I bilanciatori del carico delle applicazioni interni non supportano questo campo. |
resource
|
Oggetto MonitoredResource | Obbligatorio |
La risorsa monitorata che ha generato questa voce di log. L'oggetto Ad esempio, i descrittori risorsa monitorata per gli Application Load Balancer interni hanno un tipo di risorsa |
jsonPayload | oggetto (formato Struct) | Obbligatorio | Payload della voce di log espresso come oggetto JSON. L'oggetto JSON contiene i seguenti campi:
|
string | Obbligatorio | Il campo Il campo non viene registrato se il valore è una stringa vuota. Questo può
accadere se il proxy o il backend non restituisce un errore o un codice di errore diverso
da Il campo
|
|
string | Obbligatorio | Il campo backendTargetProjectNumber contiene il numero di progetto che identifica il proprietario del servizio di backend o del bucket di backend.
|
|
string | Obbligatorio | Il campo serviceDirectoryService contiene il nome del servizio Service Directory su cui è stato configurato l'errore Cloud FIT. |
|
string | Obbligatorio | Il campo cloudFitExperiment contiene il nome dell'esperimento Cloud FIT. |
|
string | Obbligatorio | Il campo cloudFitFault contiene il nome dell'errore inserito da un esperimento di errore Cloud FIT in questo percorso di richiesta. |
|
ServiceExtensionInfo | Obbligatorio | Il campo serviceExtensionInfo archivia le informazioni sui flussi gRPC dal bilanciatore del carico alle estensioni di servizio. Per maggiori
informazioni, consulta
Che cosa viene registrato per le estensioni callout. |
|
TlsDetails | Facoltativo | Il campo tls contiene il valore TlsDetails che specifica i metadati TLS per la connessione tra il client e l'Application Load Balancer interno. Questo campo è disponibile solo se il client utilizza la crittografia TLS/SSL. |
|
MtlsDetails | Facoltativo | Il campo mtls contiene il valore MtlsDetails che
specifica i metadati mTLS per la
connessione tra il client e l'Application Load Balancer interno. Questo campo è disponibile solo se il bilanciatore del carico utilizza il protocollo TLS reciproco (mTLS) per il frontend.
|
Formato del campo TlsDetails
Campo | Formato dei campi | Tipo di campo: obbligatorio o facoltativo | Descrizione |
---|---|---|---|
protocollo | string | Facoltativo | Protocollo TLS utilizzato dai client per stabilire una connessione con il bilanciatore del carico. I valori possibili sono TLS 1.0, 1.1, 1.2,
1.3 o QUIC .
Questo valore è impostato su NULL se il client non utilizza la crittografia TLS/SSL.
|
crittografia | string | Facoltativo | Crittografia TLS utilizzata dai client per stabilire una connessione con il bilanciatore del carico. Questo valore è impostato su NULL se il client non utilizza HTTP(S) o se il client non utilizza la crittografia TLS/SSL.
|
Formato del campo MtlsDetails
Campo | Formato dei campi | Tipo di campo: obbligatorio o facoltativo | Descrizione |
---|---|---|---|
clientCertPresent | bool | Facoltativo |
|
clientCertChainVerified | bool | Facoltativo |
|
clientCertError | string | Facoltativo | Stringhe predefinite che rappresentano le condizioni di errore. Per maggiori informazioni sulle stringhe di errore, consulta l'articolo sulle modalità di convalida del client mTLS. |
clientCertSha256Fingerprint | string | Facoltativo | Fingerprint SHA-256 con codifica Base64 del certificato client. |
clientCertSerialNumber | string | Facoltativo | Il numero di serie del certificato client.
Se il numero di serie è più lungo di 50 byte, la stringa |
clientCertValidStartTime | string | Facoltativo | Timestamp (formato della stringa di data RFC 3339) prima del quale il certificato client non è valido.
Ad esempio, |
clientCertValidEndTime | string | Facoltativo | Timestamp (formato della stringa di data RFC 3339) dopo il quale il certificato client non è valido.
Ad esempio, |
clientCertSpiffeId | string | Facoltativo | L'ID SPIFFE del campo del nome alternativo (SAN) del soggetto. Se il valore non è valido o supera i 2048 byte, l'ID SPIFFE è impostato su una stringa vuota. Se l'ID SPIFFE è più lungo di 2048 byte, la stringa
|
clientCertUriSans | string | Facoltativo | Elenco separato da virgole con codifica Base64 delle estensioni SAN di tipo URI. Le estensioni SAN vengono estratte dal certificato client.
L'ID SPIFFE non è incluso nel campo Se il campo |
clientCertDnsnameSans | string | Facoltativo | Elenco separato da virgole con codifica Base64 delle estensioni SAN di tipo DNSName. Le estensioni SAN vengono estratte dal certificato client. Se il campo |
clientCertIssuerDn | string | Facoltativo | Campo emittente completo con codifica Base64 del certificato. Se il campo |
clientCertSubjectDn | string | Facoltativo | Campo Subject completo con codifica Base64 del certificato. Se il campo |
clientCertLeaf | string | Facoltativo | Il certificato foglia client per una connessione mTLS stabilita in cui il certificato ha superato la convalida. La codifica del certificato è conforme a RFC 9440: il certificato DER binario è codificato utilizzando Base64 (senza interruzioni di riga, spazi o altri caratteri esterni all'alfabeto Base64) e delimitato da due punti su entrambi i lati. Se |
clientCertChain | string | Facoltativo | L'elenco, delimitato da virgole, di certificati, in ordine TLS standard, della catena di certificati client per una connessione mTLS stabilita in cui il certificato client ha superato la convalida, escluso il certificato foglia. La codifica dei certificati è conforme a RFC 9440. Se la dimensione combinata di |
campo di errore proxyStatus
Il campo proxyStatus
contiene una stringa che specifica il motivo per cui il bilanciatore del carico ha restituito un errore. Il campo proxyStatus
è costituito da due parti: proxyStatus error
e proxyStatus details
.
Questa sezione descrive le stringhe supportate nel campo proxyStatus error
.
Il campo proxyStatus error è applicabile ai seguenti bilanciatori del carico:
- Bilanciatore del carico delle applicazioni esterno regionale
- Bilanciatore del carico delle applicazioni interno tra regioni
- Bilanciatore del carico delle applicazioni interno regionale
Errore proxyStatus | Descrizione | Codici di risposta associati comuni |
---|---|---|
destination_unavailable
|
Il bilanciatore del carico considera il backend non disponibile. Ad esempio, i recenti tentativi di comunicazione con il backend non sono riusciti o un controllo di integrità potrebbe essersi verificato un errore. | 500, 503 |
connection_timeout
|
Timeout del tentativo del bilanciatore del carico di aprire una connessione al backend. | 504 |
connection_terminated
|
La connessione del bilanciatore del carico al backend è terminata prima della ricezione di una risposta completa. Questo
|
0, 502, 503 |
connection_refused
|
La connessione del bilanciatore del carico al backend viene rifiutata. | 502, 503 |
connection_limit_reached
|
Il bilanciatore del carico è configurato in modo da limitare il numero di connessioni di cui dispone al backend e questo limite è stato superato. Questo
|
502, 503 |
destination_not_found
|
Il bilanciatore del carico non può determinare il backend appropriato da utilizzare per questa richiesta. Ad esempio, il backend potrebbe non essere configurato. | 500, 404 |
dns_error
|
Il bilanciatore del carico ha riscontrato un errore DNS durante il tentativo di trovare un indirizzo IP per il nome host del backend. | 502, 503 |
proxy_configuration_error
|
Il bilanciatore del carico ha riscontrato un errore di configurazione interno. | 500 |
proxy_internal_error
|
Si è verificato un errore interno del bilanciatore del carico. | 0, 500, 502 |
proxy_internal_response
|
Il bilanciatore del carico ha generato la risposta senza tentare di connettersi al backend. | Qualsiasi codice di risposta in base al tipo di problema. Ad esempio, il codice di risposta 410 indica che il backend non è disponibile a causa di un pagamento inadempiente.
|
http_response_timeout
|
Il bilanciatore del carico ha raggiunto un limite di timeout del servizio di backend configurato in attesa della risposta completa dal backend. | 504, 408 |
http_request_error
|
Il bilanciatore del carico ha riscontrato un errore HTTP 4xx, che indica problemi con la richiesta del client. | 400, 403, 405, 406, 408, 411, 413, 414, 415, 416, 417 o 429 |
http_protocol_error
|
Il bilanciatore del carico ha riscontrato un errore di protocollo HTTP durante la comunicazione con il backend. | 502 |
tls_protocol_error
|
Il bilanciatore del carico ha riscontrato un errore TLS durante l'handshake TLS. | 0 |
tls_certificate_error
|
Il bilanciatore del carico ha riscontrato un errore durante la verifica del certificato presentato dal server o dal client quando mTLS è abilitato. | 0 |
tls_alert_received
|
Il bilanciatore del carico ha riscontrato un avviso TLS irreversibile durante l'handshake TLS. | 0 |
Campo dei dettagli proxyStatus
Il campo proxyStatus
contiene una stringa che specifica il motivo per cui il bilanciatore del carico ha restituito un errore. Il campo proxyStatus
è costituito da due parti: proxyStatus error
e proxyStatus details
.
Il campo proxyStatus details
è facoltativo e viene mostrato solo quando
sono disponibili informazioni aggiuntive.
Questa sezione descrive le stringhe supportate nel campo proxyStatus details
.
Il campo proxyStatus (Dettagli proxyStatus) è applicabile ai seguenti bilanciatori del carico:
- Bilanciatore del carico delle applicazioni esterno regionale
- Bilanciatore del carico delle applicazioni interno regionale
- Bilanciatore del carico delle applicazioni interno tra regioni
Dettagli proxyStatus | Descrizione | Codici di risposta associati comuni |
---|---|---|
client_disconnected_before_any_response
|
La connessione al client si è interrotta prima che il bilanciatore del carico inviasse qualsiasi risposta. | 0 |
backend_connection_closed
|
Il backend ha chiuso inaspettatamente la sua connessione al bilanciatore del carico. Questo può accadere se il bilanciatore del carico invia traffico a un'altra entità, ad esempio un'applicazione di terze parti con un timeout TCP inferiore a quello di 10 minuti (600 secondi) del bilanciatore del carico. | 502 |
failed_to_connect_to_backend
|
Il bilanciatore del carico non è riuscito a connettersi al backend. Questo errore include i timeout durante la fase di connessione. | 503 |
failed_to_pick_backend
|
Il bilanciatore del carico non è riuscito a scegliere un backend integro per gestire la richiesta. | 502 |
response_sent_by_backend
|
La richiesta HTTP è stata inviata tramite proxy al backend e la risposta è stata restituita dal backend. | Il codice di risposta HTTP viene impostato dal software in esecuzione nel backend. |
client_timed_out
|
La connessione tra il bilanciatore del carico e il client ha superato il timeout di inattività. Per maggiori informazioni sul bilanciatore del carico delle applicazioni esterno regionale, consulta Timeout keepalive HTTP client. Per maggiori informazioni sul bilanciatore del carico delle applicazioni interno, consulta Timeout keepalive HTTP client. |
0, 408 |
backend_timeout
|
Timeout del backend durante la generazione di una risposta. |
502 |
http_protocol_error_from_backend_response
|
La risposta del backend contiene un errore di protocollo HTTP. | 501, 502 |
http_protocol_error_from_request
|
La richiesta del client contiene un errore di protocollo HTTP. | 400, 503 |
http_version_not_supported
|
La versione del protocollo HTTP non è supportata. Sono supportati solo HTTP 0.9, 1.0, 1.1 e 2.0. | 400 |
handled_by_identity_aware_proxy
|
Questa risposta è stata generata da Identity-Aware Proxy (IAP) durante la verifica dell'identità del client prima di consentire l'accesso. | 200, 302, 400, 401, 403, 500, 502 |
invalid_request_headers
|
Le intestazioni delle richieste HTTP ricevute da un client non sono valide. | 400, 404 |
ip_detection_failed
|
Impossibile rilevare l'indirizzo IP originale. | Qualsiasi codice di risposta possibile a seconda della natura dell'errore. Il valore deve essere compreso tra 400 e 599. |
request_body_too_large
|
Il corpo della richiesta HTTP ha superato la lunghezza massima supportata dal bilanciatore del carico. | 413, 507 |
request_header_timeout
|
L'intestazione della richiesta è scaduta perché il bilanciatore del carico non ha ricevuto la richiesta completa entro 5 secondi. | 408, 504 |
denied_by_security_policy
|
Il bilanciatore del carico ha rifiutato la richiesta a causa di un criterio di sicurezza di Google Cloud Armor. | 403 |
throttled_by_security_policy
|
La richiesta è stata bloccata da una regola di limitazione di Google Cloud Armor. | 429 |
client_cert_chain_invalid_eku
|
Il certificato client o il relativo emittente non ha un utilizzo esteso della chiave che include clientAuth. Per maggiori informazioni, 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 10 vincoli relativi ai nomi. Per maggiori informazioni, consulta la sezione Errori registrati per le connessioni chiuse. | 0 |
client_cert_invalid_rsa_key_size
|
Un certificato client o intermedio aveva dimensioni della chiave RSA non valide. Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse. | 0 |
client_cert_not_provided
|
Il client non ha fornito il certificato richiesto durante l'handshake. Per ulteriori informazioni, consulta Errori registrati per le 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 gli stessi valori Subject e Subject Public Key Info .
Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse.
|
0 |
client_cert_unsupported_elliptic_curve_key
|
Un client o un certificato intermedio utilizza una curva ellittica non supportata. Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse. | 0 |
client_cert_unsupported_key_algorithm
|
Un client o un certificato intermedio utilizza un algoritmo non RSA o non EDSA. Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse. | 0 |
client_cert_validation_failed
|
Il certificato client non supera la convalida con TrustConfig .
Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse.
|
0 |
client_cert_validation_not_performed
|
Hai configurato il protocollo TLS reciproco senza configurare un TrustConfig .
Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse.
|
0 |
client_cert_validation_search_limit_exceeded
|
Il limite di profondità o di iterazione viene raggiunto durante il tentativo di convalida della catena di certificati. Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse. | 0 |
client_cert_validation_timed_out
|
È stato superato il limite di tempo (200 ms) durante la convalida della catena di certificati. Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse. | 0 |
tls_version_not_supported
|
La versione del protocollo TLS è riconosciuta, ma non supportata. L'errore genera una connessione TLS chiusa. | 0 |
unknown_psk_identity
|
I server inviano questo errore quando è richiesta l'impostazione della chiave PSK, ma il client non fornisce un'identità PSK accettabile. L'errore genera una connessione TLS chiusa. | 0 |
no_application_protocol
|
Inviato dai server quando un'estensione del client"application_layer_protocol_negotiation" pubblicizza solo protocolli non supportati dal server. Vedi Estensione della negoziazione del protocollo a livello di applicazione TLS. L'errore genera una connessione TLS chiusa. | 0 |
no_certificate
|
Nessun certificato trovato. L'errore genera una connessione TLS chiusa. | 0 |
bad_certificate
|
Un certificato non è valido o contiene firme che non è stato possibile verificare. L'errore genera una connessione TLS chiusa. | 0 |
unsupported_certificate
|
Il tipo di certificato non è supportato. L'errore genera una connessione TLS chiusa. | 0 |
certificate_revoked
|
Un certificato è stato revocato dal firmatario. L'errore genera una connessione TLS chiusa. | 0 |
certificate_expired
|
Un certificato è scaduto o non è valido. L'errore genera una connessione TLS chiusa. | 0 |
certificate_unknown
|
Si sono verificati alcuni problemi non specificati durante l'elaborazione del certificato, pertanto il certificato non è accettabile. L'errore genera una connessione TLS chiusa. | 0 |
unknown_ca
|
È stata ricevuta una catena di certificati o una catena parziale valida, ma il certificato non è stato accettato perché non è stato possibile individuare il certificato CA o abbinarlo a un anchor trust noto. L'errore genera una connessione TLS chiusa. | 0 |
unexpected_message
|
È stato ricevuto un messaggio inappropriato, ad esempio un messaggio di handshake errato o dati dell'applicazione prematuri. L'errore genera una connessione TLS chiusa. | 0 |
bad_record_mac
|
Viene ricevuto un record che non può essere deprotetto. L'errore genera una connessione TLS chiusa. | 0 |
record_overflow
|
È stato ricevuto un record TLSCiphertext che ha una lunghezza superiore a 214+256 byte oppure che è stato decriptato in un record TLSPlaintext con più di 214 byte (o qualche altro limite negoziato). L'errore genera una connessione TLS chiusa.
|
0 |
handshake_failure
|
Impossibile negoziare un insieme accettabile di parametri di sicurezza in base alle opzioni disponibili. L'errore genera una connessione TLS chiusa. | 0 |
illegal_parameter
|
Un campo nell'handshake era errato o non coerente con gli altri campi. L'errore genera una connessione TLS chiusa. | 0 |
access_denied
|
È stato ricevuto un certificato o una PSK validi, ma quando è stato applicato il controllo dell'accesso dell'accesso, il client non ha proceduto alla negoziazione. L'errore genera una connessione TLS chiusa. | 0 |
decode_error
|
Non è stato possibile decodificare un messaggio perché alcuni campi non rientrano nell'intervallo specificato o la lunghezza del messaggio non era corretta. L'errore genera una connessione TLS chiusa. | 0 |
decrypt_error
|
Un'operazione crittografica di handshake (non livello record) non è riuscita, inclusa l'impossibilità di verificare correttamente una firma o di convalidare un messaggio completato o un binder PSK. L'errore genera una connessione TLS chiusa. | 0 |
insufficient_security
|
Una negoziazione non è riuscita in particolare perché il server richiede parametri più sicuri di quelli supportati dal client. L'errore genera una connessione TLS chiusa. | 0 |
inappropriate_fallback
|
Inviato da un server in risposta a un tentativo di nuovo tentativo di connessione non valido da un client. L'errore genera una connessione TLS chiusa. | 0 |
user_cancelled
|
L'utente annulla l'handshake per qualche motivo non correlato a un errore di protocollo. L'errore genera una connessione TLS chiusa. | 0 |
missing_extension
|
Inviato da endpoint che ricevono un messaggio di handshake non contenente un'estensione che è obbligatoria da inviare per la versione TLS offerta o altri parametri negoziati. L'errore genera una connessione TLS chiusa. | 0 |
unsupported_extension
|
Inviato da endpoint che ricevono messaggi di handshake contenenti un'estensione di cui è nota il divieto di inclusione nel messaggio di handshake specificato, o che includono estensioni in ServerHello o Certificate che non sono state offerte per la prima volta nei contenuti ClientHello o CertificateRequest corrispondenti.
L'errore genera una connessione TLS chiusa.
|
0 |
unrecognized_name
|
Inviata dai server quando non esiste alcun server che possa essere identificato dal nome fornito dal client tramite l'estensione "server_name". Vedi Definizioni delle estensioni TLS. | 0 |
bad_certificate_status_response
|
Inviata dai client quando una risposta OCSP non valida o inaccettabile viene fornita dal server tramite l'estensione "status_request". Vedi Definizioni delle estensioni TLS. L'errore genera una connessione TLS chiusa. | 0 |
load_balancer_configured_resource_limits_reached
|
Il bilanciatore del carico ha raggiunto i limiti delle risorse configurati, ad esempio il numero massimo di connessioni. | 400, 500, 503 |
Voci del log delle connessioni TLS non riuscite
Quando la connessione TLS tra il client e il bilanciatore del carico non va a buon fine prima che venga selezionato qualsiasi backend, le voci di log registrano gli errori. Puoi configurare i servizi di backend con frequenze di campionamento dei log diverse. Quando una connessione TLS non va a buon fine, la frequenza di campionamento del log delle connessioni TLS non riuscite è la frequenza di campionamento più elevata per qualsiasi servizio di backend. Ad esempio, se hai configurato due servizi di backend con frequenza di campionamento di registrazione su 0.3
e 0.5
, la frequenza di campionamento del log di connessione TLS non riuscita è 0.5
.
Puoi identificare le connessioni TLS non riuscite controllando questi dettagli voce di log:
- Il tipo di errore proxyStatus è
tls_alert_received
,tls_certificate_error
,tls_protocol_error
oconnection_terminated
. - Nessuna informazione di backend.
Il seguente esempio mostra una voce di log TLS non riuscita con il campo proxyStatus error
:
json_payload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" proxyStatus: "error="tls_alert_received"; details="server_to_client: handshake_failure"" log_name: "projects/529254013417/logs/mockservice.googleapis.com%20name" } http_request { latency { nanos: 12412000 } protocol: "HTTP/1.0" remote_ip: "127.0.0.2" } resource { type: "mock_internal_http_lb_rule" labels { backend_name: "" backend_scope: "" backend_scope_type: "UNKNOWN" backend_target_name: "" backend_target_type: "UNKNOWN" backend_type: "UNKNOWN" forwarding_rule_name: "l7-ilb-https-forwarding-rule-dev" matched_url_path_rule: "UNKNOWN" network_name: "lb-network" region: "REGION" target_proxy_name: "l7-ilb-https-proxy-dev" url_map_name: "" } } timestamp: "2023-08-15T16:49:30.850785Z"
Etichette risorse
La seguente tabella elenca le etichette delle risorse per resource.type="internal_http_lb_rule"
.
Campo | Tipo | Description |
---|---|---|
network_name |
string | Il nome della rete VPC del bilanciatore del carico. |
project_id | string | L'identificatore del progetto Google Cloud associato a questa risorsa. |
region |
string | La regione in cui è definito il bilanciatore del carico. |
url_map_name | string | Il nome dell'oggetto mappa URL configurato per selezionare un servizio di backend. |
forwarding_rule_name |
string | Il nome dell'oggetto della regola di forwarding. |
target_proxy_name | string | Il nome dell'oggetto proxy di destinazione a cui fa riferimento la regola di forwarding. |
matched_url_path_rule |
string |
La regola del percorso della mappa URL o la regola di route configurata come parte della chiave della mappa URL. Può essere UNMATCHED o UNKNOWN come riserva.
|
backend_target_name |
string | Il nome del backend selezionato per gestire la richiesta, in base alla regola del percorso della mappa URL o alla regola di route corrispondente alla richiesta. |
backend_target_type | string | Il tipo di destinazione del backend (BACKEND_SERVICE / UNKNOWN ). |
backend_name |
string | Il nome del gruppo di istanza di backend o del NEG. |
backend_type |
string | Il tipo di backend, un gruppo di istanze o un NEG, oppure sconosciuto. Cloud Logging registra le richieste quando |
backend_scope |
string |
L'ambito del backend, che può essere un nome di zona o una regione. Potrebbe essere UNKNOWN ogni volta che backend_name è sconosciuto.
|
backend_scope_type |
string |
L'ambito del backend (REGION /ZONE ). Potrebbe essere UNKNOWN ogni volta che backend_name è sconosciuto.
|
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.
Console
Nella console Google Cloud, vai alla pagina Esplora log.
Fai clic sul pulsante di attivazione/disattivazione Mostra query per attivare l'Editor query.
Incolla quanto segue nel campo Query. Sostituisci
FORWARDING_RULE_NAME
con il nome della tua 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.
Monitoraggio
I bilanciatori del carico delle applicazioni interni esportano i dati di monitoraggio in Monitoring.
Le metriche di Monitoring possono essere utilizzate per i seguenti scopi:
- Valutazione della configurazione, dell'utilizzo e delle prestazioni di un bilanciatore del carico
- Risoluzione dei problemi
- Migliorare l'utilizzo delle risorse e l'esperienza utente
Oltre alle dashboard predefinite in Monitoring, puoi creare dashboard personalizzate, configurare avvisi ed eseguire query sulle metriche tramite l'API Monitoring.
Visualizzazione delle metriche di Cloud Monitoring
Console
Per visualizzare le metriche per una risorsa monitorata utilizzando Metrics Explorer, procedi come segue:
-
Nella console Google Cloud, vai alla pagina Metrics Explorer leaderboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.
- Nell'elemento Metrica, espandi il menu Seleziona una metrica, inserisci
Internal Application Load Balancer Rule
nella barra dei filtri, poi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:- Nel menu Risorse attive, seleziona Regola del bilanciatore del carico delle applicazioni interno.
- Per selezionare una metrica, utilizza i menu Categorie di metriche attive e Metriche attive.
- Fai clic su Applica.
Per rimuovere le serie temporali dal display, utilizza l'elemento Filter.
Per combinare le serie temporali, utilizza i menu dell'elemento Aggregazione. Ad esempio, per visualizzare l'utilizzo della CPU per le VM, in base alla loro zona, imposta il primo menu su Media e il secondo su zone.
Tutte le serie temporali vengono visualizzate quando il primo menu dell'elemento Aggregation è impostato su Unaggregated. Le impostazioni predefinite per l'elemento Aggregazione sono determinate dal tipo di metrica selezionato.
- Per la quota e altre metriche che segnalano un campione al giorno:
- Nel riquadro Display, imposta il Tipo di widget su Grafico a barre in pila.
- Imposta il periodo di tempo su almeno una settimana.
Definizione dei criteri di avviso
Console
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 Avvisi di notifications:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.
- Se non hai creato i canali di notifica e vuoi ricevere una notifica, fai clic su Modifica canali di notifica e aggiungi i tuoi canali di notifica. Torna alla pagina Avvisi dopo aver aggiunto i tuoi canali.
- Nella pagina Avvisi, seleziona Crea criterio.
- Per selezionare la metrica, espandi il menu Seleziona una metrica e procedi nel seguente modo:
- Per limitare il menu alle voci pertinenti, inserisci
Internal Application Load Balancer Rule
nella barra dei filtri. Se dopo aver filtrato il menu non vengono visualizzati risultati, disattiva l'opzione Mostra solo risorse e metriche attive. - In Tipo di risorsa, seleziona Regola del bilanciatore del carico delle applicazioni interno.
- Seleziona una Categoria di metrica e una Metrica, poi seleziona Applica.
- Per limitare il menu alle voci pertinenti, inserisci
- Tocca Avanti.
- Le impostazioni nella pagina Configura trigger di avviso determinano quando viene attivato l'avviso. Seleziona un tipo di condizione e, se necessario, specifica una soglia. Per maggiori informazioni, consulta Creare criteri di avviso per soglia di metriche.
- Tocca 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 dell'incidente. Questo campo determina quando Monitoring chiude gli incidenti in assenza di dati delle metriche.
- (Facoltativo) Fai clic su Documentazione, quindi aggiungi 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 Monitoring
Console
Puoi creare dashboard di Monitoring personalizzate utilizzando le metriche del bilanciatore del carico delle applicazioni interno:
Nella console Google Cloud, vai alla pagina Monitoring.
Seleziona Dashboard > Crea dashboard.
Fai clic su Aggiungi grafico.
Assegna un titolo al grafico.
Seleziona metriche e filtri. Per le metriche, il tipo di risorsa è Bilanciatore del carico HTTP/S interno.
Fai clic su Salva.
Frequenza e fidelizzazione dei report sulle metriche
Le metriche per i bilanciatori del carico vengono esportate in Monitoring in batch con granularità di un minuto. I dati di monitoraggio vengono conservati per sei (6) settimane. La dashboard fornisce analisi dei dati a intervalli predefiniti di 1 ora (un'ora), 6 ore (sei ore), 1 giorno (un giorno), 1 settima (una settimana) e 6 sett (sei settimane). Puoi richiedere manualmente l'analisi in qualsiasi intervallo da 6 W a 1 minuto.
Metriche di monitoraggio per bilanciatori del carico delle applicazioni interni
Le seguenti metriche per gli Application Load Balancer interni vengono segnalate in Monitoring:
Metrica | FQDN | Descrizione |
---|---|---|
Conteggio delle richieste | loadbalancing.googleapis.com/https/internal/request_count |
Il numero di richieste gestite dall'Application Load Balancer interno. |
Conteggio byte richiesta | loadbalancing.googleapis.com/https/internal/request_bytes |
Il numero di byte inviati come richieste dai client al bilanciatore del carico delle applicazioni interno. |
Conteggio byte risposta | loadbalancing.googleapis.com/https/internal/response_bytes |
Il numero di byte inviati come risposte dal bilanciatore del carico HTTP(S) interno al client. |
Latenze totali | loadbalancing.googleapis.com/https/internal/total_latencies |
Una distribuzione della latenza in millisecondi. La latenza viene misurata dal momento in cui il proxy riceve il primo byte della richiesta al momento in cui il proxy invia l'ultimo byte della risposta. |
Latenze di backend | loadbalancing.googleapis.com/https/internal/backend_latencies |
Una distribuzione della latenza in millisecondi. La latenza viene misurata dal momento in cui il proxy invia il primo byte della richiesta al backend fino al momento in cui il proxy riceve l'ultimo byte della risposta dal backend. |
Filtraggio delle dimensioni per le metriche dell'Application Load Balancer interno
Le metriche vengono aggregate per ogni bilanciatore del carico delle applicazioni interno. Puoi filtrare le metriche aggregate in base alle seguenti dimensioni.
Proprietà | Descrizione |
---|---|
BACKEND_SCOPE | La zona o la regione Google Cloud del gruppo di backend che ha pubblicato la richiesta del client o una stringa speciale per i casi in cui il gruppo di backend non è stato assegnato.
Esempi:
us-central1-a , europe-west1-b ,
asia-east1 , UNKNOWN .
|
PROXY_REGION | Regione del bilanciatore del carico delle applicazioni interno, del client e del backend. Esempi:
us-central1 , europe-west1 o
asia-east1 .
|
BACKEND | Il nome del gruppo di istanza di backend o del NEG che ha pubblicato la richiesta del client. |
BACKEND_TARGET | Il nome del servizio di backend che ha pubblicato la richiesta del client. |
MATCHED_URL_RULE | La regola del percorso della mappa URL o la regola di route corrispondente al prefisso della richiesta HTTP(S) client (fino a 50 caratteri). |
La metrica Response code class fraction
è supportata per l'intero bilanciatore del carico. Non sono supportate ulteriori granularità.
Passaggi successivi
- Leggi le informazioni concettuali sugli Application Load Balancer interni.
- Crea un bilanciatore del carico delle applicazioni interno.
- Consulta Bilanciamento del carico interno e nomi DNS per le opzioni dei nomi DNS disponibili che possono essere utilizzate dal bilanciatore del carico.