Logging e monitoraggio del bilanciatore del carico di rete proxy

Questa pagina mostra come configurare e utilizzare Cloud Logging e Cloud Monitoring per i bilanciatori del carico di rete proxy.

Monitoraggio delle risorse

La tabella seguente specifica i nomi delle risorse per i bilanciatori del carico.

Bilanciatore del carico di rete proxy esterno regionale

Bilanciatore del carico di rete proxy interno regionale

Bilanciatore del carico di rete proxy interno tra regioni

Bilanciatore del carico di rete proxy esterno globale

Bilanciatore del carico di rete proxy classico
Logging monitored-resource type "Regola del bilanciatore del carico di rete proxy"
l4_proxy_rule
"Regola del bilanciatore del carico di rete proxy esterno globale"
tcp_ssl_proxy_rule
Monitoraggio del tipo di risorsa monitorata "Regola del bilanciatore del carico di rete proxy"
l4_proxy_rule
"Regola del bilanciatore del carico di rete proxy esterno globale"
tcp_ssl_proxy_rule

Logging per i bilanciatori del carico di rete proxy

I log forniscono informazioni utili per la risoluzione dei problemi e il monitoraggio dei bilanciatori del carico. I log vengono aggregati per ogni connessione e ti forniscono informazioni su come ogni connessione viene instradata ai backend di gestione.

Non vengono addebitati costi aggiuntivi per l'utilizzo dei log. Tuttavia, in base alla modalità di importazione dei log, si applicano i prezzi standard per Cloud Logging, BigQuery o Pub/Sub. Inoltre, l'attivazione dei log non influisce sulle prestazioni del bilanciatore del carico.

Campionamento e raccolta dei log

Le connessioni che escono ed entrano nelle istanze di macchine virtuali (VM) di backend del bilanciatore del carico vengono campionate. Queste connessioni campionate vengono poi elaborate per generare i log. Controlli la frazione delle connessioni emesse come voci di log in base al parametro logConfig.sampleRate. Quando logConfig.sampleRate è 1.0 (100%), significa che i log vengono generati per tutte le connessioni e scritti in Cloud Logging.

Abilita il logging su un nuovo servizio di backend

gcloud

Utilizza il comando gcloud compute backend-services create.

Per i bilanciatori del carico di rete proxy esterni regionali e i bilanciatori del carico di rete proxy interni regionali:

    gcloud compute backend-services create BACKEND_SERVICE \
        --region=REGION \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE
    

Per i bilanciatori del carico di rete proxy esterno globali, i bilanciatori del carico di rete proxy classici o i bilanciatori del carico di rete proxy interno tra regioni:

    gcloud compute backend-services create BACKEND_SERVICE \
        --global \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE
    

Sostituisci quanto segue:

  • BACKEND_SERVICE: il nome del servizio di backend.
  • REGION: la regione del servizio di backend da creare.
  • SAMPLE_RATE: questo campo può essere specificato solo se la registrazione è abilitata per questo servizio di backend.

    Il valore del campo deve essere compreso tra 0.0 to 1.0, dove 0.0 indica che non vengono segnalati log e 1.0 indica che vengono registrate tutte le connessioni. L'attivazione del logging, ma l'impostazione della frequenza di campionamento su 0.0 equivale alla disattivazione del logging. Il valore predefinito è 1.0.

API

Effettua una richiesta POST al metodo regionBackendServices.insert:

Per i bilanciatori del carico di rete proxy interni regionali:

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "INTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Per i bilanciatori del carico di rete proxy esterni regionali:

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Per i bilanciatori del carico di rete proxy esterni globali:

Effettua una richiesta POST al metodo backendServices.insert:

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Per i bilanciatori del carico di rete proxy classici:

Effettua una richiesta POST al metodo backendServices.insert:

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Per i bilanciatori del carico di rete proxy interno tra regioni:

Effettua una richiesta POST al metodo backendServices.insert:

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "INTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Sostituisci quanto segue:

  • BACKEND_SERVICE: il nome del servizio di backend.
  • SAMPLE_RATE: questo campo può essere specificato solo se la registrazione è abilitata per questo servizio di backend.

    Il valore del campo deve essere compreso tra 0.0 to 1.0, dove 0.0 indica che non vengono segnalati log e 1.0 indica che vengono registrate tutte le connessioni. L'attivazione del logging, ma l'impostazione della frequenza di campionamento su 0.0 equivale alla disattivazione del logging. Il valore predefinito è 1.0.

