Logging und Monitoring verwenden

Auf dieser Seite finden Sie Informationen zum Logging und Monitoring von Messwerten für Cloud DNS, einschließlich öffentlicher Zonen, privater Zonen, und Weiterleitungszonen. Außerdem enthält diese Seite Anleitungen zum Monitoring der Weitergabe Ihrer öffentlichen DNS-Änderungen.

Cloud DNS-Logging verwenden

Cloud DNS-Logging erfasst Abfragen, die Nameserver für Ihre VPC-Netzwerke (Virtual Private Cloud) auflösen, sowie Abfragen von einer externen Entität direkt in eine öffentliche Zone.

In Logs erfasste Abfragen können von Compute Engine-VM-Instanzen, von Google Kubernetes Engine-Containern im selben VPC-Netzwerk, von Peering-Zonen oder von lokalen Clients, die eingehende DNS-Weiterleitung nutzen, stammen. Private DNS-Zonen, Weiterleitungs-DNS-Zonen, alternative Nameserver, interneGoogle Cloud -DNS-Zonen oder externe DNS-Zonen können die Abfragen letztlich auflösen.

Logdatensätze gehören zu dem Projekt, das Inhaber des Netzwerks oder der öffentlichen Zone ist, die die Anfrage ausgeführt hat. Bei gemeinsam genutzter VPC gehören die Logdatensätze zum Hostprojekt, da das Hostprojekt Inhaber des Netzwerks ist.

Logging für private verwaltete Zonen aktivieren

Verwenden Sie DNS-Richtlinien, um das Logging für Ihre Netzwerke zu aktivieren oder zu deaktivieren. Wenn Sie die Abfrageprotokollierung aktivieren, wird jede DNS-Abfrage an eine private verwaltete Cloud DNS-Zone protokolliert.

Führen Sie die folgenden Schritte aus, um das Logging für ein Netzwerk zu aktivieren, das keine DNS-Richtlinie hat.

Console

  1. Rufen Sie in der Google Cloud Console die Seite DNS-Richtlinie erstellen auf.

    Zur Seite „DNS-Richtlinie erstellen“

  2. Geben Sie unter Name einen Namen für die Richtlinie ein.

  3. Geben Sie optional eine Beschreibung ein.

  4. Wählen Sie für Logs Ein aus.

  5. Klicken Sie im Bereich Netzwerke auf Netzwerke hinzufügen und wählen Sie die gewünschten Netzwerke aus.

  6. Klicken Sie auf Erstellen.

gcloud

Führen Sie den Befehl dns policies create aus.

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

Ersetzen Sie Folgendes:

  • POLICY_NAME: Name der DNS-Richtlinie
  • NETWORK: ein oder mehrere Netzwerke in einer durch Kommas getrennten Liste
  • DESCRIPTION: eine Beschreibung der Richtlinie

So aktivieren Sie das Logging für ein Netzwerk mit einer vorhandenen DNS-Richtlinie:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Richtlinien auf.

    Zu Cloud DNS-Richtlinien

  2. Klicken Sie auf die DNS-Serverrichtlinie, die Sie aktualisieren möchten.

  3. Klicken Sie auf Richtlinie bearbeiten.

  4. Wählen Sie im Abschnitt Logs die Option Ein aus.

  5. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl dns policies update aus.

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

Ersetzen Sie Folgendes:

  • POLICY_NAME: Name der DNS-Richtlinie
  • NETWORK: ein oder mehrere Netzwerke in einer durch Kommas getrennten Liste

Logging für private verwaltete Zonen deaktivieren

So deaktivieren Sie das Logging, ohne die Richtlinie zu entfernen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Richtlinien auf.

    Zu Cloud DNS-Richtlinien

  2. Klicken Sie auf die DNS-Serverrichtlinie, die Sie aktualisieren möchten.

  3. Klicken Sie auf Richtlinie bearbeiten.

  4. Wählen Sie im Abschnitt Logs die Option Aus aus.

  5. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl dns policies update aus.

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

Ersetzen Sie Folgendes:

  • POLICY_NAME: Name der DNS-Richtlinie
  • NETWORK: ein oder mehrere Netzwerke in einer durch Kommas getrennten Liste

Logging für verwaltete öffentliche Zonen aktivieren

So aktivieren Sie das Logging für eine vorhandene verwaltete öffentliche Zone:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Zonen auf.

    Zu „Cloud DNS-Zonen“

  2. Klicken Sie auf die verwaltete öffentliche Zone, für die Sie das Logging aktivieren möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Klicken Sie im Abschnitt Cloud Logging auf Ein.

  5. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl dns managed-zones update aus.

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

Ersetzen Sie ZONE_NAME durch den Namen der verwalteten DNS-Zone, für die Sie das Logging aktivieren möchten.

Logging für verwaltete öffentliche Zonen deaktivieren

Logging für eine vorhandene öffentliche verwaltete Zone deaktivieren.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Zonen auf.

    Zu „Cloud DNS-Zonen“

  2. Klicken Sie auf die verwaltete öffentliche Zone, für die Sie das Logging aktivieren möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Klicken Sie im Bereich Cloud Logging auf Aus.

  5. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl dns managed-zones update aus.

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

