Genaue Zeit für U4 Compute Engine-Instanzen konfigurieren

Auf dieser Seite wird beschrieben, wie Sie die genaue Zeit für eine U4-Compute Engine-Instanz konfigurieren und wie Sie das Monitoring konfigurieren, damit Sie die Genauigkeit der Zeitsynchronisierung sehen können.

Funktionsweise

Google Cloud Die ULL-Lösung (Ultra Low Latency) verwendet das Firefly-Protokoll zur Taktzeit-Synchronisierung, um eine Synchronisierung auf Nanosekundenebene zu ermöglichen. Firefly führt automatisch die folgenden Schritte aus:

  • Führt eine interne Synchronisierung durch, um die Uhren der physischen Netzwerkschnittstellen (NICs) aller U4-Instanz-Hostserver miteinander zu synchronisieren.
  • Führt eine externe Synchronisierung durch, um die physischen NIC-Uhren aller U4-Instanz-Hostserver mit der koordinierten Weltzeit (UTC) zu synchronisieren.

Da die physischen NIC-Uhren von Hostservern, auf denen U4-Instanzen ausgeführt werden, automatisch von Firefly synchronisiert werden, können Sie die genaue Zeit für Ihre Instanz konfigurieren, indem Sie die Systemuhr der Instanz mit der physischen NIC-Uhr des Hostservers synchronisieren.

Weitere Informationen zu Firefly finden Sie im Google Cloud Blogbeitrag Understanding the Firefly clock synchronization protocol.

Hinweis

Bevor Sie die genaue Zeit für U4 Compute Engine-Instanzen konfigurieren, lesen Sie die folgenden Abschnitte.

U4-Instanz mit dem erforderlichen Image erstellen

Erstellen Sie eine U4-Compute Engine-Instanz mit dem von Google bereitgestellten Image für Tests. Wählen Sie das Verfahren aus, das Ihrem Anwendungsfall entspricht:

Prüfen, ob keine anderen Dienste zur Synchronisierung der Uhrzeit ausgeführt werden

In den Verfahren auf dieser Seite wird chrony als empfohlener Client für die Uhrzeitsynchronisierung verwendet. Bevor Sie beginnen, sollten Sie sicherstellen, dass auf Ihrer Instanz keine anderen Zeitsynchronisierungsdienste wie ntpd, systemd-timesyncd oder phc2sys ausgeführt werden. Unerwartete Interaktionen mit diesen Diensten können zu Fehlern in Ihrer chrony-Konfiguration führen.

In chrony-Version 4.7 und höher können Sie das chronyd-Warnungslog nach anderen Diensten zur Uhrzeitsynchronisierung durchsuchen, indem Sie den folgenden Befehl ausführen:

journalctl -u chronyd

Wenn ein anderer Dienst zur Synchronisierung der Uhrzeit ausgeführt wird, enthält die Ausgabe eine Warnmeldung wie die folgende: System clock interference detected (another NTP client?).

chrony so konfigurieren, dass sie erst geladen wird, wenn die Netzwerktreiber stabil sind

In einigen Fällen wird systemd möglicherweise geladen, bevor die Initialisierung der Treiber der Netzwerkschnittstelle abgeschlossen ist. Dies kann dazu führen, dass chrony nicht gestartet werden kann, weil das PTP-Hardwareuhr-Gerät (PHC) nicht initialisiert werden kann.chrony

Um das oben genannte Problem zu vermeiden, überschreiben Sie die chrony-Gerätedatei von systemd, um zu warten, bis PHC-Geräte bereit sind:

  1. Führen Sie den Bearbeitungsbefehl aus:

    systemctl edit chronyd
    
  2. Fügen Sie den Überschreibungsbefehl hinzu, der Ihrem Instanztyp entspricht:

    • Für U4P- und U4C-Instanzen:

      [Unit]
      After=dev-ptp0.device dev-ptp1.device dev-ptp2.device
      Requires=dev-ptp0.device dev-ptp1.device dev-ptp2.device
      
    • Für U4S-Instanzen:

      [Unit]
      After=dev-ptp0.device
      Requires=dev-ptp0.device
      
  3. Starten Sie den Dienst neu. Mit dem Befehl systemctl edit, den Sie zuvor ausgeführt haben, wurde der Daemon automatisch neu geladen. Wir empfehlen Ihnen jedoch, den folgenden Befehl auszuführen, um sicherzustellen, dass chrony nach Ihren Änderungen ausgeführt wird.

    systemctl restart chronyd
    

