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
Tipo di risorsa monitorata Logging "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 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 forniscono insight su come ogni connessione viene instradata ai backend di gestione.

Non sono previsti costi aggiuntivi per l'utilizzo dei log. Tuttavia, in base a come importi i log, si applicano i prezzi standard di Cloud Logging, BigQuery o Pub/Sub. Inoltre, l'abilitazione dei log non influisce sulle prestazioni del bilanciatore del carico.

Campionamento e raccolta dei log

Le connessioni che lasciano ed entrano nelle istanze di macchine virtuali (VM) del backend del bilanciatore del carico vengono campionate. Queste connessioni campionate vengono quindi elaborate per generare i log. Puoi controllare 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 del proxy interno regionali:

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

Per bilanciatori del carico di rete proxy esterni globali, bilanciatori del carico di rete proxy classici o bilanciatori del carico di rete proxy interni 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 il logging è abilitato per questo servizio di backend.

    Il valore del campo deve essere 0.0 to 1.0, dove 0.0 indica che non vengono segnalati log, mentre 1.0 indica che vengono registrate tutte le connessioni. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disabilitare il logging. Il valore predefinito è 1.0.

API

Invia 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:

Invia 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:

Invia 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 interni tra regioni:

Invia 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 il logging è abilitato per questo servizio di backend.

    Il valore del campo deve essere 0.0 to 1.0, dove 0.0 indica che non vengono segnalati log, mentre 1.0 indica che vengono registrate tutte le connessioni. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disabilitare il 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 del proxy interno regionali:

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

Per bilanciatori del carico di rete proxy esterni globali, bilanciatori del carico di rete proxy classici o bilanciatori del carico di rete proxy interni 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 il logging è abilitato per questo servizio di backend.

    Il valore del campo deve essere 0.0 to 1.0, dove 0.0 indica che non vengono segnalati log, mentre 1.0 indica che vengono registrate tutte le connessioni. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disabilitare il 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 interni 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 il logging è abilitato per questo servizio di backend.

    Il valore del campo deve essere 0.0 to 1.0, dove 0.0 indica che non vengono segnalati log, mentre 1.0 indica che vengono registrate tutte le connessioni. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disabilitare il logging. Il valore predefinito è 1.0.

Disabilita 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 del proxy interno regionali:

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

Per bilanciatori del carico di rete proxy esterni globali, bilanciatori del carico di rete proxy classici o bilanciatori del carico di rete proxy interni 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 del proxy interno 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 bilanciatori del carico di rete proxy esterni globali, bilanciatori del carico di rete proxy classici o bilanciatori del carico di rete proxy interni 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 dei 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 del 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 di logging impostato su l4_proxy_rule o tcp_ssl_proxy_rule.
  • PROJECT_ID: il nome del progetto.

Visualizza i log per un servizio di backend specifico

Per visualizzare i log per 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 di logging 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 per un gruppo di istanza di backend specifico, completa i passaggi seguenti.

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 di logging 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.

Cosa viene registrato

Le voci di log contengono informazioni utili per il monitoraggio e il debug del traffico. I record di log contengono campi obbligatori, che sono i campi predefiniti di ogni record di log.

Campo Formato dei campi Tipo di campo: obbligatorio o facoltativo Descrizione
gravità
timestamp
receiveTimestamp
insertID
logName
LogEntry Obbligatorio I campi generali 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 set di etichette. Per maggiori informazioni, consulta Etichette delle risorse.

jsonPayload Oggetto (formato Struct) Obbligatorio Payload della voce di log espresso come oggetto JSON. L'oggetto JSON contiene i seguenti campi:

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, ovvero sono in un formato a più campi. Ad esempio, il campo connection è nel formato IpConnection, che contiene gli indirizzi IP di origine e di destinazione e la porta, oltre al protocollo, in un unico campo. Questi campi di log a più campi sono descritti nella seguente tabella dei formati di record.

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