Abilita il logging su un servizio di backend esistente

gcloud

Utilizza il comando gcloud compute backend-services update.

Per i bilanciatori del carico di rete proxy esterni regionali e i bilanciatori del carico di rete proxy interni regionali:

    gcloud compute backend-services update BACKEND_SERVICE \
        --region=REGION \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE
    

Per i bilanciatori del carico di rete proxy esterno globali, i bilanciatori del carico di rete proxy classici o i bilanciatori del carico di rete proxy interno tra regioni:

    gcloud compute backend-services update BACKEND_SERVICE \
        --global \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE
    

Sostituisci quanto segue:

  • BACKEND_SERVICE: il nome del servizio di backend.
  • REGION: la regione del servizio di backend da creare.
  • SAMPLE_RATE: questo campo può essere specificato solo se la registrazione è abilitata per questo servizio di backend.

    Il valore del campo deve essere compreso tra 0.0 to 1.0, dove 0.0 indica che non vengono segnalati log e 1.0 indica che vengono registrate tutte le connessioni. L'attivazione del logging, ma l'impostazione della frequenza di campionamento su 0.0 equivale alla disattivazione del logging. Il valore predefinito è 1.0.

API

Invia una richiesta PATCH al metodo regionBackendServices/patch:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
     

Per i bilanciatori del carico di rete proxy interni regionali:

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "INTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Per i bilanciatori del carico di rete proxy esterni regionali:

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Per i bilanciatori del carico di rete proxy esterni globali:

Invia una richiesta PATCH al metodo backendServices/patch:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Per i bilanciatori del carico di rete proxy classici:

Invia una richiesta PATCH al metodo backendServices/patch:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Per i bilanciatori del carico di rete proxy interno tra regioni:

Invia una richiesta PATCH al metodo backendServices/patch:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "INTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Sostituisci quanto segue:

  • PROJECT_ID: il nome del progetto.
  • BACKEND_SERVICE: il nome del servizio di backend.
  • SAMPLE_RATE: questo campo può essere specificato solo se la registrazione è abilitata per questo servizio di backend.

    Il valore del campo deve essere compreso tra 0.0 to 1.0, dove 0.0 indica che non vengono segnalati log e 1.0 indica che vengono registrate tutte le connessioni. L'attivazione del logging, ma l'impostazione della frequenza di campionamento su 0.0 equivale alla disattivazione del logging. Il valore predefinito è 1.0.

Disattiva il logging su un servizio di backend esistente

gcloud

Utilizza il comando gcloud compute backend-services update.

Per i bilanciatori del carico di rete proxy esterni regionali e i bilanciatori del carico di rete proxy interni regionali:

gcloud compute backend-services update BACKEND_SERVICE \
   --region=REGION \
   --no-enable-logging

Per i bilanciatori del carico di rete proxy esterno globale, i bilanciatori del carico di rete proxy classici o i bilanciatori del carico di rete proxy interno tra regioni:

gcloud compute backend-services update BACKEND_SERVICE \
   --global \
   --no-enable-logging

Sostituisci quanto segue:

  • BACKEND_SERVICE: il nome del servizio di backend.
  • REGION: la regione del servizio di backend.

API

Per i bilanciatori del carico di rete proxy esterni regionali e i bilanciatori del carico di rete proxy interni regionali:

Invia una richiesta PATCH al metodo regionBackendServices/patch:

 PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
  {
  "logConfig": {
    "enable": false
   }
  }
 

Per i bilanciatori del carico di rete proxy esterno globali, i bilanciatori del carico di rete proxy classici o i bilanciatori del carico di rete proxy interno tra regioni:

Invia una richiesta PATCH al metodo backendServices/patch:

 PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
  {
  "logConfig": {
    "enable": false
   }
  }
 

Sostituisci quanto segue:

  • PROJECT_ID: il nome del progetto.
  • REGION: la regione del servizio di backend.
  • BACKEND_SERVICE: il nome del servizio di backend.

Visualizza i log