chrony für die Verwendung der mit Firefly synchronisierten physischen NIC-Uhr konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie chrony konfigurieren, um die Systemuhr Ihrer Instanz mit der physischen NIC-Uhr auf dem Hostserver Ihrer Instanz zu synchronisieren, die bereits von Firefly synchronisiert wird.

Die virtuellen Netzwerkschnittstellen (vNICs) Ihrer U4-Instanz, wie im Gastbetriebssystem dargestellt (z. B. eth0), werden physischen NICs auf dem Hostserver der Instanz zugeordnet. Eine bestimmte virtuelle NIC kann über das entsprechende PTP-Hardwareuhrgerät (PHC) auf die physische NIC-Uhr zugreifen:

  • PHC-Gerätenamen unter Linux haben das folgende Format: /dev/ptpNUMBER, wobei NUMBER vom Linux-Kernel entsprechend der Initialisierungsreihenfolge des Geräts bestimmt wird. Beispiele für PHC-Gerätenamen: /dev/ptp0, /dev/ptp1, /dev/ptp2.

  • Wenn Sie eine physische NIC-Uhr als Quelle für die Synchronisierung angeben möchten, muss die chrony-Konfiguration das entsprechende PHC-Gerät verwenden oder darauf verweisen.

In den folgenden Abschnitten finden Sie Beispiele für die Konfiguration von chrony gemäß den oben genannten Anforderungen. Sehen Sie sich den Abschnitt an, der Ihrem Instanztyp und Ihrer chrony-Version entspricht:

chrony 4.7 und höher auf U4P- und U4C-Instanzen konfigurieren

In chrony-Version 4.7 und höher kann ein vNIC-Name (z. B. eth0) als Taktquelle angegeben werden. Er wird automatisch in das entsprechende PTP-Hardwaretaktgerät (PHC) aufgelöst, das den physischen NIC-Takt darstellt.

So konfigurieren Sie chrony Version 4.7 und höher auf einer U4P- oder U4C-Instanz:

  1. Fügen Sie der Konfigurationsdatei chrony, /etc/chrony.conf, Folgendes hinzu. Die Datei darf nur die folgende Konfiguration enthalten. Entfernen oder überschreiben Sie alle vorhandenen Inhalte der Datei.

    # Record the rate at which the system clock gains/loses time.
    driftfile /var/lib/chrony/drift
    
    # Allow the system clock to be stepped in the first three updates
    # if its offset is larger than 1 micro-second.
    makestep 0.0000001 3
    
    # Specify directory for log files.
    logdir /var/log/chrony
    
    # Select which information is logged.
    log measurements statistics tracking refclocks
    
    # U4 Compute Engine instance clocks are 200ppb accurate
    maxclockerror 0.2
    
    # Configure all clocks for tracking, but select only one of them as source.
    refclock PHC eth0:nocrossts poll -1 noselect
    refclock PHC eth1:nocrossts poll -1
    refclock PHC eth2:nocrossts poll -1 noselect
    
    # The following lines opportunistically enable Precision Time Measurement (PTM) based clock synchronization.
    # Note that PTM can potentially result in a (constant) clock skew of up to 700 nanoseconds
    # which is not accounted for in chrony's accuracy metrics.
    refclock PHC eth0 poll -1 noselect
    refclock PHC eth1 poll -1 noselect
    refclock PHC eth2 poll -1 noselect
  2. Starten Sie chrony neu, um die Konfiguration anzuwenden:

    systemctl restart chronyd
    

    chrony protokolliert Statistiken zur Uhrensynchronisierung in /var/log/chrony/tracking.log und verwendet dabei die PTP-Hardwareuhr von eth1 als Zeitquelle.