Campo Formato dei campi Descrizione
connessione IpConnection 5-Tupla che descrive questa connessione.
startTime string Timestamp (formato della stringa di data RFC 3339) in cui la connessione dal client è stata accettata dal bilanciatore del carico.
endTime string Timestamp (formato della stringa di 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 del campo IpConnection

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

Etichette risorse

La tabella seguente elenca le etichette delle 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.
regione 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 della 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 utilizzato 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 del 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, un gruppo di istanze o un NEG, oppure sconosciuto.

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

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.

Monitoraggio

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

Le metriche di Monitoring possono essere utilizzate per:

  • Valuta la configurazione, l'utilizzo e le prestazioni di un bilanciatore del carico.
  • Risolvere i problemi.
  • Migliora l'utilizzo delle risorse e l'esperienza utente.

Oltre alle dashboard predefinite in Monitoring, puoi utilizzare l'API Cloud Monitoring per creare dashboard personalizzate, configurare avvisi e metriche di query.

Visualizza le dashboard di Monitoring

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

    Vai a Monitoring

  2. Se nel riquadro di navigazione appare Risorse, seleziona Risorse, quindi Bilanciatori del carico Google Cloud. In alternativa, seleziona Dashboard, quindi seleziona la dashboard denominata Google Cloud Load Balancers.

  3. Fai clic sul nome del bilanciatore del carico.

Nel riquadro a sinistra puoi vedere vari dettagli del bilanciatore del carico, Nel riquadro a destra puoi vedere i grafici con serie temporali. Per visualizzare suddivisioni specifiche, fai clic su Ripartizioni.

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. Le metriche si basano sul traffico campionato (la frequenza di campionamento è dinamica e non può essere modificata).

La dashboard fornisce analisi dei dati a intervalli predefiniti di 1 ora (un'ora), 6 ore (sei ore), 1 giorno (un giorno), 1 sett (una settimana) e 6 sett (sei settimane). Puoi richiedere manualmente l'analisi in qualsiasi intervallo, da sei settimane a un minuto.

Metriche per bilanciatori del carico di rete proxy classici

Le seguenti metriche per i bilanciatori del carico di rete proxy classici vengono riportate in Monitoring.

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 campione specificato. I campioni vengono estratti a un minuto di distanza.
Nuove connessioni al secondo tcp_ssl_proxy/new_connections Il numero di connessioni create (client connesso correttamente al backend). La granularità del conteggio è al minuto, ma i grafici vengono regolati in modo da 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 regolati in modo da mostrare i valori al secondo. Per saperne di più, consulta la documentazione di Monitoring.
RTT di frontend tcp_ssl_proxy/frontend_tcp_rtt Una distribuzione del tempo di round trip livellato (RTT) misurato per ogni connessione tra il client e il GFE (misurato dallo stack TCP del GFE, ogni volta che i byte del livello dell'applicazione passano dal GFE al client). RTT livellato è un algoritmo che si occupa di variazioni e anomalie che potrebbero verificarsi nelle misurazioni RTT.

Metriche per altri bilanciatori del carico

Le seguenti metriche per bilanciatori del carico di rete proxy interni regionali, bilanciatori del carico di rete proxy esterni regionali, bilanciatore del carico di rete proxy interno tra regioni e bilanciatori del carico di rete proxy esterno globale vengono segnalati in Monitoring.

Metrica Nome Descrizione
Traffico in entrata l4_proxy/ingress_bytes_count Il numero di byte inviati dal client alla VM di backend utilizzando 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 tramite 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 tramite 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 DI BACKEND L'ambito (regione o zona) del gruppo di istanze che ha fornito la connessione.
ZONA BACKEND Se il gruppo di istanze era un gruppo di istanze a livello di zona, la zona del gruppo di istanze che ha fornito la connessione.
REGIONE DI BACKEND Se il gruppo di istanze era un gruppo di istanze a livello di regione, indica la regione del gruppo di istanze che ha fornito la connessione.
CONTINENTE PROXY Il continente del GFE che ha terminato la connessione TCP/SSL dell'utente, ad esempio America, Europe e Asia.
GRUPPO DI ISTANZE Il nome del gruppo di istanze che ha ricevuto la connessione utente.
REGOLA DI INOLTRO Il nome della regola di forwarding utilizzata per la connessione al GFE.
PAESE DEL CLIENTE Il nome del paese dell'utente.

Passaggi successivi