Logging e monitoraggio

Questa pagina fornisce informazioni sulla registrazione e il monitoraggio delle metriche per Cloud DNS, incluse le zone pubbliche, le zone private e le zone di inoltro. Questa pagina fornisce inoltre istruzioni per monitorare la propagazione delle modifiche al DNS pubblico.

Utilizzo del logging di Cloud DNS

Il logging di Cloud DNS monitora le query che i server dei nomi risolvono per le reti Virtual Private Cloud (VPC), nonché le query provenienti da un'entità esterna direttamente in una zona pubblica.

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

I record di log appartengono al progetto proprietario della rete o della zona pubblica che ha portato alla richiesta. Nel caso della rete Shared VPC, i record di log appartengono al progetto host perché il progetto host è proprietario della rete.

Abilitazione e disabilitazione del logging per zone gestite private

Utilizza i criteri DNS per abilitare o disabilitare il logging per le tue reti oppure utilizza la zona gestita DNS per abilitare o disabilitare il logging per le query risolte da quella zona.

Esegui il comando dns policies create per attivare il logging per una rete che non ha un criterio DNS.

gcloud

gcloud dns policies create POLICY_NAME \
    --networks=NETWORK \
    --enable-logging \
    --description=DESCRIPTION

Sostituisci quanto segue:

  • POLICY_NAME: il nome del criterio DNS
  • NETWORK: una o più reti in un elenco separato da virgole
  • DESCRIPTION: una descrizione del criterio

Esegui il comando dns policies update per attivare il logging per una rete che ha un criterio DNS esistente.

gcloud

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

Sostituisci quanto segue:

  • POLICY_NAME: il nome del criterio DNS
  • NETWORK: una o più reti in un elenco separato da virgole

Per disattivare il logging senza modificare il criterio, esegui il comando dns policies update.

gcloud

gcloud dns policies update POLICY_NAME \
    --networks=NETWORK \
    --no-enable-logging

Sostituisci quanto segue:

  • POLICY_NAME: il nome del criterio DNS
  • NETWORK: una o più reti in un elenco separato da virgole

Per eliminare completamente il criterio, esegui il comando dns policies delete.

gcloud

gcloud dns policies delete POLICY_NAME \

Sostituisci POLICY_NAME con il nome del criterio DNS che vuoi eliminare.

Abilitazione e disabilitazione del logging per zone pubbliche gestite

Per attivare il logging per una zona pubblica gestita esistente, esegui il comando dns managed-zones update.

gcloud

gcloud dns managed-zones update ZONE_NAME --log-dns-queries \

Sostituisci ZONE_NAME con il nome della zona gestita DNS per cui vuoi abilitare il logging.

Per disattivare il logging per una zona gestita pubblica esistente, esegui il comando dns managed-zones update.

gcloud

gcloud dns managed-zones update ZONE_NAME --no-log-dns-queries \

Sostituisci ZONE_NAME con il nome della zona gestita DNS per cui vuoi disabilitare la registrazione.

Visualizzazione dei log

Console

In Google Cloud Console, vai alla pagina Esplora log.

Vai a Esplora log

Visualizzazione dei campi del formato dei record

Ogni voce di log contiene i seguenti campi, se applicabili. Alcuni campi vengono condivisi anche con le metriche di monitoraggio.

Campo Tipo di campo Descrizione Utilizzato nelle metriche
source_type Stringa Origine della query: inbound-forwarding, gce-vm
location Stringa Area geografica Google Cloud, ad esempio us-east1, da cui è stata pubblicata la risposta
project_id Stringa ID progetto Google Cloud della rete da cui è stata ricevuta la query
target_type Stringa Tipo di target che risolve la query DNS: private-zone, forwarding-zone, forwarding-policy, peering-zone, internal, external
target_name Stringa Il nome target, ad esempio nome della zona, nome del criterio, nome della zona interna, nome del dominio esterno
queryName Stringa / DNS Nome query DNS, RFC 1035 4.1.2. No
queryType Stringa / DNS Tipo di query DNS, RFC 1035 4.1.2. No
responseCode Numero / DNS Codice di risposta, RFC 1035 4.1.1. No
rdata Stringa / DNS Risposta DNS in formato presentazione, RFC 1035 5.1, troncata a 260 byte No
authAnswer Booleano / DNS Risposta autorevole, RFC 1035 No
sourceNetwork Stringa / sorgente Rete da cui la query ha raggiunto il nostro sistema No
vmInstanceId Numero / sorgente ID istanza VM di Compute Engine, applicabile solo alle query avviate dalle VM di Compute Engine No
vmInstanceName Stringa / sorgente Nome dell'istanza VM di Compute Engine, applicabile solo alle query avviate dalle VM di Compute Engine No
vmProjectId Stringa / sorgente ID del progetto Google Cloud della rete da cui è stata inviata la query. Applicabile solo alle query avviate dalle VM di Compute Engine. No
vmZoneName Stringa / sorgente Nome della zona VM da cui è stata inviata la query. Applicabile solo alle query avviate dalle VM di Compute Engine. No
sourceIP Stringa / sorgente IP che ha generato la query No
destinationIP Stringa / target Indirizzo IP di destinazione, applicabile solo per le richieste di inoltro No
protocol Stringa / DNS TCP | UDP No
egressError Stringa