chrony 4.6.1 und früher auf U4P- und U4C-Instanzen konfigurieren

Für chrony-Versionen 4.6.1 und früher müssen Sie den Gerätenamen der PTP-Hardwareuhr (PHC) manuell in Ihrer Konfigurationsdatei angeben.

So konfigurieren Sie chrony-Versionen 4.6.1 und früher auf einer U4P- oder U4C-Instanz:

  1. Rufen Sie die Indexnummer des PHC-Geräts ab, das einer vNIC zugeordnet ist. Im folgenden Beispiel wird eth0 verwendet.

    ethtool -T eth0
    
    1. Prüfen Sie die Ausgabe auf PTP Hardware Clock:NUMBER.

      In dieser Beispielausgabe wird PTP Hardware Clock: 1 angezeigt, was /dev/ptp1 entspricht.

      Time stamping parameters for eth0:
      Capabilities:
              hardware-receive
              software-receive
              software-system-clock
              hardware-raw-clock
      PTP Hardware Clock: 1
      Hardware Transmit Timestamp Modes:
              off
      Hardware Receive Filter Modes:
              none
              all
      
  2. Fügen Sie der Konfigurationsdatei chrony, /etc/chrony.conf, Folgendes hinzu. Die Datei darf nur die folgende Konfiguration enthalten. Entfernen oder überschreiben Sie alle vorhandenen Inhalte der Datei.

    Die ethtool-Ausgabe im vorherigen Schritt hat gezeigt, dass eth0 /dev/ptp1 verwendet. Im folgenden Beispiel wird die Systemuhr mit der entsprechenden physischen NIC-Uhr für eth0 synchronisiert, indem refclock PHC /dev/ptp1:nocrossts poll -1 angegeben wird.

    # Record the rate at which the system clock gains/loses time.
    driftfile /var/lib/chrony/drift
    
    # Allow the system clock to be stepped in the first three updates
    # if its offset is larger than 1 micro-second.
    makestep 0.0000001 3
    
    # Enable kernel synchronization of the real-time clock (RTC).
    rtcsync
    
    # Save NTS keys and cookies.
    ntsdumpdir /var/lib/chrony
    
    # Specify directory for log files.
    logdir /var/log/chrony
    
    # Select which information is logged.
    log measurements statistics tracking refclocks
    
    # U4 Compute Engine instance clocks are 200ppb accurate
    maxclockerror 0.2
    
    # Configure all clocks for tracking, but select only one of them as source.
    refclock PHC /dev/ptp0:nocrossts poll -1 noselect
    refclock PHC /dev/ptp1:nocrossts poll -1
    refclock PHC /dev/ptp2:nocrossts poll -1 noselect
    
    # The following lines opportunistically enable Precision Time Measurement (PTM) based clock synchronization.
    # Note that PTM can potentially result in a (constant) clock skew of up to 700 nanoseconds
    # which is not accounted for in chrony's accuracy metrics.
    refclock PHC /dev/ptp0 poll -1 noselect
    refclock PHC /dev/ptp1 poll -1 noselect
    refclock PHC /dev/ptp2 poll -1 noselect
  3. Starten Sie chrony neu, um die Konfiguration anzuwenden:

    systemctl restart chronyd
    

    chrony protokolliert Statistiken zur Uhrensynchronisierung in /var/log/chrony/tracking.log und verwendet dabei die PTP-Hardwareuhr von eth0 als Zeitquelle.

chrony 4.7 und höher auf U4S-Instanzen konfigurieren

Wir empfehlen, für U4S-Instanzen chrony-Versionen 4.7 und höher zu verwenden. Bei Verwendung älterer Versionen kann es häufig zu Fehlern kommen, da das Compute Engine-Gerät zur Zeitsynchronisierung für virtuelle Maschinen (VM) (ptp_kvm) Änderungen an den Indexnummern von PTP-Hardwareuhrgeräten (PHC) verursachen kann.

