Cloud DNS-Logs verwenden, um DNS-Fehlerraten zu überwachen

Sie können Cloud DNS-Abfragelogs in Ihrem Compute Engine-Projekt aktivieren und damit die internen DNS-Fehlerraten vor und nach der Migration zu zonalem internen DNS vergleichen. In den Logeinträgen wird die erfolgreiche DNS-Auflösung erfasst und angegeben, wann der interne DNS einen bestimmten Domainnamen nicht auflösen kann.

Übersicht

So verwenden Sie Cloud DNS-Abfragelogs, um die internen DNS-Fehlerraten zu beobachten:

  1. Rufen Sie den VPC-Netzwerknamen (Virtual Private Cloud) für die VPC ab, die die zu beobachtenden VMs enthält.
  2. Führen Sie mit den VPC-Netzwerknamen einen Google Cloud CLI-Befehl aus, um das Logging von DNS-Abfragen zu aktivieren.
  3. Führen Sie Abfragen im Log-Explorer aus, um Erfolgs- und Fehlerraten zu visualisieren und zu untersuchen.

Preise für das Logging von Cloud DNS-Abfragen

Wenn Sie das Logging von Cloud DNS-Abfragen aktivieren, werden viele Logs generiert, von denen viele nicht mit internem DNS zusammenhängen. Daher können Kosten für die Verwendung dieser Funktion anfallen. Im Allgemeinen sind die ersten 50 GiB an Logs-Speicher pro Projekt und Monat kostenlos. Jede weiteren 50 GiB kosten 0,50 $.

Weitere Informationen zu den Preisen finden Sie in der Preisübersicht für Cloud Logging.

Namen der Virtual Private Cloud (VPC)-Netzwerke abrufen

Wenn Sie Daten zu DNS-Abfragen erfassen möchten, müssen Sie das Logging für das VPC-Netzwerk aktivieren, das von Ihrer Compute-Instanz verwendet wird. Oft hat ein Google Cloud Projekt mehrere VPC-Netzwerke. Mit einem gcloud CLI-Befehl können Sie die VPC-Netzwerke auflisten, die von den Compute-Instanzen verwendet werden, die Sie beobachten möchten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Optional: Verwenden Sie das Feld Filter , um die Anzahl der angezeigten Instanzen zu begrenzen.

  3. Klicken Sie auf den Namen der Instanz, die Sie untersuchen möchten.

  4. Im Bereich Netzwerk unter Netzwerkschnittstellen sehen Sie die für die Instanz erstellten Netzwerkschnittstellen, das Netzwerk und das Subnetz, die mit jeder Netzwerkschnittstelle verknüpft sind, sowie die zugewiesenen IP-Adressen.

gcloud

  • Verwenden Sie den gcloud compute instances list Befehl, um die VPC-Netzwerke aufzurufen, die von allen Compute-Instanzen in einem Projekt verwendet werden. Sie können dem Befehl die Option --format hinzufügen, um die zurückgegebenen Informationen auf bestimmte Felder zu beschränken und die Darstellung zu ändern, z. B.:

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

    Die Ausgabe sieht etwa so aus:

    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
    
  • Verwenden Sie den gcloud compute instances describe Befehl, um die Netzwerkschnittstellen für eine bestimmte Compute-Instanz und die zugewiesenen VPC-Netzwerke aufzurufen. Sie können dem Befehl die Option --format hinzufügen, um die zurückgegebenen Informationen auf bestimmte Felder zu beschränken und die Darstellung zu ändern, z. B.:

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

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: der Name der Instanz, die aufgerufen werden soll
    • ZONE: die Zone für die Instanz, die aufgerufen werden soll

    Die Ausgabe sieht etwa so aus:

    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
    

Logging von Cloud DNS-Abfragen aktivieren

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

In Logs erfasste Abfragen können von Compute Engine-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, interne Google 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 freigegebene VPC gehören die Logdatensätze zum Hostprojekt, da das Hostprojekt Inhaber des Netzwerks ist.

Führen Sie einen der folgenden Schritte aus, um das DNS-Logging zu aktivieren:

  • Erstellen Sie eine neue DNS-Richtlinie mit aktiviertem Logging, indem Sie den gcloud dns policies create Befehl ausführen.

    gcloud dns policies create POLICY_NAME \
        --networks=NETWORK_NAMES \
        --enable-logging \
        --description="Enable DNS query logging for NETWORK_NAMES"
    
  • Wenn das Netzwerk bereits eine DNS-Richtlinie hat, aktualisieren Sie die vorhandene Logging-Richtlinie , indem Sie den gcloud dns policies update Befehl ausführen.

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

