Questo documento fornisce le informazioni necessarie per comprendere le metriche di monitoraggio e logging per i bilanciatori del carico delle applicazioni interni. Le metriche di monitoraggio e logging sia per i bilanciatori del carico delle applicazioni interni regionali sia per quelli 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. Potresti dover attivare il logging per più servizi di backend, a seconda della configurazione.
Campionamento e raccolta dei log
Google Cloud campiona i pacchetti che escono ed entrano nel backend del bilanciatore del carico di macchine virtuali (VM). Questi pacchetti campionati vengono elaborati per generare i log.
Non tutti i pacchetti vengono campionati. Google Cloud esegue il campionamento di un sottoinsieme variabile di pacchetti in base alla quantità di traffico sull'host fisico. La frequenza di campionamento più bassa possibile è 1 su 1024 pacchetti. La frequenza di campionamento è controllata dinamicamente da Google Cloud. Non puoi modificare il campionamento di conversione.
Il campionamento dei pacchetti interagisce con le regole 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 cinque 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 del flusso emesse come voci di log in base logConfig.sampleRate . Quando
logConfig.sampleRate
è1.0
(100%), significa che tutte le e pacchetti campionati.Scrivi nel logging: le voci di log vengono scritte in Cloud Logging.
Campi facoltativi
I record di log contengono campi obbligatori e facoltativi. La 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 log sono inclusi nei log di flusso. Quando vengono aggiunti nuovi campi facoltativi al formato del record, i log dei flussi 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 da includere, ad esempio
tls.protocol,tls.cipher
.
Per istruzioni su come personalizzare i campi facoltativi, consulta: Abilitare il logging su un servizio di backend esistente.
Attivazione del logging su un servizio di backend esistente
Per i bilanciatori del carico delle applicazioni 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 servizio di backend.Fai clic su Configurazioni avanzate (affinità sessione, timeout per svuotamento connessioni).
Fai clic su Attiva 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 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.--logging-sample-rate
ti consente di specificare un valore compreso tra0.0
e1.0
, dove0.0
significa che non vengono registrate richieste e1.0
significa che il 100% di vengono registrate nel log. Ha significato solo con il parametro--enable-logging
. L'attivazione del logging, ma l'impostazione della frequenza di campionamento su0.0
, equivale alla disattivazione del logging. Il valore predefinito è1.0
.--logging-optional
consente di specificare i campi facoltativi da includere nei log:INCLUDE_ALL_OPTIONAL
per includere tutti i campi facoltativi.EXCLUDE_ALL_OPTIONAL
(predefinito) per escludere tutti i campi facoltativi.CUSTOM
per includere un elenco personalizzato dei campi facoltativi che hai specificare inOPTIONAL_FIELDS
.
--logging-optional-fields
ti consente di specificare un elenco separato da virgole di campi facoltativi 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 servizio di backend.Fai clic su Configurazioni avanzate (affinità sessione, timeout per svuotamento connessioni).
Fai clic su Attiva 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 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.--logging-sample-rate
ti consente di specificare un valore compreso tra0.0
e1.0
, dove0.0
significa che non vengono registrate richieste e1.0
significa che il 100% di vengono registrate nel log. Ha significato solo con il parametro--enable-logging
. L'attivazione del logging, ma l'impostazione della frequenza di campionamento su0.0
, equivale alla disattivazione del logging. Il valore predefinito è1.0
.--logging-optional
consente di specificare i campi facoltativi da includere nei log:INCLUDE_ALL_OPTIONAL
per includere tutti i campi facoltativi.EXCLUDE_ALL_OPTIONAL
(predefinito) per escludere tutti i campi facoltativi.CUSTOM
per includere un elenco personalizzato dei campi facoltativi che hai specificare inOPTIONAL_FIELDS
.
--logging-optional-fields
ti consente di specificare un elenco separato da virgole di campi facoltativi da includere nei log.Ad esempio,
tls.protocol,tls.cipher
può essere impostato solo seLOGGING_OPTIONAL_MODE
è impostato suCUSTOM
.
Dopo aver attivato il logging nel 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, nel primo menu a discesa seleziona Regola del bilanciatore del carico delle applicazioni interno.
- Per visualizzare i log di una sola rete, seleziona Regola del bilanciatore del carico delle applicazioni interno, quindi seleziona il nome di un in ogni rete.
- Per visualizzare i log di una sola regione della rete, seleziona
Regola bilanciatore del carico delle applicazioni interno >
NETWORK
>REGION
.
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 è obbligatoria per i campi di log. I caratteri che non sono caratteri 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 si basano sulla risorsa "Regola bilanciatore del carico delle applicazioni interne", disponibile nelle dashboard di Cloud Monitoring:
Che cosa viene registrato
Le voci di log del bilanciatore del carico delle applicazioni interno 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, e campi facoltativi che aggiungono ulteriori informazioni sul traffico HTTP(S). Possono essere omessi per risparmiare sui costi di archiviazione. Le voci dei log contengono i seguenti tipi di informazioni:
- Informazioni generali mostrate nella maggior parte dei log di Google Cloud, come gravità, ID progetto, numero di progetto e timestamp, come descritto in LogEntry.
- Campi log HttpRequest.
Alcuni campi di log sono in un formato multicampo, con più di un dato
in un determinato campo. Ad esempio, il campo tls
è del tipo TlsDetails
, che contiene il protocollo TLS e la crittografia TLS in un unico campo.
Questi campi multicampo sono descritti nella seguente tabella del formato dei record.
Campo | Tipo | Tipo di campo: obbligatorio o facoltativo | Descrizione |
---|---|---|---|
logName
|
string | Obbligatorio |
Il nome della risorsa del log a cui appartiene questa
voce di log. Nella modulo "projects/PROJECT_ID/logs/requests" .
|
timestamp
|
string | Obbligatorio | L'ora in cui è iniziata la richiesta. |
severity
|
LogSeverity formato | Obbligatorio |
La gravità della voce di log. Il valore predefinito è
LogSeverity.DEFAULT .
|
httpRequest
|
HttpRequest oggetto | Obbligatorio | Un proto HttpRequest che descrive la richiesta HTTP(S) registrata. |
trace
|
string | Obbligatorio |
Il nome della risorsa della traccia associata alla voce di log, se presente. Se contiene un nome risorsa relativo, si presume che il nome
sarà 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
Intervalli di Trace, questa stringa ha lo stesso formato dell'API Trace v2
utilizza: una codifica esadecimale a 16 caratteri per un array da 8 byte,
come 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
i bilanciatori del carico delle applicazioni interni hanno un tipo di risorsa
|
jsonPayload | object (formato Struct) | Obbligatorio | Il payload della voce di log espresso come oggetto JSON. Il file 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 se il codice di errore non è Il campo
|
|
string | Obbligatorio | Il campo backendTargetProjectNumber contiene il progetto
numero 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 del
Esperimento Cloud FIT. |
|
string | Obbligatorio | Il campo cloudFitFault contiene il nome dell'errore
iniettato da un esperimento sugli errori Cloud FIT in questo percorso di richiesta. |
|
ServiceExtensionInfo | Obbligatorio | Il campo serviceExtensionInfo memorizza informazioni sugli stream gRPC dal bilanciatore del carico alle Estensioni di servizio. Per ulteriori informazioni, consulta cosa viene registrato per le estensioni callout. |
|
TlsDetails | Facoltativo | Il campo tls contiene
TlsDetails che specifica i metadati TLS per
la connessione tra il client e il bilanciatore del carico delle applicazioni 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 il bilanciatore del carico delle applicazioni interno. Questo
è disponibile solo se il bilanciatore del carico utilizza il frontend
TLS reciprocamente (mTLS).
|
Formato campo TlsDetails
Campo | Formato del campo | Tipo di campo: obbligatorio o facoltativo | Descrizione |
---|---|---|---|
protocollo | string | Facoltativo | protocollo TLS che i client utilizzano per stabilire una connessione
con il bilanciatore del carico di rete
passthrough esterno regionale. I valori possibili sono TLS 1.0, 1.1, 1.2,
1.3 o QUIC .
Questo valore viene impostato su NULL se il client non utilizza la crittografia TLS/SSL.
|
cifra | string | Facoltativo | Algoritmo di crittografia TLS utilizzato dai client per stabilire una connessione con il bilanciatore del carico. Questo valore è impostato su NULL se il client è
non utilizza HTTP(S) o il client non utilizza la crittografia TLS/SSL.
|
Formato del campo MtlsDetails
Campo | Formato del campo | 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 informazioni sulle stringhe di errore, consulta Modalità di convalida del client mTLS. |
clientCertSha256Fingerprint | string | Facoltativo | Impronta 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 (RFC 3339)
data) prima del quale il certificato client non è valido.
Ad esempio, |
clientCertValidEndTime | string | Facoltativo | Timestamp (RFC 3339)
data di inizio) dopo il quale il certificato client non è valido.
Ad esempio, |
clientCertSpiffeId | string | Facoltativo | La ID SPIFFE dal campo del nome alternativo del soggetto (SAN). 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 con codifica Base64 separato da virgole 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 codificato in Base64 delle estensioni SAN di tipo DNSName separate da virgole. 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 Oggetto completo del certificato con codifica Base64. Se il campo |
clientCertLeaf | string | Facoltativo | Il certificato client finale per una connessione mTLS stabilita in cui il certificato ha superato la convalida. La codifica del certificato è conforme con RFC 9440: il certificato binario DER è codificato utilizzando il formato Base64 (senza interruzioni di riga, spazi o altri caratteri al di fuori dell'alfabeto Base64) e delimitati con due punti ai lati. Se |
clientCertChain | string | Facoltativo | L'elenco di certificati delimitati da virgole, nell'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 finale. La codifica del certificato è conforme a RFC 9440. Se la dimensione combinata di |
Campo di errore proxyStatus
Il campo proxyStatus
contiene una stringa che specifica il motivo del caricamento
bilanciatore ha restituito un errore. La proxyStatus
è composta da due parti
proxyStatus error
e proxyStatus details
.
Questa sezione descrive le stringhe supportate in 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 comuni di accompagnamento |
---|---|---|
destination_unavailable
|
Il bilanciatore del carico considera il backend non disponibile. Ad esempio, tentativi recenti di comunicazione con il backend non sono andati a buon fine o un controllo di integrità potrebbe aver avuto esito negativo. | 500, 503 |
connection_timeout
|
Il tentativo del bilanciatore del carico di aprire una connessione al backend ha timeout. | 504 |
connection_terminated
|
La connessione del bilanciatore del carico al backend è terminata prima che venga ricevuta una risposta completa. Questo valore
|
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 al backend e questo limite è stato superato. Questo valore
|
502, 503 |
destination_not_found
|
Il bilanciatore del carico non è in grado di 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 di backend. | 502, 503 |
proxy_configuration_error
|
Il bilanciatore del carico ha rilevato 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 a seconda del tipo di problema. Ad esempio,
Il codice di risposta 410 indica che il backend non è disponibile a causa di
inadempienza dei pagamenti.
|
http_response_timeout
|
Il bilanciatore del carico ha raggiunto un timeout del servizio di backend configurato limite massimo in attesa della risposta completa dal backend. | 504, 408 |
http_request_error
|
Il bilanciatore del carico ha rilevato 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 rilevato un errore del 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 rilevato un avviso TLS fatale durante l'handshake TLS. | 0 |
campo 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
è composto da due parti: proxyStatus error
e proxyStatus details
.
Il campo proxyStatus details
è facoltativo e viene visualizzato solo se sono disponibili informazioni aggiuntive.
Questa sezione descrive le stringhe supportate in proxyStatus details
.
I 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 di proxyStatus | Descrizione | Codici di risposta comuni associati |
---|---|---|
client_disconnected_before_any_response
|
La connessione al client si è interrotta prima dell'invio del bilanciatore del carico qualsiasi risposta. | 0 |
backend_connection_closed
|
Il backend ha chiuso inaspettatamente la connessione al bilanciatore del carico. Questo può accadere se il bilanciatore del carico invia traffico a un'altra entità. come un'applicazione di terze parti con un timeout TCP più breve rispetto al timeout 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 proxyata correttamente al backend e la risposta è stata restituita dal backend. | Il codice di risposta HTTP viene impostato dal software in esecuzione sul backend. |
client_timed_out
|
La connessione tra il bilanciatore del carico e il client ha superato il timeout di inattività. Per ulteriori informazioni sul bilanciatore del carico delle applicazioni esterno regionale, consulta Timeout keepalive HTTP del client. Per saperne di più sul bilanciatore del carico delle applicazioni interno, consulta Timeout keepalive HTTP del 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 del 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. Solo HTTP 0.9, 1.0, 1.1 e 2.0 sono supportati. | 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 contengono almeno non consentito da una specifica HTTP applicabile. Ad esempio, i nomi dei campi di intestazione che includono virgolette doppie
( Per ulteriori informazioni, vedi: |
400, 404 |
ip_detection_failed
|
Impossibile rilevare l'indirizzo IP originale. | Qualsiasi codice di risposta possibile a seconda della natura dell'errore. La 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 per completare la richiesta entro cinque secondi. | 408, 504 |
denied_by_security_policy
|
Il bilanciatore del carico ha rifiutato questa 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 throttling di Google Cloud Armor. | 429 |
client_cert_chain_invalid_eku
|
Il certificato client o l'emittente non dispone di utilizzo esteso della chiave che include clientAuth. 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 10 vincoli relativi ai nomi. Per ulteriori informazioni, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_invalid_rsa_key_size
|
Un certificato foglia client o certificato intermedio aveva una dimensione della chiave RSA non valida. Per saperne di più, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_not_provided
|
Il client non ha fornito il certificato richiesto durante l'handshake. Per saperne di più, consulta Errori registrati per connessioni chiuse. | 0 |
client_cert_pki_too_large
|
La PKI da utilizzare per la convalida ha più di tre certificati intermedi che condividono gli stessi Subject e Subject Public Key Info .
Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse.
|
0 |
client_cert_unsupported_elliptic_curve_key
|
Un certificato client o intermedio utilizza un'ellittica non supportata della curva. Per saperne di più, 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 saperne di più, consulta Errori registrati per 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 TLS reciproco senza configurare un TrustConfig .
Per ulteriori informazioni, consulta Errori registrati per le connessioni chiuse.
|
0 |
client_cert_validation_search_limit_exceeded
|
Viene raggiunto il limite di profondità o iterazione durante il tentativo di convalidare della catena di certificati. Per saperne di più, consulta Errori registrati per 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 comporta una connessione TLS chiusa. | 0 |
unknown_psk_identity
|
I server inviano questo errore quando è richiesta la creazione della chiave PSK. ma il client non fornisce un'identità PSK accettabile. Risultati dell'errore in una connessione TLS chiusa. | 0 |
no_application_protocol
|
Inviata dai server quando un'estensione "application_layer_protocol_negotiation" del client pubblicizza solo i protocolli non supportati dal server. Vedi Estensione per la negoziazione del protocollo TLS a livello di applicazione. L'errore comporta una connessione TLS chiusa. | 0 |
no_certificate
|
Nessun certificato trovato. L'errore comporta una connessione TLS chiusa. | 0 |
bad_certificate
|
Un certificato non è valido o contiene firme che non è stato possibile verificati. L'errore comporta una connessione TLS chiusa. | 0 |
unsupported_certificate
|
Il certificato è di un tipo non supportato. L'errore comporta una connessione TLS chiusa. | 0 |
certificate_revoked
|
Un certificato è stato revocato dal firmatario. L'errore comporta una connessione TLS chiusa. | 0 |
certificate_expired
|
Un certificato è scaduto o non è valido. L'errore causa la chiusura Connessione TLS. | 0 |
certificate_unknown
|
Si sono verificati alcuni problemi non specificati durante l'elaborazione del certificato, che lo rendono inaccettabile. L'errore comporta 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 associarlo a un'ancora di attendibilità nota. L'errore comporta 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 causa una connessione TLS chiusa. | 0 |
bad_record_mac
|
È stato ricevuto un record che non può essere rimosso. L'errore genera connessione TLS chiusa. | 0 |
record_overflow
|
È stato ricevuto un record TLSCiphertext di durata superiore
più di 214+256 byte oppure un record è stato decriptato
Record TLSPlaintext con più di 214 byte
(o qualche altro limite negoziato). L'errore provoca la chiusura di un protocollo TLS
connessione.
|
0 |
handshake_failure
|
Impossibile negoziare un set accettabile di parametri di sicurezza, dato il le opzioni disponibili. L'errore causa una connessione TLS chiusa. | 0 |
illegal_parameter
|
Un campo nell'handshake non era corretto o non era coerente con gli altri campi. L'errore causa una connessione TLS chiusa. | 0 |
access_denied
|
È stato ricevuto un certificato valido o una PSK, ma quando il controllo dell'accesso è stato applicata, il cliente non ha proceduto alla negoziazione. L'errore comporta una connessione TLS chiusa. | 0 |
decode_error
|
Non è stato possibile decodificare un messaggio perché alcuni campi non rientravano nell'intervallo specificato o la lunghezza del messaggio non era corretta. Risultati dell'errore in una connessione TLS chiusa. | 0 |
decrypt_error
|
Un'operazione di crittografia di handshake (non a livello di record) non è riuscita, ad esempio non è stato possibile verificare correttamente una firma o convalidare un messaggio completato o un binder PSK. L'errore comporta 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. Risultati dell'errore in una connessione TLS chiusa. | 0 |
inappropriate_fallback
|
Inviata da un server in risposta a un nuovo tentativo di connessione non valido da un cliente. L'errore comporta una connessione TLS chiusa. | 0 |
user_cancelled
|
L'utente annulla l'handshake per qualche motivo non correlato a un errore di protocollo. L'errore comporta una connessione TLS chiusa. | 0 |
missing_extension
|
Inviati da endpoint che ricevono un messaggio di handshake che non contiene un'estensione obbligatoria da inviare per la versione TLS offerta o altri parametri negoziati. L'errore causa una connessione TLS chiusa. | 0 |
unsupported_extension
|
Inviati da endpoint che ricevono un messaggio di handshake contenente un'estensione
nota per essere vietata per l'inclusione nel messaggio di handshake in questione o
che includono eventuali estensioni in ServerHello o
Certificate che non sono state offerte per la prima volta in corrispondente
ClientHello o CertificateRequest .
L'errore comporta una connessione TLS chiusa.
|
0 |
unrecognized_name
|
Inviato dai server quando non esiste alcun server che possa essere identificato dal nome. forniti dal client tramite il parametro "server_name" . Consulta le definizioni delle estensioni TLS. | 0 |
bad_certificate_status_response
|
Inviata dai client quando il server fornisce una risposta OCSP non valida o non accettabile tramite l'estensione "status_request". Consulta le definizioni delle estensioni TLS. L'errore comporta una connessione TLS chiusa. | 0 |
load_balancer_configured_resource_limits_reached
|
Il bilanciatore del carico ha raggiunto i limiti di risorse configurati, ad esempio e il numero massimo di connessioni. | 400, 500, 503 |
Voci di log per la connessione TLS non riuscite
In caso di errore della connessione TLS tra il client e il bilanciatore del carico prima del giorno
se selezioni qualsiasi backend, le voci di log registrano gli errori. Puoi configurare
di backend con frequenze di campionamento dei log diverse. Quando una connessione TLS non va a buon fine,
la frequenza di campionamento dei log per le connessioni TLS non riuscite è la più alta
di servizio di backend. Ad esempio, se hai configurato due servizi di backend con
frequenza di campionamento del logging come 0.3
e 0.5
, esempio di log per la connessione TLS non riuscita
è 0.5
.
Puoi identificare le connessioni TLS non riuscite controllando le seguenti dettagli voce di log:
- Il tipo di errore proxyStatus è
tls_alert_received
,tls_certificate_error
,tls_protocol_error
, oconnection_terminated
. - Non sono presenti informazioni sul backend.
L'esempio seguente mostra una voce del log TLS non riuscita con il
proxyStatus error
campo:
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 tabella seguente elenca le etichette delle risorse per
resource.type="internal_http_lb_rule"
.
Campo | Tipo | Descrizione |
---|---|---|
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 regola di inoltro. |
target_proxy_name | string | Il nome del l'oggetto proxy di destinazione a cui fa riferimento la regola di forwarding. |
matched_url_path_rule |
string |
La regola del percorso o della route della mappa URL configurata come parte della chiave della mappa URL. Può essere UNMATCHED o UNKNOWN come opzioni di riserva.
|
backend_target_name |
string | Il nome del backend selezionato per gestire la richiesta, in base all'URL una regola percorso della mappa o una regola di route che corrisponde alla richiesta. |
backend_target_type | string | Il tipo di
target backend (BACKEND_SERVICE / UNKNOWN ). |
backend_name |
string | Il nome del gruppo di istanza di backend o 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, il nome di una zona o di una regione. Potrebbe essere
UNKNOWN ogni volta che backend_name è sconosciuto.
|
backend_scope_type |
string |
L'ambito del backend (REGION /ZONE ). Potrebbe essere UNKNOWN se backend_name è sconosciuto.
|
backend_target_cross_project_id |
Stringa |
L'ID progetto del servizio o del bucket di destinazione del backend. Questo campo è disponibile solo se la risorsa di destinazione di backend viene creata in un progetto diverso da quello in cui è stata creata la risorsa url_map .
|
Log delle richieste dei criteri di autorizzazione
L'oggetto authz_info
nel payload JSON delle voci di log del bilanciatore del carico contiene
informazioni sui criteri di autorizzazione. Puoi configurare le metriche basate su log per il traffico consentito o negato da questi criteri.
Campo | Tipo | Descrizione |
---|---|---|
authz_info.policies[] |
oggetto | L'elenco dei criteri che corrispondono alla richiesta. |
authz_info.policies[].name |
string | Il nome del criterio di autorizzazione che corrisponde alla richiesta. Il nome è vuoto per i seguenti motivi:
|
authz_info.policies[].result |
enum | Il risultato può essere ALLOWED o DENIED . |
authz_info.policies[].details |
string | I dettagli includono quanto segue:
|
authz_info.overall_result |
enum | Il risultato può essere ALLOWED o DENIED . |
Visualizzare i log per la convalida del certificato 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 abilitare l'editor query.
Incolla quanto segue nel campo 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
Fai clic su Esegui query.
Monitoraggio
I bilanciatori del carico delle applicazioni interni esportano i dati di monitoraggio in Monitoraggio.
Le metriche di monitoraggio possono essere utilizzate per i seguenti scopi:
- Valutazione della configurazione, dell'utilizzo e delle prestazioni di un bilanciatore del carico
- Risolvere i problemi
- Miglioramento dell'utilizzo delle risorse e dell'esperienza utente
Oltre alle dashboard predefinite in Monitoraggio, 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 con Esplora metriche, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina leaderboard Esplora metriche:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nell'elemento Metrica, espandi il menu Seleziona una metrica,
digita
Internal Application Load Balancer Rule
nella barra dei filtri e poi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:- Nel menu Risorse attive, seleziona Regola 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 il metodo Elemento Filtro:
Per combinare le serie temporali, utilizza i menu nella Elemento di aggregazione: Ad esempio, per visualizzare l'utilizzo della CPU per le VM, in base alla zona, imposta il primo menu su Media e il secondo menu su zona.
Tutte le serie temporali vengono visualizzate quando il primo menu dell'elemento Aggregazione è impostato su Nessuna aggregazione. Le impostazioni predefinite per l'elemento Aggregazione sono determinate dal tipo di metrica che hai selezionato.
- Per la quota e altre metriche che registrano un campione al giorno:
- Nel riquadro Visualizza, imposta 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 notifiche 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 notifiche, 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 poi segui questi passaggi:
- Per limitare il menu alle voci pertinenti, inserisci
Internal Application Load Balancer Rule
nella barra dei filtri. Se non vengono visualizzati risultati dopo aver filtrato il menu, disattiva l'opzione Mostra solo risorse e metriche attive. - Per Tipo di risorsa, seleziona Regola del bilanciatore del carico delle applicazioni interno.
- 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 di avviso determinano quando l'avviso viene attivato. Seleziona un tipo di condizione e, se necessario, specifica una soglia. Per maggiori informazioni le informazioni, vedi Crea criteri di avviso soglia delle metriche.
- Fai clic su Avanti.
- (Facoltativo) Per aggiungere notifiche al tuo criterio di avviso, fai clic su Canali di notifica. Nella finestra di dialogo, seleziona uno o più canali di notifica dal menu e fai clic su OK.
- (Facoltativo) Aggiorna la Durata chiusura automatica incidenti. Questo campo determina quando Il monitoraggio chiude gli incidenti in assenza di dati delle metriche.
- (Facoltativo) Fai clic su Documentazione, quindi aggiungi le eventuali informazioni da 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.
Definire le dashboard personalizzate di monitoraggio
Console
Puoi creare dashboard di Monitoring personalizzate 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 conservazione dei report sulle metriche
Le metriche per i bilanciatori del carico vengono esportate in Monitoring Batch con granularità di 1 minuto. I dati di monitoraggio vengono conservati per sei (6) settimane. Il pannello fornisce l'analisi dei dati a intervalli predefiniti di 1 ora (un'ora), 6 ore (6 ore), 1 giorno (1 giorno), 1 W (una settimana) e 6 ore (sei settimane). Puoi richiedere manualmente l'analisi in qualsiasi intervallo compreso tra 6 W e 1 minuto.
Monitoraggio delle metriche per i bilanciatori del carico delle applicazioni interni
Le seguenti metriche per i bilanciatori del carico delle applicazioni interni vengono registrate in Monitoring:
Metrica | FQDN | Descrizione |
---|---|---|
Conteggio delle richieste | loadbalancing.googleapis.com/https/internal/request_count |
Il numero di richieste gestite dal bilanciatore del carico delle applicazioni 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 dall'HTTP(S) interno bilanciatore del carico 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 del 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. |
Filtrare le dimensioni per le metriche del bilanciatore del carico delle applicazioni interno
Le metriche sono 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 Google Cloud
o regione del gruppo di backend che ha gestito la richiesta del client, oppure
una stringa speciale per i casi in cui non è stato assegnato il gruppo di backend.
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 NEG che ha fornito il client richiesta. |
BACKEND_TARGET | Il nome del servizio di backend che ha gestito la richiesta del client. |
REGOLA_URL_CORRISPONDENTE | La regola del percorso o della route della mappa URL che corrisponde al prefisso della richiesta HTTP(S) del client (fino a 50 caratteri). |
La metrica Response code class fraction
è supportata per l'intera
con il bilanciatore del carico di rete
passthrough esterno regionale. Non è supportata ulteriore granularità.
Passaggi successivi
- Leggi le informazioni concettuali sui bilanciatori del carico delle applicazioni interni.
- Crea un Application Load Balancer interno.
- Consulta Bilanciamento del carico interno e nomi DNS per informazioni sulle opzioni di nomi DNS disponibili che il bilanciatore del carico può utilizzare.