Diese Beispielkonfiguration für U4S-Instanzen ähnelt der für U4P- und U4C-Instanzen, weist aber die folgenden Unterschiede auf:

  • Dieses Beispiel enthält eine einzelne vNIC. Eine U4S-Instanz kann mehrere vNICs haben, aber alle vNICs werden von derselben physischen NIC unterstützt und greifen auf denselben physischen NIC-Takt zu.
  • Präzise Zeitmessung (PTM) ist nicht verfügbar.

So konfigurieren Sie chrony-Versionen 4.7 und höher auf einer U4S-Instanz:

  1. Fügen Sie der Konfigurationsdatei chrony, /etc/chrony.conf, Folgendes hinzu. Die Datei darf nur die folgende Konfiguration enthalten. Entfernen oder überschreiben Sie alle vorhandenen Inhalte der Datei.

    # Record the rate at which the system clock gains/loses time.
    driftfile /var/lib/chrony/drift
    
    # Allow the system clock to be stepped in the first three updates
    # if its offset is larger than 1 micro-second.
    makestep 0.0000001 3
    
    # Specify directory for log files.
    logdir /var/log/chrony
    
    # Select which information is logged.
    log measurements statistics tracking refclocks
    
    # U4 Compute Engine instance clocks are 200ppb accurate
    maxclockerror 0.2
    
    # Configure all clocks for tracking, but select only one of them as source.
    refclock PHC eth0:nocrossts poll -1
  2. Starten Sie chrony neu, um die Konfiguration anzuwenden:

    systemctl restart chronyd
    

    chrony protokolliert Statistiken zur Uhrensynchronisierung in /var/log/chrony/tracking.log und verwendet dabei die PTP-Hardwareuhr von eth0 als Zeitquelle.

chrony-Konfiguration prüfen

Führen Sie den folgenden Befehl aus, um zu prüfen, ob chrony richtig konfiguriert ist:

chronyc sourcestats

Eine erfolgreiche Konfiguration führt zu einer Ausgabe, die in etwa so aussieht:

Name/IP Address             NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
PHC0                        5   3     2     -0.002      0.014     +9ns     2ns
PHC1                        5   3     2     -0.003      0.007     -0ns     1ns
PHC2                        5   3     2     -0.004      0.016    +33ns     2ns
PHC3                        5   5     2     +0.002      0.078   +135ns    10ns
PHC4                        5   3     2     -0.005      0.077   +130ns     9ns
PHC5                        5   5     2     -0.006      0.131   +123ns    16ns

Wenn der Befehl eine unerwartete Ausgabe zurückgibt, lesen Sie den Abschnitt Fehlerbehebung.

chrony-Konfiguration ändern

Wenn Sie ändern möchten, mit welcher physischen NIC die Systemuhr Ihrer Instanz synchronisiert werden soll, können Sie die Konfiguration so aktualisieren:

  1. Entfernen Sie noselect aus der Zeile, die den Namen der virtuellen NIC enthält, für die Sie die entsprechende physische NIC-Uhr verwenden möchten.
  2. Fügen Sie noselect der Zeile hinzu, die den Namen der virtuellen NIC enthält, für die Sie die Verwendung der entsprechenden physischen NIC-Uhr beenden möchten.
  3. Wenden Sie die neue Konfiguration an, indem Sie chronyd neu starten: systemctl restart chronyd.

Zeitsynchronisierung überwachen

In diesem Abschnitt werden die Messwerte beschrieben, die für die Zeitsynchronisierung verfügbar sind, und wie Sie sie verwenden können, um die Genauigkeit der Zeitsynchronisierung zu überwachen.

Verfügbare Messwerte für die Zeitsynchronisierung

Sie können die folgenden Messwerte verwenden, um die Zeitsynchronisierung zu überwachen:

Messung Verfügbarer Messwert und Beschreibung
Instanzsystemuhr mit physischer NIC-Uhr synchronisieren logging.googleapis.com/user/phc-clock-max-error

