Configurer une heure précise pour les instances Compute Engine U4

Cette page explique comment configurer une heure précise pour une instance Compute Engine U4 et comment configurer la surveillance afin de pouvoir afficher la précision de la synchronisation de l'heure.

Fonctionnement

La solution à latence ultra-faible (ULL, Ultra Low Latency) utilise le protocole de synchronisation d'horloge Firefly pour fournir une synchronisation au niveau de la nanoseconde.Google Cloud Firefly effectue automatiquement les opérations suivantes :

  • Effectue une synchronisation interne pour synchroniser les horloges des cartes d'interface réseau physiques de tous les serveurs hôtes des instances U4 entre elles.
  • Effectue une synchronisation externe pour synchroniser les horloges des cartes d'interface réseau physiques de tous les serveurs hôtes des instances U4 avec le temps universel coordonné (UTC).

Étant donné que les horloges des cartes d'interface réseau physiques des serveurs hôtes qui exécutent des instances U4 sont automatiquement synchronisées par Firefly, vous pouvez configurer une heure précise pour votre instance en synchronisant l'horloge système de l'instance avec l'horloge de la carte d'interface réseau physique de son serveur hôte.

Pour en savoir plus sur Firefly, consultez l'article de blog suivant : Understanding the Firefly clock synchronization protocol (Comprendre le protocole de synchronisation d'horloge Firefly). Google Cloud

Avant de commencer

Avant de configurer une heure précise pour les instances Compute Engine U4, consultez les sections suivantes.

Créer une instance U4 avec l'image requise

Créez une instance Compute Engine U4 à l'aide de l'image fournie par Google pour les tests. Consultez la procédure qui correspond à votre cas d'utilisation :

Assurez-vous qu'aucun autre service de synchronisation de l'horloge n'est en cours d'exécution.

Les procédures décrites sur cette page utilisent chrony comme client de synchronisation d'horloge recommandé. Avant de commencer, assurez-vous qu'aucun autre service de synchronisation d'horloge n'est en cours d'exécution sur votre instance, comme ntpd, systemd-timesyncd ou phc2sys. Des interactions inattendues avec ces services peuvent entraîner des erreurs dans la configuration de votre chrony.

Dans chrony version 4.7 et ultérieure, vous pouvez consulter le journal des avertissements chronyd pour d'autres services de synchronisation de l'horloge en exécutant la commande suivante :

journalctl -u chronyd

Si un autre service de synchronisation de l'horloge est en cours d'exécution, le résultat inclut un message d'avertissement tel que System clock interference detected (another NTP client?).

Configurer chrony pour qu'il ne se charge qu'une fois les pilotes réseau stables

Dans certains cas, systemd peut charger chrony avant la fin de l'initialisation des pilotes d'interface réseau, ce qui peut entraîner l'échec du démarrage de chrony, car il ne peut pas initialiser l'appareil PTP hardware clock (PHC).

Pour éviter le problème précédent, remplacez le fichier d'unité systemd de chrony afin d'attendre que les appareils PHC soient prêts :

  1. Exécutez la commande d'édition :

    systemctl edit chronyd
    
  2. Ajoutez le remplacement qui correspond à votre type d'instance :

    • Pour les instances U4P et U4C :

      [Unit]
      After=dev-ptp0.device dev-ptp1.device dev-ptp2.device
      Requires=dev-ptp0.device dev-ptp1.device dev-ptp2.device
      
    • Pour les instances U4S :

      [Unit]
      After=dev-ptp0.device
      Requires=dev-ptp0.device
      
  3. Redémarrez le service. Bien que la commande systemctl edit que vous avez exécutée précédemment ait rechargé automatiquement le démon, nous vous recommandons d'exécuter la commande suivante pour vous assurer que chrony est en cours d'exécution après vos modifications.

    systemctl restart chronyd
    

Configurer chrony pour utiliser l'horloge de la carte d'interface réseau physique synchronisée avec Firefly

Cette section explique comment configurer chrony pour synchroniser l'horloge système de votre instance avec l'horloge de la carte d'interface réseau physique sur le serveur hôte de votre instance, qui est déjà synchronisée par Firefly.