Quando i log vengono importati in Cloud Logging e non esclusi tramite un sink del router di log, puoi leggerli utilizzando l'API Cloud Logging e Google Cloud CLI.

Per visualizzare tutti i log, completa i seguenti passaggi.

Console

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

    Vai a Esplora log

  2. Seleziona il tipo di risorsa Regola del bilanciatore del carico di rete proxy.

  3. Seleziona il nome log loadbalancing.googleapis.com/connections.

Query della 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 quanto segue nel campo della query.

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    
  4. Fai clic su Esegui query.

Sostituisci quanto segue:

  • LOG_RESOURCE_TYPE: il tipo di risorsa monitorata per la registrazione impostato su l4_proxy_rule o tcp_ssl_proxy_rule.
  • PROJECT_ID: il nome del progetto.

Visualizzare i log di un servizio di backend specifico

Per visualizzare i log di un servizio di backend specifico, completa i seguenti passaggi.

Query della 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 quanto segue nel campo della query.

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Fai clic su Esegui query.

Sostituisci quanto segue:

  • LOG_RESOURCE_TYPE: il tipo di risorsa monitorata per la registrazione impostato su l4_proxy_rule o tcp_ssl_proxy_rule.
  • PROJECT_ID: il nome del progetto.
  • BACKEND_SERVICE_NAME: il nome del servizio di backend.

Visualizza i log per un gruppo di istanza di backend

Per visualizzare i log di un gruppo di istanza di backend specifico, completa i seguenti passaggi.

Query della 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 quanto segue nel campo della query.

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. Fai clic su Esegui query.

Sostituisci quanto segue:

  • LOG_RESOURCE_TYPE: il tipo di risorsa monitorata per la registrazione impostato su l4_proxy_rule o tcp_ssl_proxy_rule.
  • PROJECT_ID: il nome del progetto.
  • BACKEND_GROUP_NAME: il nome del gruppo di istanze.

Che cosa viene registrato

Le voci di log contengono informazioni utili per monitorare ed eseguire il debug del traffico. I record di log contengono campi obbligatori, ovvero i campi predefiniti di ogni record di log.

Campo Formato del campo Tipo di campo: obbligatorio o facoltativo Descrizione
severity
timestamp
receiveTimestamp
insertID
logName
LogEntry Obbligatorio I campi generali come descritti in una voce di log.
resource MonitoredResource Obbligatorio

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

MonitoredResourceDescriptor descrive lo schema di un oggetto MonitoredResource utilizzando un nome di tipo e un insieme di etichette. Per saperne di più, consulta Etichette delle risorse.

jsonPayload object (formato Struct) Obbligatorio Il payload della voce di log espresso come oggetto JSON. L'oggetto JSON contiene i seguenti campi:
  • statusDetails
  • Voci di log dei criteri di sicurezza di Google Cloud Armor
  • Il campo proxyStatus contiene una stringa che specifica perché il bilanciatore del carico di rete proxy esterno globale, il bilanciatore del carico di rete proxy esterno regionale e il bilanciatore del carico di rete proxy interno hanno restituito il codice di errore. Questo campo non è supportato per i bilanciatori del carico di rete proxy classici.

    Il campo non viene registrato se il valore è una stringa vuota. Ciò può verificarsi se il proxy restituisce un codice di errore diverso da 0, 4XX o 5XX.

    Il campo proxyStatus è composto da due parti:

  • backendNetworkName: specifica la rete VPC del backend.

Campi log

I record di log contengono campi obbligatori, che sono i campi predefiniti di ogni record di log.

Alcuni campi di log contengono più di un dato in un determinato campo. Questi campi di log sono in formato multi-campo. Ad esempio, il campo connection è nel formato IpConnection, che contiene l'indirizzo IP e la porta di origine e di destinazione, oltre al protocollo, in un unico campo. Questi campi di log multicampo sono descritti nella tabella seguente relativa al formato dei record.

La tabella seguente elenca tutti i campi di log obbligatori per la risorsa l4_proxy_rule.

Campo Formato del campo Descrizione
connessione IpConnection La 5-tuple che descrive questa connessione.
startTime string Timestamp (nel formato di stringa per la data RFC 3339) in cui la connessione dal client è stata accettata dal bilanciatore del carico.
endTime string Timestamp (nel formato di stringa per la data RFC 3339) in cui il client o il backend ha terminato la connessione.
bytesSent int64 Numero di byte inviati dal server al client.
bytesReceived int64 Numero di byte ricevuti dal server dal client.

