Utilizzare i log di Cloud DNS per monitorare i tassi di errore DNS

Puoi abilitare i log delle query DNS di Cloud DNS nel tuo progetto Compute Engine e utilizzarli per monitorare e confrontare i tassi di errore del DNS interno prima e dopo la migrazione al DNS interno di zona. Le voci di log registrano la risoluzione DNS riuscita e quando il DNS interno non riesce a risolvere un determinato nome di dominio.

Panoramica

Per utilizzare i log delle query DNS di Cloud DNS per monitorare i tassi di errore del DNS interno, completa i seguenti passaggi:

  1. Recupera il nome della rete Virtual Private Cloud (VPC) per il VPC che contiene le VM da monitorare.
  2. Utilizzando i nomi delle reti VPC, esegui un comando di Google Cloud CLI per abilitare il logging delle query DNS.
  3. Esegui query in Esplora log per visualizzare e analizzare i tassi di successo e di errore.

Informazioni sui prezzi per il logging delle query DNS di Cloud DNS

Quando abiliti il logging delle query DNS di Cloud DNS, viene generata una quantità significativa di log, molti dei quali non sono correlati al DNS interno. Di conseguenza, l'utilizzo di questa funzionalità potrebbe comportare dei costi. In generale, i primi 50 GiB di spazio di archiviazione dei log per progetto al mese sono senza costi. Ogni 50 GiB aggiuntivi costano 0,50 USD.

Per saperne di più sui prezzi, consulta il Riepilogo dei prezzi di Cloud Logging.

Recupera i nomi delle reti Virtual Private Cloud (VPC)

Per acquisire i dati delle query DNS, devi attivare la registrazione per la rete VPC utilizzata dall'istanza di computing. Spesso, un progetto Google Cloud ha più reti VPC. Puoi utilizzare un comando gcloud CLI per elencare le reti VPC utilizzate dalle istanze di computing che vuoi monitorare.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. (Facoltativo) Utilizza la casella Filtro per limitare il numero di istanze visualizzate.

  3. Fai clic sul nome dell'istanza che vuoi ispezionare.

  4. Nella sezione Networking, sotto Interfacce di rete, puoi vedere le interfacce di rete (NIC) create per l'istanza, la rete e la subnet associate a ogni NIC e i rispettivi indirizzi IP assegnati.

gcloud

  • Per visualizzare le reti VPC utilizzate da tutte le istanze di computing in un progetto, utilizza il comando gcloud compute instances list. Puoi aggiungere un'opzione --format al comando per limitare le informazioni restituite a campi specifici e modificare la modalità di visualizzazione delle informazioni, ad esempio:

    gcloud compute instances list \
      --format="flattened(name,networkInterfaces[].name, \
        networkInterfaces[].network.basename(), \
        networkInterfaces[].stackType, networkInterfaces[].nicType)"
    

    L'output è simile al seguente:

    name:                           test-gvnic
    networkInterfaces[0].name:      nic0
    networkInterfaces[0].network:   default
    networkInterfaces[0].nicType:   GVNIC
    networkInterfaces[0].stackType: IPV4_ONLY
    ---
    name:                           test-multinic
    networkInterfaces[0].name:      nic0
    networkInterfaces[0].network:   default
    networkInterfaces[0].nicType:   GVNIC
    networkInterfaces[0].stackType: IPV4_ONLY
    networkInterfaces[1].name:      nic0.14
    networkInterfaces[1].network:   net0
    networkInterfaces[1].stackType: IPV4_ONLY
    networkInterfaces[2].name:      nic1
    networkInterfaces[2].network:   prod-ipv6
    networkInterfaces[2].nicType:   GVNIC
    networkInterfaces[2].stackType: IPV4_IPV6
    
  • Per visualizzare le interfacce di rete (NIC) di un'istanza di computing specifica e le reti VPC assegnate, utilizza il comando gcloud compute instances describe. Puoi aggiungere un'opzione --format al comando per limitare le informazioni restituite a campi specifici e modificare la modalità di visualizzazione delle informazioni, ad esempio:

    gcloud compute instances describe INSTANCE_NAME --zone=ZONE \
      --format="flattened(name,networkInterfaces[].name, \
      networkInterfaces[].network.basename(), \
      networkInterfaces[].stackType, networkInterfaces[].nicType)"
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza da visualizzare
    • ZONE: la zona dell'istanza che vuoi visualizzare

    L'output è simile al seguente:

    name:                           test-instance
    networkInterfaces[0].name:      nic0
    networkInterfaces[0].network:   default
    networkInterfaces[0].nicType:   GVNIC
    networkInterfaces[0].stackType: IPV4_ONLY
    networkInterfaces[1].name:      nic1
    networkInterfaces[1].network:   prod-ipv6
    networkInterfaces[1].nicType:   GVNIC
    networkInterfaces[1].stackType: IPV4_IPV6
    networkInterfaces[1].name:      nic1.2
    networkInterfaces[1].network:   alt-ipv6-net
    networkInterfaces[1].nicType:   GVNIC
    networkInterfaces[1].stackType: IPV4_IPV6
    networkInterfaces[1].parentNicName: nic1
    