Les cartes d'interface réseau virtuelles (vNIC) de votre instance U4, telles qu'elles apparaissent dans l'OS invité (par exemple, eth0), sont mappées sur les cartes d'interface réseau physiques du serveur hôte de l'instance. Une carte d'interface réseau virtuelle donnée peut accéder à l'horloge de la carte d'interface réseau physique à l'aide de l'appareil PTP hardware clock (PHC) correspondant :

  • Les noms des périphériques PHC sous Linux sont au format suivant : /dev/ptpNUMBER, où NUMBER est déterminé par le noyau Linux en fonction de l'ordre d'initialisation des périphériques. Par exemple, consultez les noms d'appareils PHC suivants : /dev/ptp0, /dev/ptp1, /dev/ptp2.

  • Pour spécifier une horloge de carte d'interface réseau physique comme source de synchronisation, la configuration chrony doit utiliser ou résoudre le périphérique PHC correspondant.

Chacune des sections suivantes fournit des exemples de configuration de chrony en fonction des exigences précédentes. Consultez la section correspondant à votre type d'instance et à la version de chrony :

Configurer chrony 4.7 et versions ultérieures sur les instances U4P et U4C

chrony version 4.7 et ultérieures permettent de spécifier un nom de carte d'interface réseau virtuelle (comme eth0) comme source d'horloge et le résolvent automatiquement en périphérique d'horloge matérielle PTP (PHC) correspondant qui représente l'horloge de la carte d'interface réseau physique.

Pour configurer chrony version 4.7 ou ultérieure sur une instance U4P ou U4C, procédez comme suit :

  1. Ajoutez ce qui suit au fichier de configuration chrony, /etc/chrony.conf. Le fichier ne doit contenir que la configuration suivante. Assurez-vous de supprimer ou d'écraser tout contenu préexistant du fichier.

    # 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. Pour appliquer la configuration, redémarrez chrony en exécutant la commande suivante :

    systemctl restart chronyd
    

    chrony enregistre les statistiques de synchronisation de l'horloge dans /var/log/chrony/tracking.log en utilisant l'horloge matérielle PTP de eth1 comme source de temps.

Configurer chrony 4.6.1 ou version antérieure sur les instances U4P et U4C

Les versions 4.6.1 et antérieures de chrony vous obligent à spécifier manuellement le nom de l'appareil d'horloge matérielle PTP (PHC) dans votre fichier de configuration.

Pour configurer les versions 4.6.1 et antérieures de chrony sur une instance U4P ou U4C, procédez comme suit :

  1. Obtenez le numéro d'index de l'appareil PHC associé à une carte d'interface réseau virtuelle. L'exemple suivant utilise eth0.

    ethtool -T eth0
    
    1. Examiner le résultat pour PTP Hardware Clock:NUMBER

      Cet exemple de résultat montre PTP Hardware Clock: 1, qui correspond à /dev/ptp1.

      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. Ajoutez ce qui suit au fichier de configuration chrony, /etc/chrony.conf. Le fichier ne doit contenir que la configuration suivante. Assurez-vous de supprimer ou d'écraser tout contenu préexistant du fichier.

    La sortie ethtool de l'étape précédente a montré que eth0 utilise /dev/ptp1. L'exemple suivant synchronise l'horloge système avec l'horloge de la carte d'interface réseau physique correspondante pour eth0 en spécifiant refclock PHC /dev/ptp1:nocrossts poll -1.

    # 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. Pour appliquer la configuration, redémarrez chrony en exécutant la commande suivante :

    systemctl restart chronyd
    

    chrony enregistre les statistiques de synchronisation de l'horloge dans /var/log/chrony/tracking.log en utilisant l'horloge matérielle PTP de eth0 comme source de temps.

Configurer chrony 4.7 et versions ultérieures sur les instances U4S

Nous vous recommandons d'utiliser les versions 4.7 et ultérieures pour les instances U4S.chrony L'utilisation de versions antérieures peut entraîner des erreurs fréquentes, car l'appareil de synchronisation de l'horloge Compute Engine pour les instances de machines virtuelles (VM) (ptp_kvm) peut entraîner des modifications des numéros d'index des appareils d'horloge matérielle PTP (PHC).