Formato campo IpConnection

Campo Tipo Descrizione
clientIp string Indirizzo IP client
clientPort int32 Porta client. Impostato solo per le connessioni TCP e UDP.
serverIp string Indirizzo IP del server (IP della regola di forwarding)
serverPort int32 Porta server. Impostato solo per le connessioni TCP e UDP.
protocollo int32 Numero di protocollo IANA

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 è composto 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 di rete proxy esterno globale
  • Bilanciatore del carico di rete proxy esterno regionale
  • Bilanciatore del carico di rete proxy interno tra regioni
  • Bilanciatore del carico di rete proxy interno regionale
proxyStatus error Descrizione Codici di risposta di accompagnamento comuni
destination_unavailable Il bilanciatore del carico considera il backend non disponibile. Ad esempio, i recenti tentativi di comunicazione con il backend non sono andati a buon fine oppure un controllo di integrità potrebbe aver restituito un errore. 500, 503
connection_timeout Il tentativo del bilanciatore del carico di aprire una connessione al backend è scaduto. 504
connection_terminated

La connessione del bilanciatore del carico al backend è terminata prima della ricezione di una risposta completa.

Questo proxyStatus error viene restituito in uno dei seguenti scenari:

  • La connessione del bilanciatore del carico al backend è terminata prima che venga ricevuta una risposta completa.
  • La connessione TLS non è riuscita durante l'handshake SSL e il client non ha stabilito una connessione con il bilanciatore del carico.

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 per limitare il numero di connessioni al backend e questo limite è stato superato.

Questo proxyStatus error viene restituito in uno dei seguenti scenari:

  • Se un backend è in modalità di manutenzione, il traffico non può essere indirizzato al backend.
  • Se la richiesta è limitata localmente.
  • Envoy gestisce le condizioni di errore, ad esempio l'esaurimento della memoria.
502, 503
destination_not_found Il bilanciatore del carico non riesce a 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 rilevato 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 Il bilanciatore del carico ha riscontrato un errore interno. L'errore può essere dovuto a un riavvio pianificato del proxy che gestisce le connessioni. 0, 500, 502
proxy_internal_response Il bilanciatore del carico ha generato la risposta senza tentare di connettersi al backend. Qualsiasi codice di stato a seconda del tipo di problema. Ad esempio, il codice di stato 410 indica che il backend non è disponibile a causa di mancato pagamento.
tls_protocol_error Il bilanciamento del carico ha rilevato un errore TLS durante l'handshake TLS. 0
tls_certificate_error Il bilanciamento del carico ha riscontrato un errore durante la verifica del certificato presentato dal server. 0
tls_alert_received Il bilanciatore del carico ha rilevato 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 è composto da due parti: proxyStatus error e proxyStatus details. Il campo proxyStatus details è facoltativo e viene visualizzato solo quando sono disponibili informazioni aggiuntive. Questa sezione descrive le stringhe supportate nel campo proxyStatus details.

Il campo proxyStatus details è applicabile ai seguenti bilanciatori del carico:

  • Bilanciatore del carico di rete proxy esterno globale
  • Bilanciatore del carico di rete proxy esterno regionale
  • Bilanciatore del carico di rete proxy interno regionale
  • Bilanciatore del carico di rete proxy interno tra regioni