Ersetzen Sie ZONE_NAME durch den Namen der verwalteten DNS-Zone, für die Sie das Logging deaktivieren möchten.

Logs ansehen

Sie können Logs in der Google Cloud Console aufrufen.

Console

Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf:

Zum Log-Explorer

Felder des Datensatzformats ansehen

Jeder Logeintrag enthält ggf. die folgenden Felder. Einige Felder werden auch gemeinsam mit Monitoring-Messwerten genutzt.

Feld Feldtyp Beschreibung Wird in Messwerten verwendet
alias_query_response_code String Der Antwortcode, der von der Abfrage zum Auflösen des kanonischen Namens des ALIAS-Eintrags zurückgegeben wird Ja
authAnswer Boolesch/DNS Autoritative Antwort, IANA DNS Parameters: DNS Header Flags Nein
destinationIP String/Ziel Ziel-IP-Adresse, nur für Weiterleitungsfälle relevant Nein
egressError String

Fehler beim Ausgangs-Proxy. Der tatsächliche Fehler, der vom Ausgangs-Proxy gemeldet wird, wie vom lokalen DNS-Server empfangen.

Mit diesem Feld kann zwischen einem tatsächlichen SERVFAIL, der vom lokalen DNS zurückgegeben wird, und einem Netzwerkfehler, der vom Egress-Proxy erkannt wird, unterschieden werden.

Nein
egressPath String

Wenn none oder nicht angegeben, wurde für die Abfrage der standardmäßige Cloud DNS-Pfad verwendet oder OUTBOUND_ENDPOINT, wenn die Abfrage mit einem ausgehenden Endpunkt weitergeleitet wurde.

Nein
healthyIps String

Satz von IP-Adressen im ResourceRecordSet, die zum Zeitpunkt der Abfrage für Cloud DNS als HEALTHY bekannt sind

Nein
location String Google Cloud Region, z. B. us-east1, aus der die Antwort bereitgestellt wurde Ja
outboundEndpoint.name String Vom Nutzer angegebener Name des Endpunkts für ausgehenden Traffic (dieser String ist nur vorhanden, wenn egress_path den Wert OUTBOUND_ENDPOINT hat) Nein
outboundEndpoint.projectId String Die Projekt-ID von Google Cloud , in der sich der Endpunkt für ausgehenden Traffic befindet (dieser String ist nur vorhanden, wenn egress_path den Wert OUTBOUND_ENDPOINT hat) Nein
outboundEndpoint.location String Die Google Cloud Region, in der sich der ausgehende Endpunkt befindet (dieser String ist nur vorhanden, wenn egress_path gleich OUTBOUND_ENDPOINT ist) Nein
project_id String Google Cloud Projekt-ID des Netzwerks, von dem die Abfrage empfangen wurde Ja
protocol String/DNS TCP | UDP Nein
queryName String/DNS DNS-Abfragename, RFC 1035 4.1.2 Nein
queryType String/DNS DNS-Abfragetyp, IANA-DNS-Parameter: Ressourceneintragstypen (RR) Nein
responseCode Zahl/DNS Antwortcode, IANA-DNS-Parameter: DNS-RCODEs Nein
rdata String/DNS DNS-Antwort im Präsentationsformat, IANA-DNS-Parameter: Ressourceneintragstypen (RR), gekürzt auf 260 Byte Nein
sourceIP String/Quelle IP, von der die Abfrage stammt. Nein
sourceNetwork String/Quelle Netzwerk, von dem die Abfrage unser System erreicht hat Nein
source_type String Quelle der Abfrage: inbound-forwarding, gce-vm, internet, peering-zone, fqdn-forwarding-target Nein
target_name String Der Zielname, z. B. Zonenname, Richtlinienname, interner Zonenname, externer Domainname Ja
target_type String Typ des Ziels, das die DNS-Abfrage auflöst: private-zone, forwarding-zone, forwarding-policy, peering-zone, internal, external, response-policy, service-directory-zone, reverse-lookup-zone, zonal-private-zone Ja
unHealthyIps String

Satz von IP-Adressen im ResourceRecordSet, die zum Zeitpunkt der Abfrage für Cloud DNS als UNHEALTHY bekannt sind

Nein
vmInstanceId Quelle der Nummer Compute Engine-VM-Instanz-ID, nur anwendbar auf Abfragen, die von Compute Engine-VMs initiiert wurden Nein
vmInstanceName String/Quelle Name der Compute Engine-VM-Instanz, gilt nur für Abfragen, die von Compute Engine-VMs initiiert wurden Nein
vmProjectId String/Quelle Google Cloud Projekt-ID des Netzwerks, aus dem die Anfrage gesendet wurde. Gilt nur für Anfragen, die von Compute Engine-VMs initiiert wurden. Nein
vmZoneName String/Quelle Name der VM-Zone, von der die Abfrage gesendet wurde, gilt nur für Abfragen, die von Compute Engine-VMs initiiert wurden Nein