Cette configuration d'exemple pour les instances U4S est semblable à celle utilisée pour les instances U4P et U4C, mais présente les différences suivantes :

  • Cet exemple inclut une seule carte d'interface réseau virtuelle. Une instance U4S peut comporter plusieurs cartes d'interface réseau virtuelles, mais toutes sont soutenues par la même carte d'interface réseau physique et accèdent à la même horloge de carte d'interface réseau physique.
  • La mesure précise du temps n'est pas disponible.

Pour configurer chrony version 4.7 ou ultérieure sur une instance U4S, procédez comme suit :

  1. Ajoutez ce qui suit au fichier de configuration chrony, /etc/chrony.conf. Le fichier ne doit contenir que la configuration suivante. Assurez-vous de supprimer ou d'écraser tout contenu préexistant du fichier.

    # 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. Pour appliquer la configuration, redémarrez chrony en exécutant la commande suivante :

    systemctl restart chronyd
    

    chrony enregistre les statistiques de synchronisation de l'horloge dans /var/log/chrony/tracking.log en utilisant l'horloge matérielle PTP de eth0 comme source de temps.

Vérifier la configuration chrony

Pour vérifier que chrony est correctement configuré, exécutez la commande suivante :

chronyc sourcestats

Si la configuration aboutit, vous obtiendrez un résultat semblable à ceci :

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

Si la commande renvoie un résultat inattendu, consultez la section Dépannage.

Modifier la configuration chrony

Si vous souhaitez modifier la carte d'interface réseau physique à laquelle synchroniser l'horloge système de votre instance, vous pouvez mettre à jour votre configuration comme suit :

  1. Supprimez noselect de la ligne qui inclut le nom de la carte d'interface réseau virtuelle pour laquelle vous souhaitez utiliser l'horloge de la carte d'interface réseau physique correspondante.
  2. Ajoutez noselect à la ligne qui inclut le nom de la carte d'interface réseau virtuelle pour laquelle vous souhaitez arrêter d'utiliser l'horloge de la carte d'interface réseau physique correspondante.
  3. Appliquez la nouvelle configuration en redémarrant chronyd : systemctl restart chronyd.

Surveiller la synchronisation horaire

Cette section décrit les métriques disponibles pour la synchronisation de l'heure et explique comment les utiliser pour surveiller la précision de la synchronisation de l'heure.

Métriques disponibles pour la synchronisation horaire

Vous pouvez utiliser les métriques suivantes pour surveiller la synchronisation de l'heure :

Mesure Métrique et description disponibles
Horloge système de l'instance à l'horloge de la carte d'interface réseau physique logging.googleapis.com/user/phc-clock-max-error

Cette métrique mesure la précision de la synchronisation de l'horloge système de l'instance avec l'horloge de la carte d'interface réseau physique sur son serveur hôte.

Vous devez configurer cette métrique en la collectant à partir de l'agent Ops et en créant une métrique basée sur les journaux, comme décrit dans Configurer une métrique personnalisée pour l'horloge système de l'instance, qui crée également un tableau de bord personnalisé. Vous pouvez également utiliser cette métrique dans les procédures décrites dans Utiliser les métriques Cloud Monitoring.

Horloge de la carte d'interface réseau physique sur UTC compute.googleapis.com/instance/time/firefly_utc_traceable_uncertainty

Cette métrique représente la limite d'erreur maximale de l'horloge de la carte d'interface réseau physique par rapport à l'heure UTC réelle. Il est automatiquement signalé à Cloud Monitoring.

Vous pouvez afficher cette métrique, définir des règles d'alerte et créer des tableaux de bord personnalisés, comme décrit dans Utiliser les métriques Cloud Monitoring.

État de santé général de l'horloge de la carte d'interface réseau physique compute.googleapis.com/instance/time/firefly_nic_sync_healthy

Cette métrique booléenne indique l'état de santé général de l'horloge de la carte d'interface réseau physique, y compris la synchronisation entre les cartes d'interface réseau et entre la carte d'interface réseau et l'UTC. Elle est automatiquement signalée à Cloud Monitoring.

Vous pouvez afficher cette métrique, définir des règles d'alerte et créer des tableaux de bord personnalisés, comme décrit dans Utiliser les métriques Cloud Monitoring.