Dettagli di proxyStatus Descrizione Codici di stato della risposta di accompagnamento comuni
client_disconnected_before_any_response La connessione al client è stata interrotta prima che il bilanciatore del carico inviasse una risposta. 0
backend_connection_closed Il backend ha chiuso in modo imprevisto la connessione al bilanciatore del carico. Ciò può accadere se il bilanciatore del carico invia traffico a un'altra entità, ad esempio 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 timeout durante la fase di connessione. 503
failed_to_pick_backend Il bilanciatore del carico non è riuscito a selezionare un backend integro per gestire la richiesta. 502
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
request_overall_timeout È stato superato il timeout totale della richiesta. Per saperne di più, vedi Errori registrati per le connessioni chiuse. 408, 503, 504
tls_version_not_supported La versione del protocollo TLS è riconosciuta, ma non supportata. L'errore comporta la chiusura della connessione TLS. 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. L'errore comporta una connessione TLS chiusa. 0
no_application_protocol Inviato dai server quando un'estensione"application_layer_protocol_negotiation" di un client pubblicizza solo protocolli non supportati dal server. Vedi Estensione di negoziazione del protocollo a livello di applicazione TLS. L'errore comporta la chiusura della connessione TLS. 0
no_certificate Nessun certificato trovato. L'errore comporta la chiusura della connessione TLS. 0
bad_certificate Un certificato non è valido o contiene firme che non è stato possibile verificare. L'errore comporta la chiusura della connessione TLS. 0
unsupported_certificate Un certificato è di un tipo non supportato. L'errore comporta la chiusura della connessione TLS. 0
certificate_revoked Un certificato è stato revocato dal firmatario. L'errore comporta la chiusura della connessione TLS. 0
certificate_expired Un certificato è scaduto o non è valido. L'errore comporta la chiusura della connessione TLS. 0
certificate_unknown Durante l'elaborazione del certificato sono emersi alcuni problemi non specificati che lo rendono inaccettabile. L'errore comporta la chiusura della connessione TLS. 0
unknown_ca È stata ricevuta una catena di certificati valida o parziale, ma il certificato non può essere accettato perché non è possibile individuare il certificato CA o associarlo a un trust anchor noto. L'errore comporta la chiusura della connessione TLS. 0
unexpected_message È stato ricevuto un messaggio inappropriato, ad esempio un messaggio di contatto errato o dati dell'applicazione prematuri. L'errore comporta la chiusura della connessione TLS. 0
bad_record_mac Viene ricevuto un record che non può essere protetto. L'errore comporta la chiusura della connessione TLS. 0
record_overflow È stato ricevuto un record TLSCiphertext con una lunghezza superiore a 214+256 byte oppure un record è stato decriptato in un record TLSPlaintext con più di 214 byte (o un altro limite negoziato). L'errore comporta la chiusura della connessione TLS. 0
handshake_failure Impossibile negoziare un insieme accettabile di parametri di sicurezza in base alle opzioni disponibili. L'errore comporta la chiusura della connessione TLS. 0
illegal_parameter Un campo dell'handshake era errato o incoerente con altri campi. L'errore comporta la chiusura della connessione TLS. 0
access_denied È stato ricevuto un certificato o una PSK validi, ma quando è stato applicato ilcontrollo dell'accessoo dell'accesso, il client non ha proceduto con la negoziazione. L'errore comporta la chiusura della connessione TLS. 0
decode_error Impossibile decodificare un messaggio perché alcuni campi non rientrano nell'intervallo specificato o la lunghezza del messaggio non è corretta. L'errore comporta una connessione TLS chiusa. 0
decrypt_error Un'operazione crittografica di handshake (non a livello di record) non è riuscita, ad esempio non è stato possibile verificare correttamente una firma o convalidare un messaggio finito o un binder PSK. L'errore comporta la chiusura della connessione TLS. 0
insufficient_security Una negoziazione non è riuscita perché il server richiede parametri più sicuri di quelli supportati dal client. L'errore comporta la chiusura della connessione TLS. 0
inappropriate_fallback Inviato da un server in risposta a un tentativo di ripetizione della connessione non valido da un client. L'errore comporta la chiusura della connessione TLS. 0
user_cancelled L'utente ha annullato l'handshake per un motivo non correlato a un errore del protocollo. L'errore comporta la chiusura della connessione TLS. 0
missing_extension Inviato da endpoint che ricevono un messaggio di handshake che non contiene un'estensione obbligatoria per l'invio per la versione TLS offerta o altri parametri negoziati. L'errore comporta la chiusura della connessione TLS. 0
unsupported_extension Inviato da endpoint che ricevono un messaggio di handshake contenente un'estensione nota per essere vietata per l'inclusione nel messaggio di handshake specificato o che include estensioni in ServerHello o Certificate che non sono state offerte per prime nel corrispondente ClientHello o CertificateRequest. L'errore comporta la chiusura della connessione TLS. 0
unrecognized_name Inviato dai server quando non esiste un server identificabile con il nome fornito dal client tramite l'estensione "server_name". Consulta le definizioni delle estensioni TLS. 0
bad_certificate_status_response Inviato dai client quando il server fornisce una risposta OCSP non valida o inaccettabile tramite l'estensione "status_request". Consulta le definizioni delle estensioni TLS. L'errore comporta la chiusura della connessione TLS. 0
load_balancer_configured_resource_limits_reached Il bilanciatore del carico ha raggiunto i limiti di risorse configurati, ad esempio il numero massimo di connessioni. 0