Dieser Messwert gibt an, wie genau die Systemuhr der Instanz mit der Uhr der physischen NIC auf dem Hostserver synchronisiert ist.

Sie müssen diesen Messwert konfigurieren, indem Sie ihn über den Ops-Agent erfassen und einen logbasierten Messwert erstellen, wie unter Benutzerdefinierten Messwert für die Systemuhr der Instanz konfigurieren beschrieben. Dadurch wird auch ein benutzerdefiniertes Dashboard erstellt. Außerdem können Sie diesen Messwert in den unter Cloud Monitoring-Messwerte verwenden beschriebenen Verfahren verwenden.

Physische NIC-Uhr auf UTC einstellen compute.googleapis.com/instance/time/firefly_utc_traceable_uncertainty

Dieser Messwert gibt die maximale Fehlergrenze der physischen NIC-Uhr im Vergleich zur tatsächlichen UTC-Zeit an. Sie wird automatisch an Cloud Monitoring gemeldet.

Sie können diesen Messwert aufrufen, Benachrichtigungsrichtlinien definieren und benutzerdefinierte Dashboards erstellen, wie unter Cloud Monitoring-Messwerte verwenden beschrieben.

Allgemeiner Status der physischen NIC-Uhr compute.googleapis.com/instance/time/firefly_nic_sync_healthy

Dieser boolesche Messwert gibt den allgemeinen Zustand der physischen NIC-Uhr an, einschließlich der Synchronisierung zwischen NICs und zwischen NIC und UTC. Sie wird automatisch an Cloud Monitoring gemeldet.

Sie können diesen Messwert aufrufen, Benachrichtigungsrichtlinien definieren und benutzerdefinierte Dashboards erstellen, wie unter Cloud Monitoring-Messwerte verwenden beschrieben.

Informationen zur Aufbewahrungsdauer von Messwertdaten in Cloud Monitoring finden Sie unter Datenaufbewahrung in Kontingente und Limits für Cloud Monitoring. Informationen zum Exportieren von Messwerten für die Langzeitanalyse finden Sie in der Dokumentation zum Cloud Architecture Center unter Cloud Monitoring-Messwerte exportieren.

Benutzerdefinierten Messwert für die Systemuhr der Instanz konfigurieren

In diesem Abschnitt finden Sie eine Beispielkonfiguration für das Monitoring, die Folgendes bewirkt:

  • Konfiguriert den Ops-Agent so, dass das Protokoll von chrony für die Synchronisationsgenauigkeit aus Ihrer Instanz erfasst wird.
  • Konfiguriert Cloud Monitoring, um den entsprechenden Log von allen Instanzen in Ihrem Projekt als logbasierten Messwert aufzunehmen.

Google Cloud Ops-Agent auf Ihrer Instanz konfigurieren

So konfigurieren Sie den Ops-Agent zum Erfassen des für die Überwachung erforderlichen Messwerts:

  1. Installieren Sie den Ops-Agent auf Ihrer Instanz, falls noch nicht geschehen.

  2. Fügen Sie der Datei /etc/google-cloud-ops-agent/config.yaml die folgende Konfiguration hinzu:

    logging:
      receivers:
        chrony_tracking_receiver:
          type: files
          include_paths:
            - /var/log/chrony/tracking.log
      processors:
        chrony_tracking_processor:
          type: parse_regex
          regex: "^.*PHC.*  (?<max_error>[-\d\.eE]+)$"
      service:
        pipelines:
          chrony_tracking_pipeline:
            receivers: [chrony_tracking_receiver]
            processors: [chrony_tracking_processor]
  3. Starten Sie den Ops-Agent mit dem folgenden Befehl neu:

    systemctl restart google-cloud-ops-agent
    

Logbasierten Messwert und Dashboard in Ihrem Projekt konfigurieren

