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 le percentuali di errori 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 le percentuali di errori 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 Google Cloud CLI per abilitare il logging delle query DNS.
  3. Esegui query in Esplora log per visualizzare e analizzare le percentuali di successo e di errore.

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

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

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 abilitare il logging per la rete VPC utilizzata dall'istanza di computing. Spesso, un Google Cloud progetto 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 gcloud compute instances list comando. 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 gcloud compute instances describe comando. 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 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 interne Google Cloud 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 abilitare il logging DNS, procedi in uno dei seguenti modi:

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

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

    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 di nomi di rete separato da virgole

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 le percentuali di errori DNS

Dopo aver abilitato il logging DNS, il progetto inizia ad accumulare log in Esplora log. Per visualizzare questi log, utilizza la Google Cloud console 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 di dominio 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.

Monitora 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 analisi

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

Per un confronto efficace delle percentuali 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 abilitare il logging delle query DNS almeno 24 ore prima della migrazione per stabilire una baseline pre-migrazione.

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

Analizza e confronta le percentuali di risoluzione dei nomi DNS

Utilizza quanto segue per analizzare e confrontare le percentuali di errore e di successo.

  • Conteggi log: per ogni query e periodo di tempo, Esplora log mostra il numero di voci di log trovate. Un aumento significativo dei conteggi NXDOMAIN dopo la 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. Questa opzione è utile per visualizzare:

    • Una percentuale di base delle voci di log NXDOMAIN prima della migrazione.
    • Eventuali picchi nelle voci di log NXDOMAIN immediatamente 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 sequenza temporale.

Passaggi successivi