Voci di log relative a connessioni TLS non riuscite

Quando la connessione TLS tra il client e il bilanciatore del carico non riesce prima che venga selezionato un backend, le voci di log registrano gli errori. Puoi configurare i servizi di backend con diverse frequenze di campionamento dei log. Quando una connessione TLS non va a buon fine, la frequenza di campionamento dei log delle connessioni TLS non riuscite è la più alta per qualsiasi servizio di backend. Ad esempio, se hai configurato due servizi di backend con frequenza di campionamento della registrazione pari a 0.3 e 0.5, la frequenza di campionamento dei log delle connessioni TLS non riuscite è 0.5.

Puoi identificare le connessioni TLS non riuscite controllando i seguenti dettagli della voce di log:

  • Il tipo di proxyStatus error è tls_alert_received, tls_certificate_error, tls_protocol_error, o connection_terminated.
  • Non sono presenti informazioni di backend.

L'esempio seguente 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 tabella seguente elenca le etichette risorse per il tipo di risorsa l4_proxy_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.
target_proxy_name string Il nome dell'oggetto proxy di destinazione a cui fa riferimento la regola di forwarding.
forwarding_rule_name string Il nome dell'oggetto regola di forwarding.
loadbalancing_scheme_name string Un attributo della regola di forwarding e del servizio di backend di un bilanciatore del carico che indica se quest'ultimo può essere usato per il traffico interno o esterno.
backend_target_name string Il nome del backend selezionato per gestire la richiesta.
backend_target_type string Il tipo di destinazione backend (BACKEND_SERVICE / UNKNOWN).
backend_name string Il nome del gruppo di istanza di backend o del gruppo di endpoint di rete (NEG).
backend_type string

Il tipo di backend, ovvero un gruppo di istanze o un NEG, o sconosciuto.

Cloud Logging registra le richieste quando backend_type è UNKNOWN anche se la registrazione è disabilitata. Ad esempio, se un client chiude la connessione al bilanciatore del carico prima che questo possa scegliere un backend, il backend_type è impostato su UNKNOWN e la richiesta viene registrata. Questi log forniscono informazioni di debug utili sulle richieste del client chiuse perché il bilanciatore del carico non è riuscito a selezionare un backend.

backend_scope string L'ambito del backend, ovvero 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 ogni volta che backend_name è sconosciuto.

Monitoraggio

I bilanciatori del carico di rete proxy esportano i dati di monitoraggio in Cloud Monitoring.

Le metriche di monitoraggio possono essere utilizzate per:

  • Valuta la configurazione, l'utilizzo e le prestazioni di un bilanciatore del carico.
  • Risolvere i 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 utilizzando l'API Cloud Monitoring.

Visualizzare le dashboard di Monitoring

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

    Vai a Monitoring

  2. Se nel riquadro di navigazione viene visualizzato Risorse, seleziona Risorse, quindi seleziona Bilanciatori del carico Google Cloud. In caso contrario, seleziona Dashboard, quindi seleziona la dashboard denominata Bilanciatori del carico Google Cloud.

  3. Fai clic sul nome del bilanciatore del carico.

Nel riquadro di sinistra puoi visualizzare vari dettagli per questo bilanciatore del carico. Nel riquadro a destra puoi vedere i grafici delle serie temporali. Per visualizzare suddivisioni specifiche, fai clic su Suddivisioni.

Frequenza e conservazione dei report sulle metriche

Le metriche per i bilanciatori del carico vengono raggruppate ed esportate in Monitoring ogni minuto. I dati di monitoraggio vengono conservati per sei settimane.