Preise

Alle Cloud DNS-Logs werden in Cloud Logging geschrieben. Für diesen Dienst fallen keine separaten Kosten für Cloud DNS an. Diese Logs können jedoch je nach Größe der geschriebenen und gespeicherten Logs zu zusätzlichen Speicherkosten führen.

Für Berechnungszwecke: Cloud DNS schreibt etwa 5 MB an Log-Daten für die Verarbeitung von 10.000 DNS-Anfragen.

Informationen zu den Preisen für Cloud Logging finden Sie unter Preise für Google Cloud Observability: Cloud Logging.

Fehlerbehebung bei ausgehender Weiterleitung

Wenn Sie Logs mit SERVFAIL erhalten, in denen bestimmte Felder wie destinationIP, egressIP und egressError fehlen, finden Sie Informationen dazu im entsprechenden Abschnitt der Dokumentation zur Fehlerbehebung.

Messwerte überwachen

Cloud DNS exportiert Monitoring-Messwerte in Cloud Monitoring.

Sie können die Rate von DNS-Abfragen und -Antworten überwachen, die auf private Zonen, Weiterleitungszonen, Richtlinienweiterleitung, interne Google Cloud -Zonen und das Internet verweisen. Monitoring ist in der Google Cloud Console auf der Seite „Monitoring“ und in der Cloud Monitoring API verfügbar.

Das private DNS exportiert den Deltamesswert dns.googleapis.com/query/response_count, der das Label response_code enthält, um die Anzahl der Abfragen pro Antwortcode zu zählen.

Das Label response_code ist vom Typ string mit den möglichen Werten: NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP und UNKNOWN. Definitionen dieser Codes finden Sie unter IANA DNS-RCODEs.

Der Messwert wird unter dem Ressourcentyp dns_query mithilfe der entsprechenden Felder des Eintragsformats für Logs exportiert.

DNS-Weitergabe überwachen

Wenn Sie Änderungen über die Google Cloud CLI oder die REST API vornehmen, werden die Änderungen anfangs als ausstehend markiert, bis der Vorgang abgeschlossen ist. Mit der gcloud-CLI oder der REST API können Sie den Status von Änderungen prüfen oder einen Änderungsverlauf abrufen.

Ein Vorgang ist abgeschlossen (Status done), wenn Cloud DNS das System aktualisiert hat, das die Server steuert. Solange nicht alle Nameserver aktualisiert wurden, kann es noch zu Verzögerungen kommen.

Änderungen für eine verwaltete Zone auflisten

Führen Sie den Befehl dns record-sets changes list aus, um Änderungen für eine verwaltete Zone aufzulisten.

gcloud

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

Ersetzen Sie ZONE durch den Namen der verwalteten Zone, deren Datensätze Sie verwalten möchten.

Übernahme von DNS-Änderungen überprüfen

Wenn Sie überwachen und prüfen möchten, ob der DNS-Nameserver Ihre Änderungen übernommen hat, können Sie die Befehle watch und dig verwenden. Im folgenden Beispiel wird gezeigt, wie Sie Ihren Nameserver abrufen und prüfen, ob ein Nameserver Ihrer verwalteten Zone eine Änderung an einem MX-Eintrag vorliegt.

So rufen Sie die Nameserver Ihrer Zone auf:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Zonen auf.

    Zu „Cloud DNS-Zonen“

  2. Klicken Sie auf den Namen der verwalteten Zone, die Sie prüfen möchten.

  3. Klicken Sie auf der Seite Zonendetails rechts oben auf Einrichtung des Registrars.

gcloud

Führen Sie den Befehl dns managed-zones describe aus.

gcloud dns managed-zones describe ZONE_NAME

Ersetzen Sie ZONE_NAME durch den Namen Ihrer Cloud DNS-Zone.

Führen Sie den folgenden dig-Befehl aus, um zu prüfen, ob die Datensätze auf dem autoritativen Nameserver verfügbar sind:

gcloud

watch dig example.com in MX @ZONE_NAME_SERVER

Ersetzen Sie ZONE_NAME_SERVER durch einen der Nameserver aus der verwalteten Zone.

Der Befehl watch führt standardmäßig alle zwei Sekunden den Befehl dig aus. Sie können mit diesem Befehl festlegen, wann der autoritative Nameserver Ihre Änderung übernimmt. Dies sollte innerhalb von 120 Sekunden erfolgen. Nachdem der autoritative Nameserver die Änderung übernommen hat, können die DNS-Resolver den neuen Eintrag abrufen. Resolver, die den vorherigen Eintrag bereits im Cache gespeichert haben, warten, bis der vorherige TTL-Wert des Eintrags abläuft.

Wenn Sie dig für den Nameserver Ihres Systems ausführen möchten, können Sie @<address> aus dem Befehl dig entfernen. Wenn Sie die Weitergabe an andere Nameserver überwachen möchten, können Sie address ändern, um auf andere Nameserver zu verweisen.

Nächste Schritte