Abilita il logging delle query DNS di Cloud DNS

Il logging di Cloud DNS monitora le query che i server dei nomi risolvono per le tue reti VPC, nonché le query da un'entità esterna direttamente a una zona pubblica.

Le query registrate possono provenire da istanze di Compute Engine, da container Google Kubernetes Engine nella stessa rete VPC, da zone di peering o da client on-premise che utilizzano il forwarding DNS in entrata. Le zone DNS private, le zone DNS di forwarding, i server dei nomi alternativi, le zone DNS Google Cloud interne o le zone DNS esterne potrebbero finire per risolvere le query.

I record di log appartengono al progetto proprietario della rete o della zona pubblica che ha eseguito la richiesta. Nel caso del VPC condiviso, i record di log appartengono al progetto host perché è il proprietario della rete.

Per attivare la registrazione DNS, esegui una delle seguenti operazioni:

  • Crea una nuova policy DNS con il logging abilitato eseguendo il comando gcloud dns policies create.

    gcloud dns policies create POLICY_NAME \
        --networks=NETWORK_NAMES \
        --enable-logging \
        --description="Enable DNS query logging for NETWORK_NAMES"
    
  • Se la rete dispone già di una policy DNS, aggiorna la policy di logging esistente eseguendo il comando gcloud dns policies update.

    gcloud dns policies update POLICY_NAME \
       --networks=NETWORK_NAMES \
       --enable-logging
    

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy DNS
  • NETWORK_NAMES: un elenco separato da virgole di nomi di rete

Per istruzioni dettagliate su come creare e abilitare le policy DNS per il logging, consulta Utilizza il logging di Cloud DNS.

Utilizza Esplora log per visualizzare i log e visualizzare i tassi di errore DNS

Dopo aver abilitato il logging DNS, il progetto inizia ad accumulare log in Esplora log. Per visualizzare questi log, utilizza la console Google Cloud e vai alla pagina Esplora log.

Vai a Esplora log

Monitora gli errori di risoluzione dei nomi DNS

Utilizza il codice di risposta NXDOMAIN per isolare gli errori relativi ai domini inesistenti. Questi errori si verificano quando il DNS interno non riesce a risolvere un determinato nome di dominio.

  1. Nella casella di query della pagina della console Esplora log, inserisci il seguente testo:

    resource.type="dns_query"
    jsonPayload.queryType="A"
    jsonPayload.queryName=~"\.internal\.$"
    jsonPayload.responseCode = "NXDOMAIN"
    
  2. Fai clic su Esegui query.

Monitorare le query di risoluzione dei nomi riuscite

Utilizza il codice di risposta NOERROR per isolare la risoluzione DNS riuscita.

  1. Nella casella di query della pagina della console Esplora log, inserisci il seguente testo:

    resource.type="dns_query"
    jsonPayload.queryType="A"
    jsonPayload.queryName=~"\.internal\.$"
    jsonPayload.responseCode = "NOERROR"
    
  2. Fai clic su Esegui query.

Stabilisci un periodo di tempo per l'analisi

Puoi utilizzare il selettore dell'intervallo di tempo dei log per modificare il periodo di tempo dei log analizzati. Questo selettore si trova nell'angolo in alto a destra della finestra di Esplora log.

Per un confronto efficace dei tassi di errore e di successo, devi abilitare i log delle query DNS prima di eseguire la migrazione all'utilizzo del DNS di zona. Google consiglia di attivare il logging delle query DNS almeno 24 ore prima della migrazione per stabilire una base di riferimento pre-migrazione.

Dopo aver raccolto dati sufficienti nei log delle query DNS, puoi eseguire la migrazione del DNS di zona. Puoi monitorare i tassi di risoluzione DNS durante la migrazione per assicurarti che non causi un aumento degli errori di query DNS.

Analizza e confronta le frequenze di risoluzione dei nomi DNS

Utilizza i seguenti elementi per analizzare e confrontare i tassi di errore e i tassi di successo.

  • Conteggi dei log: per ogni query e periodo di tempo, Esplora log mostra il numero di voci di log trovate. Un aumento significativo dei conteggi NXDOMAIN post-migrazione per i nomi DNS che in precedenza venivano risolti (avevano NOERROR) potrebbe indicare un problema.

  • Istogramma: l'interfaccia di Esplora log include un istogramma. Quando vengono eseguite le query, l'istogramma mostra la frequenza delle voci di log corrispondenti nell'intervallo di tempo selezionato. Questo è utile per visualizzare:

    • Un tasso di base di NXDOMAIN voci di log prima della migrazione.
    • Eventuali picchi nelle voci di log di NXDOMAIN subito dopo la migrazione.
    • Modifiche alla frequenza delle voci di log NOERROR.

    Per visualizzare l'istogramma, fai clic su Preferenze, poi su Visualizza e infine su Mostra cronologia.

Passaggi successivi