Per impostazione predefinita, la dashboard fornisce l'analisi dei dati per l'ultima ora (1h). Puoi richiedere l'analisi per un intervallo di tempo diverso selezionando uno degli intervalli preconfigurati dal menu o inserendo manualmente l'intervallo di tempo che preferisci. Ad esempio: 3h (per 3 ore) o 4d (per 4 giorni) o 6w (per sei settimane).

Metriche per i bilanciatori del carico di rete proxy classici

In Monitoring vengono riportate le seguenti metriche per i bilanciatori del carico di rete proxy classici.

Metrica Nome Descrizione
Traffico in entrata tcp_ssl_proxy/ingress_bytes_count Il numero di byte inviati dagli endpoint esterni ai backend configurati tramite Google Front End (GFE), in byte al secondo.
Traffico in uscita tcp_ssl_proxy/egress_bytes_count Il numero di byte inviati dai backend configurati agli endpoint esterni tramite GFE, in byte al secondo.
Connessioni aperte tcp_ssl_proxy/open_connections Il numero di connessioni aperte nel momento del campionamento specificato. I campioni vengono prelevati a distanza di un minuto.
Nuove connessioni al secondo tcp_ssl_proxy/new_connections Il numero di connessioni create (il client si è connesso correttamente al backend). La granularità del conteggio è al minuto, ma i grafici vengono modificati per mostrare i valori al secondo. Per saperne di più, consulta la documentazione di Monitoring.
Connessioni chiuse al secondo tcp_ssl_proxy/closed_connections Il numero di connessioni chiuse. La granularità del conteggio è al minuto, ma i grafici vengono modificati per mostrare i valori al secondo. Per saperne di più, consulta la documentazione di Monitoring.
Frontend RTT tcp_ssl_proxy/frontend_tcp_rtt Una distribuzione del tempo di round trip (RTT) uniformato misurato per ogni connessione tra il client e il GFE (misurato dallo stack TCP del GFE, ogni volta che i byte del livello applicazione passano dal GFE al client). L'RTT uniforme è un algoritmo che gestisce le variazioni e le anomalie che potrebbero verificarsi nelle misurazioni dell'RTT.

Metriche per altri bilanciatori del carico

In Monitoring vengono riportate le seguenti metriche per i bilanciatori del carico di rete proxy interni regionali, i bilanciatori del carico di rete proxy esterni regionali, il bilanciatore del carico di rete proxy interno tra regioni e i bilanciatori del carico di rete proxy esterni globali.

Metrica Nome Descrizione
Traffico in entrata l4_proxy/ingress_bytes_count Il numero di byte inviati dal client alla VM di backend tramite il proxy. Campionamento eseguito ogni 60 secondi. Dopo il campionamento, i dati non sono visibili per un massimo di 210 secondi.
Traffico in uscita l4_proxy/egress_bytes_count Il numero di byte inviati dalla VM di backend al client utilizzando il proxy. Campionamento eseguito ogni 60 secondi. Dopo il campionamento, i dati non sono visibili per un massimo di 210 secondi.
Connessioni chiuse al secondo l4_proxy/tcp/closed_connections_count Il numero di connessioni terminate utilizzando un messaggio TCP RST o TCP FIN. Campionamento eseguito ogni 60 secondi. Dopo il campionamento, i dati non sono visibili per un massimo di 210 secondi.

Filtrare le dimensioni per le metriche

Le metriche vengono aggregate per ogni bilanciatore del carico. Le metriche possono essere ulteriormente suddivise in base alle seguenti dimensioni.

Proprietà Descrizione
AMBITO DEL BACKEND L'ambito (regione o zona) del gruppo di istanze che ha gestito la connessione.
ZONA DI BACKEND Se il gruppo di istanze era un gruppo di istanze zonale, la zona del gruppo di istanze che ha gestito la connessione.
REGIONE DI BACKEND Se il gruppo di istanze era un gruppo di istanze regionale, la regione del gruppo di istanze che ha gestito la connessione.
PROXY CONTINENT Il continente del GFE che ha terminato la connessione TCP/SSL dell'utente, ad esempio America, Europe, Asia.
GRUPPO DI ISTANZE Il nome del gruppo di istanze che ha ricevuto la connessione dell'utente.
REGOLA DI INOLTRO Il nome della regola di forwarding utilizzata per connettersi a GFE.
CLIENT COUNTRY Il nome del paese dell'utente.

Passaggi successivi