Führen Sie das folgende Script zum Einrichten von Logging und Dashboard aus, um die Zeitabgleichsüberwachung für die Instanzen in Ihrem Projekt zu konfigurieren. Mit diesem Skript können Sie die folgenden Aufgaben ausführen:

  • Damit werden die entsprechenden Berechtigungen für das Dienstkonto festgelegt, das dem Projekt Ihrer Instanz zugeordnet ist. Das Skript geht davon aus, dass das für die Instanzen verwendete Dienstkonto das Standarddienstkonto für das Projekt ist. Ersetzen Sie SERVICE_ACCOUNT_EMAIL bei Bedarf durch einen anderen Wert.
  • Er erstellt einen logbasierten Messwert, mit dem die Genauigkeit der Zeitsynchronisierung zwischen der Systemuhr der Instanz und der physischen Netzwerkkarte-Uhr auf dem Hostserver der Instanz gemessen wird.
  • Es wird ein Dashboard erstellt, in dem die Genauigkeit der Zeitsynchronisierung basierend auf dem Messwert angezeigt wird.

Führen Sie das folgende Skript aus, um die vorherigen Aufgaben auszuführen. Nachdem das Skript ausgeführt wurde, können Sie im erstellten Dashboard die Daten zur Taktgenauigkeit für die Instanzen Ihres Projekts ansehen.

#!/bin/bash

if [ -z "$1" ]; then
    echo "Usage: setup_logging.sh <project_id>" >&2
    exit 1
fi

PROJECT_ID="$1"
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID  --format="value(projectNumber)")
SERVICE_ACCOUNT_EMAIL=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com

# Grant permissions:

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
    --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \
    --role="roles/compute.instanceAdmin"

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
    --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \
    --role="roles/monitoring.metricWriter"

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
    --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \
    --role="roles/logging.logWriter"

# Configure log-based metric
METRIC_CONF='
{
  "name": "phc-clock-max-error",
  "description": "Maximum error of the VM clock from the host clock exposed by ptp_kvm",
  "filter": "logName=~\".*/logs/chrony_tracking_receiver\"",
  "metricDescriptor": {
    "metricKind": "DELTA",
    "valueType": "DISTRIBUTION",
    "unit": "s",
    "labels": [ { "key": "instance_id", "valueType": "STRING",
          "description": "Instance ID for the source instance" } ]
  },
  "valueExtractor": "REGEXP_EXTRACT(jsonPayload.max_error, \"(.*)\")",
  "bucketOptions": {
    "explicitBuckets": {
      "bounds": [
        0.0, 1.0E-6, 5.0E-6, 1.0E-5, 1.0E-4, 0.001, 0.01, 0.1, 1.0
      ]
    }
  },
  "labelExtractors": {
    "instance_id": "REGEXP_EXTRACT(resource.labels.instance_id, \"(.*)\")"
  }
}
'
echo "$METRIC_CONF" > /tmp/clock-error-metric.json
gcloud logging metrics create --project=${PROJECT_ID} phc-clock-max-error --config-from-file=/tmp/clock-error-metric.json

# Create a dashboard plotting the clock accuracy

DASHBOARD_CONF='
{
  "displayName": "Chrony Accuracy",
  "dashboardFilters": [],
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 28,
        "width": 28,
        "widget": {
          "xyChart": {
            "chartOptions": {
              "displayHorizontal": false,
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "prometheusQuery": "(\n    histogram_quantile(\n        1,\n        sum by (le, instance_id, monitored_resource) (\n            increase(\n                logging_googleapis_com:user_phc_clock_max_error_bucket{monitored_resource=\"gce_instance\"}[1m]\n            )\n        )\n    ) * 1000000000\n)",
                  "unitOverride": "ns"
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "Clock Accuracy",
              "scale": "LINEAR"
            }
          }
        }
      }
    ]
  }
}
'

echo "$DASHBOARD_CONF" > /tmp/metrics-dashboard.json

gcloud monitoring dashboards create --project=${PROJECT_ID} --config-from-file=/tmp/metrics-dashboard.json

Cloud Monitoring-Messwerte verwenden

In den folgenden Abschnitten wird beschrieben, wie Sie Cloud Monitoring-Messwerte verwenden. Sie können jeden der verfügbaren Messwerte für die Zeitsynchronisierung in den folgenden Abschnitten verwenden.