Ersetzen Sie Folgendes:

  • POLICY_NAME: der Name der DNS-Richtlinie
  • NETWORK_NAMES: eine durch Kommas getrennte Liste von Netzwerknamen

Eine detaillierte Anleitung zum Erstellen und Aktivieren von DNS-Richtlinien für das Logging finden Sie unter Cloud DNS-Logging verwenden.

Logs mit dem Log-Explorer ansehen und DNS-Fehlerraten visualisieren

Nachdem Sie das DNS-Logging aktiviert haben, werden im Log-Explorer Logs für das Projekt erfasst. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf, um diese Logs anzusehen.

Zum Log-Explorer

Fehler bei der DNS-Namensauflösung beobachten

Verwenden Sie den Antwortcode NXDOMAIN, um Fehler bei nicht vorhandenen Domains zu isolieren. Diese Fehler treten auf, wenn der interne DNS einen bestimmten Domainnamen nicht auflösen kann.

  1. Geben Sie im Abfragefeld auf der Console-Seite Log-Explorer den folgenden Text ein:

    resource.type="dns_query"
    jsonPayload.queryType="A"
    jsonPayload.queryName=~"\.internal\.$"
    jsonPayload.responseCode = "NXDOMAIN"
    
  2. Klicken Sie auf Abfrage ausführen.

Erfolgreiche Namensauflösungsabfragen beobachten

Verwenden Sie den Antwortcode NOERROR, um die erfolgreiche DNS-Auflösung zu isolieren.

  1. Geben Sie im Abfragefeld auf der Console-Seite Log-Explorer den folgenden Text ein:

    resource.type="dns_query"
    jsonPayload.queryType="A"
    jsonPayload.queryName=~"\.internal\.$"
    jsonPayload.responseCode = "NOERROR"
    
  2. Klicken Sie auf Abfrage ausführen.

Zeitraum für die Analyse festlegen

Mit der Zeitraumauswahl für Logs können Sie den Zeitraum für die analysierten Logs ändern. Diese Auswahl befindet sich rechts oben im Fenster Log-Explorer.

Für einen effektiven Vergleich von Fehler- und Erfolgsraten müssen Sie DNS-Abfragelogs aktivieren, bevor Sie zu zonalem DNS migrieren. Google empfiehlt, das Logging von DNS-Abfragen mindestens 24 Stunden vor der Migration zu aktivieren, um eine Baseline vor der Migration zu erstellen.

Nachdem Sie genügend Daten in den DNS-Abfragelogs erfasst haben, können Sie die Migration zu zonalem DNS durchführen. Sie können die DNS-Auflösungsraten während der Migration beobachten, um sicherzustellen, dass die Migration nicht zu einer Zunahme von Fehlern bei DNS-Abfragen führt.

DNS-Namensauflösungsraten analysieren und vergleichen

Verwenden Sie die folgenden Informationen, um die Fehler- und Erfolgsraten zu analysieren und zu vergleichen.

  • Loganzahl: Für jede Abfrage und jeden Zeitraum zeigt der Log-Explorer die Anzahl der gefundenen Logeinträge an. Ein deutlicher Anstieg der NXDOMAIN-Anzahl nach der Migration für DNS-Namen, die zuvor aufgelöst wurden (mit NOERROR), könnte ein Problem darstellen.

  • Histogramm: Die Log-Explorer-Oberfläche enthält ein Histogramm. Wenn Ihre Abfragen ausgeführt werden, zeigt das Histogramm die Häufigkeit übereinstimmender Logeinträge im ausgewählten Zeitraum an. Dies ist nützlich, um Folgendes zu visualisieren:

    • Eine Baseline-Rate von NXDOMAIN-Logeinträgen vor der Migration.
    • Spitzen bei NXDOMAIN-Logeinträgen unmittelbar nach der Migration.
    • Änderungen der Rate von NOERROR-Logeinträgen.

    Klicken Sie auf Einstellungen, dann auf Ansehen, und dann auf Zeitachse anzeigen , um das Histogramm aufzurufen.

Nächste Schritte