Errore proxy in uscita, l'errore effettivo segnalato dal proxy in uscita come ricevuto dal server DNS on-premise

Questo campo può essere utilizzato per distinguere un SERVFAIL effettivo restituito dal DNS on-premise rispetto a un errore di rete rilevato dal proxy in uscita.

No

Prezzi

Tutti i log di Cloud DNS sono scritti in Cloud Logging. Non sono previsti addebiti separati da Cloud DNS per questo servizio. Tuttavia, questi log possono comportare costi di archiviazione aggiuntivi a seconda delle dimensioni dei log scritti e archiviati.

Ai fini del calcolo, Cloud DNS scrive circa 5 MB di dati di log per l'elaborazione di 10.000 query DNS.

Per informazioni sui prezzi di Cloud Logging, consulta la pagina Prezzi della suite operativa di Google Cloud: Cloud Logging.

Risolvere i problemi relativi all'inoltro in uscita

Se ricevi log contenenti SERVFAIL a cui mancano alcuni campi come destinationIP, egressIP e egressError, consulta la sezione correlata nella documentazione per la risoluzione dei problemi.

Monitoraggio delle metriche

Cloud DNS esporta le metriche di monitoraggio in Cloud Monitoring.

Puoi monitorare la frequenza di query e risposte DNS che rimandano a zone private, zone di forwarding, forwarding di criteri, zone Google Cloud interne e Internet. Monitoring è disponibile su Google Cloud Console Monitoring Pagina e nell'API Cloud Monitoring.

Il DNS privato esporta la metrica delta dns.googleapis.com/query/response_count che contiene l'etichetta response_code per conteggiare il numero di query per codice di risposta.

L'etichetta response_code è di tipo string con i possibili valori NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP e UNKNOWN. Per le definizioni di questi codici, consulta IANA DNS RCODE.

La metrica viene esportata nel tipo di risorsa dns_query utilizzando i campi corrispondenti al formato di record applicabile.

Monitoraggio della propagazione del DNS

Quando utilizzi l'interfaccia a riga di comando di Google Cloud o l'API REST per apportare modifiche, le modifiche vengono inizialmente contrassegnate come in attesa fino al completamento dell'operazione. Puoi utilizzare l'interfaccia a riga di comando gcloud o l'API REST per controllare lo stato delle modifiche o visualizzare una cronologia delle modifiche.

Un'operazione è stata completata (stato: done) quando Cloud DNS ha aggiornato correttamente il sistema che controlla i server. Potrebbero verificarsi ancora ritardi prima dell'aggiornamento di tutti i server dei nomi.

Elenco di modifiche per una zona gestita

Per elencare le modifiche apportate a una zona gestita, vedi le opzioni seguenti.

gcloud

Esegui il comando dns record-sets changes list:

gcloud dns record-sets changes list --zone=ZONE

Sostituisci ZONE con il nome della zona gestita di cui vuoi gestire i set di record.

Python

def list_changes(project_id, zone_name):
    client = dns.Client(project=project_id)
    zone = client.zone(zone_name)

    changes = zone.list_changes()

    return [(change.started, change.status) for change in changes]

Verifica della propagazione del DNS

Per monitorare e verificare che il server dei nomi DNS abbia rilevato le tue modifiche, puoi utilizzare i comandi watch e dig. L'esempio seguente mostra come cercare il server dei nomi e verificare quando uno dei server dei nomi della tua zona gestita ha rilevato una modifica a un record MX.

Per cercare i server dei nomi della tua zona, esegui il comando dns managed-zones describe:

gcloud dns managed-zones describe ZONE_NAME

Sostituisci ZONE_NAME con il nome della tua zona Cloud DNS.

Per verificare se i record sono ancora disponibili sul tuo server dei nomi autorevole, esegui il comando dig seguente:

watch dig example.com in MX @ZONE_NAME_SERVER

Sostituisci ZONE_NAME_SERVER con uno dei server dei nomi della zona gestita.

Il comando watch esegue il comando dig ogni 2 secondi per impostazione predefinita. Puoi utilizzare questo comando per stabilire quando il server dei nomi autorevole rileva la tua modifica, che dovrebbe avvenire entro 120 secondi. Dopo che il server dei nomi autorevole ha apportato la modifica, i resolver DNS possono iniziare a recuperare il nuovo record. I resolver che hanno già memorizzato nella cache il record precedente attendono la scadenza del valore TTL precedente del record.

Per eseguire dig sul server dei nomi del tuo sistema, puoi rimuovere @<address> dal comando dig. Se vuoi monitorare la propagazione su altri server dei nomi, puoi modificare l'address per puntare ad altri server dei nomi.

Passaggi successivi