Zusätzlich zur Google Cloud Konsole können Sie über die Monitoring API benutzerdefinierte Dashboards erstellen, Benachrichtigungen einrichten und Messwerte abfragen.

Messwerte in Monitoring ansehen

In diesem Abschnitt wird beschrieben, wie Sie Messwerte in Monitoring aufrufen.

Console

So rufen Sie mit dem Metrics Explorer die Messwerte für eine überwachte Ressource auf:

  1. Rufen Sie in der Google Cloud Console das auf der Seite des Metrics Explorer auf:

    Zu Metrics Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wählen Sie in der Symbolleiste der Google Cloud Console Ihr Projekt von Google Cloud aus. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
  3. Maximieren Sie im Element Messwert das Menü Messwert auswählen, geben Sie VM instance in die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:
    1. Wählen Sie im Menü Aktive Ressourcen die Option VM-Instanz aus.
    2. Einen Messwert wählen Sie in den Menüs Aktive Messwertkategorien und Aktive Messwerte aus. Eine Liste der verfügbaren Messwerte finden Sie unter Verfügbare Messwerte für die Zeitsynchronisierung.
    3. Klicken Sie auf Übernehmen.
  4. Verwenden Sie das Element Filter, um Filter hinzuzufügen, mit denen Zeitreihen aus den Abfrageergebnissen entfernt werden.

  5. Konfigurieren Sie, wie die Daten angezeigt werden. Standardmäßig werden die Messwerte aus allen Instanzen und physischen NICs aggregiert. So rufen Sie Messwerte pro NIC und pro Instanz auf: Wählen Sie im Element Aggregation die Option Nicht aggregiert aus.

    Weitere Informationen zum Konfigurieren eines Diagramms finden Sie unter Messwerte bei Verwendung von Metrics Explorer auswählen.

Benachrichtigungsrichtlinien definieren

In diesem Abschnitt wird beschrieben, wie Sie Benachrichtigungsrichtlinien definieren.

Wenn Sie konfigurieren, wie Monitoring eine Bedingung auswertet, wenn keine Daten mehr eingehen, empfehlen wir die Option Fehlende Datenpunkte werden als Werte behandelt, die gegen die Richtlinienbedingung verstoßen, da so auch unbemerkte Datenverluste erfasst werden. Diese Einstellung führt jedoch zu fälschlicherweise positiven Benachrichtigungen, wenn eine Instanz gelöscht wird.

Console

Sie können Benachrichtigungsrichtlinien erstellen, um Messwerte zu beobachten und sich informieren zu lassen, wenn diese gegen eine Bedingung verstoßen.

  1. Rufen Sie in der Google Cloud Console die Seite  Benachrichtigungen auf:

    Zu Benachrichtigungen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wenn Sie keine Benachrichtigungskanäle erstellt haben und Benachrichtigungen erhalten möchten, klicken Sie auf Benachrichtigungskanäle bearbeiten und fügen Sie Benachrichtigungskanäle hinzu. Kehren Sie nach dem Hinzufügen der Kanäle zur Seite Benachrichtigungen zurück.
  3. Klicken Sie auf der Seite Benachrichtigungen auf Richtlinie erstellen.
  4. Maximieren Sie zum Auswählen des Messwerts das Menü Messwert auswählen und gehen Sie dann so vor:
    1. Um das Menü auf relevante Einträge zu beschränken, geben Sie in die Filterleiste VM Instance ein. Wenn nach dem Filtern des Menüs keine Ergebnisse angezeigt werden, deaktivieren Sie die Option Nur aktive Ressourcen und Messwerte anzeigen.
    2. Wählen Sie unter Ressourcentyp die Option VM-Instanz aus.
    3. Wählen Sie als Messwertkategorie Instanz aus.
    4. Wählen Sie für Messwert einen Messwert aus der Liste unter Verfügbare Messwerte für die Zeitsynchronisierung aus.
    5. Klicken Sie auf Anwenden.
  5. Klicken Sie auf Weiter.
  6. Die Einstellungen auf der Seite Benachrichtigungstrigger konfigurieren bestimmen, wann die Benachrichtigung ausgelöst wird. Wählen Sie einen Bedingungstyp aus, und geben Sie ggf. einen Schwellenwert an. Weitere Informationen finden Sie unter Benachrichtigungsrichtlinien mit Messwertschwellen erstellen.
  7. Klicken Sie auf Weiter.
  8. Optional: Klicken Sie auf Benachrichtigungskanäle, um Benachrichtigungen zu Ihrer Benachrichtigungsrichtlinie hinzuzufügen. Wählen Sie im Dialogfeld einen oder mehrere Benachrichtigungskanäle aus dem Menü aus, und klicken Sie dann auf OK.
  9. Optional: Aktualisieren Sie die Dauer bis zur automatischen Schließung von Vorfällen. Dieses Feld bestimmt, wann Monitoring Vorfälle ohne Messwertdaten schließt.
  10. Optional: Klicken Sie auf Dokumentation, und geben Sie alle Informationen an, die in einer Benachrichtigung angezeigt werden sollen.
  11. Klicken Sie auf Benachrichtigungsname, und geben Sie einen Namen für die Benachrichtigungsrichtlinie ein.
  12. Klicken Sie auf Richtlinie erstellen.