Pour en savoir plus sur la durée pendant laquelle Cloud Monitoring conserve les données métriques, consultez Conservation des données dans Quotas et limites de Cloud Monitoring. Pour savoir comment exporter des métriques pour une analyse à long terme, consultez Exportation de métriques Cloud Monitoring dans la documentation Cloud Architecture Center.

Configurer une métrique personnalisée pour l'horloge système de l'instance

Cette section fournit un exemple de configuration de surveillance qui effectue les opérations suivantes :

  • Configure l'agent Ops pour collecter le journal chrony afin de vérifier la précision de la synchronisation à partir de votre instance.
  • Configure Cloud Monitoring pour ingérer le journal correspondant de toutes les instances de votre projet en tant que métrique basée sur les journaux.

Configurer l'agent Ops Google Cloud sur votre instance

Pour configurer l'agent Ops afin qu'il collecte la métrique nécessaire à la surveillance, procédez comme suit :

  1. Si ce n'est pas déjà fait, installez l'agent Ops sur votre instance.

  2. Ajoutez la configuration suivante au fichier /etc/google-cloud-ops-agent/config.yaml :

    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. Redémarrez l'agent Ops en exécutant la commande suivante :

    systemctl restart google-cloud-ops-agent
    

Configurer une métrique et un tableau de bord basés sur les journaux dans votre projet

Pour configurer la surveillance de la synchronisation de l'heure pour les instances de votre projet, exécutez le script de configuration de la journalisation et du tableau de bord suivant. Ce script vous aide à effectuer les tâches suivantes :

  • Il définit les autorisations appropriées sur le compte de service associé au projet de votre instance. Le script part du principe que le compte de service utilisé pour les instances est le compte de service par défaut du projet. Si nécessaire, remplacez SERVICE_ACCOUNT_EMAIL par une autre valeur.
  • Elle crée une métrique basée sur les journaux qui mesure la précision de la synchronisation de l'heure entre l'horloge système de l'instance et l'horloge de la carte d'interface réseau physique sur le serveur hôte de l'instance.
  • Il crée un tableau de bord qui affiche la précision de la synchronisation de l'heure en fonction de la métrique.

Pour effectuer les tâches précédentes, exécutez le script suivant. Une fois le script exécuté, utilisez le tableau de bord qu'il a créé pour afficher les données de précision de l'horloge pour les instances de votre projet.

#!/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

Utiliser les métriques Cloud Monitoring

Les sections suivantes décrivent comment utiliser les métriques Cloud Monitoring. Vous pouvez utiliser chacune des métriques disponibles pour la synchronisation de l'heure dans les sections suivantes.

En plus de la console Google Cloud , vous pouvez créer des tableaux de bord personnalisés, configurer des alertes et interroger les métriques à l'aide de l'API Monitoring.

Afficher les métriques dans Monitoring

Cette section explique comment afficher les métriques dans Monitoring.

Console

Pour afficher les métriques d'une ressource surveillée à l'aide de l'explorateur de métriques, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page  Explorateur de métriques.

    Accéder à l'Explorateur de métriques

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Dans la barre d'outils de la console Google Cloud , sélectionnez votre projet Google Cloud . Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
  3. Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez VM instance dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :
    1. Dans le menu Ressources actives, sélectionnez Instance de VM.
    2. Pour sélectionner une métrique, utilisez les menus Catégories de métriques actives et Métriques actives. Pour obtenir la liste des métriques disponibles, consultez Métriques disponibles pour la synchronisation de l'heure.
    3. Cliquez sur Appliquer.
  4. Pour ajouter des filtres qui suppriment des séries temporelles des résultats de la requête, utilisez l'élément Filtre.

  5. Configurez le mode d'affichage des données. Par défaut, l'écran agrège les métriques de toutes les instances et de toutes les cartes d'interface réseau physiques. Pour afficher les métriques par carte d'interface réseau et par instance, sélectionnez Non agrégé dans l'élément Agrégation.

    Pour plus d'informations sur la configuration d'un graphique, consultez Sélectionner des métriques lorsque vous utilisez l'explorateur de métriques.

Définir des règles d'alerte

Cette section explique comment définir des règles d'alerte.