Weitere Informationen finden Sie unter Benachrichtigungen.

Benutzerdefinierte Monitoring-Dashboards erstellen

In diesem Abschnitt wird beschrieben, wie Sie benutzerdefinierte Dashboards erstellen.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Dashboards :

    Zu Dashboards

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Klicken Sie auf Dashboard erstellen
  3. Optional: Aktualisieren Sie den Dashboard-Titel mit einem aussagekräftigen Namen für Ihr Dashboard.
  4. Klicken Sie für jedes Widget, das Sie dem Dashboard hinzufügen möchten, auf Widget hinzufügen, füllen Sie das Dialogfeld aus und wählen Sie dann Übernehmen aus.

    Weitere Informationen zum Hinzufügen von Widgets finden Sie auf den folgenden Seiten:

Fehlerbehebung

Beim Prüfen der chrony-Konfiguration erhalten Sie möglicherweise eine unerwartete Ausgabe, z. B. die folgende Ausgabe, die angibt, dass chrony nicht gestartet werden konnte:

506 Cannot talk to daemon

Zur Fehlerbehebung können Sie die journald-Logs für chrony prüfen:

journalctl -u chronyd.service

Die folgende Beispielausgabe zeigt einen Fehler, der auftritt, wenn Sie eine Konfiguration anwenden, die für chrony 4.7 und höher vorgesehen ist, während eine frühere Version von chrony auf Ihrer Instanz installiert ist.

Feb 19 06:19:42 host-name systemd[1]: Starting chronyd.service - NTP client/server...
Feb 19 06:19:42 host-name chronyd[35160]: chronyd version 4.6.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEBUG)
Feb 19 06:19:42 host-name chronyd[35160]: Setting filter length for PHC0 to 1
Feb 19 06:19:42 host-name chronyd[35160]: Could not open eth0 : No such file or directory
Feb 19 06:19:42 host-name chronyd[35160]: Fatal error : Could not open PHC
Feb 19 06:19:42 host-name chronyd[35157]: Could not open PHC
Feb 19 06:19:42 host-name systemd[1]: chronyd.service: Control process exited, code=exited, status=1/FAILURE
Feb 19 06:19:42 host-name systemd[1]: chronyd.service: Failed with result 'exit-code'.
Feb 19 06:19:42 host-name systemd[1]: Failed to start chronyd.service - NTP client/server.

Beschränkungen

Beachten Sie die folgenden Einschränkungen:

  • Die Messwerte firefly_utc_traceable_uncertainty und firefly_nic_sync_healthy sind nur für U4P- und U4C-Instanzen verfügbar. Diese Messwerte sind für U4S-Instanzen nicht verfügbar.