Lorsque vous configurez la façon dont Monitoring évalue une condition lorsque les données cessent d'arriver, nous vous recommandons l'option Les points de données manquants sont traités comme des valeurs qui ne respectent pas la condition de la règle, qui permet de détecter les pertes de données silencieuses. Toutefois, ce paramètre génère de fausses alertes positives lorsqu'une instance est supprimée.

Console

Vous pouvez créer des règles d'alerte pour surveiller les valeurs des métriques et être informé lorsqu'elles ne respectent pas une condition.

  1. Dans la console Google Cloud , accédez à la page Alertes :

    Accéder à la page Alertes

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Si vous n'avez pas créé vos canaux de notification et que vous souhaitez être averti, cliquez sur Modifier les canaux de notification et ajoutez vos canaux de notification. Revenez à la page Alertes après avoir ajouté vos canaux.
  3. Sur la page Alertes, cliquez sur Créer une règle.
  4. Pour sélectionner la métrique, développez le menu Sélectionner une métrique, puis procédez comme suit :
    1. Pour limiter le menu aux entrées pertinentes, saisissez VM Instance dans la barre de filtres. Si aucun résultat ne s'affiche après avoir filtré le menu, désactivez l'option Afficher uniquement les ressources et métriques actives.
    2. Dans le champ Type de ressource, sélectionnez Instance de VM.
    3. Pour Catégorie de métriques, sélectionnez Instance.
    4. Pour Métrique, sélectionnez une métrique dans la liste Métriques disponibles pour la synchronisation de l'heure.
    5. Sélectionnez Appliquer.
  5. Cliquez sur Suivant.
  6. Les paramètres de la page Configurer le déclencheur d'alerte déterminent le moment où l'alerte se déclenche. Sélectionnez un type de condition et, si nécessaire, spécifiez un seuil. Pour plus d'informations, consultez Créer des règles d'alerte basées sur un seuil de métrique.
  7. Cliquez sur Suivant.
  8. Facultatif : Pour ajouter des notifications à votre règle d'alerte, cliquez sur Canaux de notification. Dans la boîte de dialogue, sélectionnez un ou plusieurs canaux de notification dans le menu, puis cliquez sur OK.
  9. (Facultatif) Mettez à jour la durée de fermeture automatique de l'incident. Ce champ détermine à quel moment Monitoring ferme les incidents en l'absence de données de métriques.
  10. (Facultatif) Cliquez sur Documentation, puis ajoutez les informations à inclure dans le message de notification.
  11. Cliquez sur Nom de l'alerte et saisissez un nom pour la règle d'alerte.
  12. Cliquez sur Créer une règle.
Pour en savoir plus, consultez Aperçu des alertes.

Créer des tableaux de bord Monitoring personnalisés

Cette section explique comment créer des tableaux de bord personnalisés.

Console

  1. Dans la console Google Cloud , accédez à la page  Tableaux de bord :

    Accéder à la page Tableaux de bord

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Cliquez sur Créer un tableau de bord.
  3. Facultatif : Modifiez le titre du tableau de bord en optant pour un nom descriptif.
  4. Pour chaque widget que vous souhaitez ajouter à votre tableau de bord, cliquez sur Ajouter un widget, renseignez la boîte de dialogue, puis sélectionnez Appliquer.

    Pour en savoir plus sur l'ajout de widgets, consultez les pages suivantes :

Résoudre les problèmes

Vous pouvez obtenir un résultat inattendu lorsque vous vérifiez la configuration de votre chrony, par exemple le résultat suivant qui indique que chrony n'a pas pu démarrer :

506 Cannot talk to daemon

Pour vous aider à résoudre les problèmes, consultez les journaux journald pour chrony :

journalctl -u chronyd.service

L'exemple de sortie suivant montre une erreur qui se produit si vous appliquez une configuration destinée à chrony 4.7 et versions ultérieures alors qu'une version antérieure de chrony est installée sur votre instance.

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.

Limites

Consultez les limites suivantes :

  • Les métriques firefly_utc_traceable_uncertainty et firefly_nic_sync_healthy ne sont disponibles que pour les instances U4P et U4C. Ces métriques ne sont pas disponibles pour les instances U4S.