Chaque instance de machine virtuelle (VM) ou instance bare metal utilise une stratégie de maintenance de l'hôte pour déterminer le comportement de l'instance lors d'une opération de maintenance. Certaines instances offrent la possibilité supplémentaire d'afficher le calendrier de maintenance à l'avance.
Cette page explique comment surveiller et planifier un événement de maintenance de l'hôte sur les instances Compute Engine.
Avant de commencer
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1
) -
Pour un accès en lecture seule aux journaux d'audit des événements système :
Lecteur de journaux (
roles/logging.viewer
) -
Pour obtenir des informations sur une instance, y compris les métadonnées :
compute.instances.get
Famille de machines optimisées pour les accélérateurs:
Famille de machines à usage général:
Famille de machines à mémoire optimisée:
Famille de machines optimisées pour le stockage:
- Moins d'événements de maintenance: en général, les instances avec des intervalles de maintenance récurrents devraient rencontrer moins d'événements de maintenance.
- Notification de maintenance plus longue: recevez des notifications bien à l'avance pour les événements de maintenance afin de pouvoir vous organiser.
- Surveillance et planification: utilisez Cloud Logging pour suivre votre calendrier de maintenance. Restez informé grâce aux incidents et aux alertes.
- Contrôle de maintenance à la demande: démarrez la maintenance pendant la période de notification pour mettre à jour vos instances selon votre planning.
- canReschedule: indique si la maintenance peut être démarrée manuellement pendant la période de notification pour cette instance.
TRUE
: la maintenance déclenchée par le client peut être effectuée pendant la période de notification.FALSE
: la maintenance déclenchée par le client ne peut pas être effectuée sur cette instance. Cela se produit souvent pendant la période de maintenance de l'instance ou si le type d'instance n'est pas compatible avec la maintenance à la demande.
- latestWindowStartTime: heure la plus tardive vers laquelle l'intervalle de maintenance peut être déplacé.
- maintenanceStatus: état actuel de l'événement de maintenance.
ONGOING
: l'opération de maintenance est en cours.PENDING
: l'opération de maintenance est planifiée, mais n'a pas encore commencé.
- type: type de maintenance à effectuer.
NONE
: aucune maintenance n'est planifiée pour cette instance.SCHEDULED
: Pour les maintenances perturbantes, Compute Engine fournit un préavis d'au moins sept jours pour la plupart des instances. Les instances X4 bénéficient d'un préavis d'environ 60 jours.UNSCHEDULED
: étant donné que la maintenance représente des mises à jour critiques, Compute Engine essaie de fournir un préavis aussi long que possible, mais il est généralement beaucoup plus court que pour les événements de maintenance planifiés.
- windowEndTime: fin de la période au cours de laquelle la maintenance est effectuée.
- windowStartTime: début de la période au cours de laquelle la maintenance est effectuée.
canReschedule=True
etmaintenanceStatus=Pending
: vous pouvez démarrer manuellement l'événement de maintenance de l'instance avant l'heure de début prévue.canReschedule=False
etmaintenanceStatus=Ongoing
: la maintenance est en cours et ne peut pas être reprogrammée.canReschedule=False
etmaintenanceStatus=Pending
: votre instance n'est pas compatible avec les événements de maintenance déclenchés manuellement.INSTANCE_NAME
: nom de l'instance de calcul.ZONE_NAME
: zone dans laquelle se trouve l'instance.- La maintenance est planifiée pour la date et l'heure indiquées dans
windowStartTime
. canReschedule
est défini surTrue
etmaintenanceStatus
surPENDING
. Ces paramètres indiquent que vous pouvez démarrer manuellement l'événement de maintenance planifié avant la date indiquée danslatestWindowStartTime
.PROJECT_NAME
: nom du projet contenant l'instance de calcul.ZONE
: zone où se trouve l'instance.INSTANCE_NAME
: nom de l'instance- La maintenance est planifiée pour la date et l'heure indiquées dans
windowStartTime
. canReschedule
est défini surTrue
etmaintenanceStatus
surPENDING
. Ces paramètres indiquent que vous pouvez démarrer manuellement l'événement de maintenance planifié avant la date indiquée danslatestWindowStartTime
.Accédez à la page Instances de VM.
Cliquez sur le nom de l'instance pour laquelle vous souhaitez afficher les notifications de maintenance.
La page Détails de l'instance s'affiche.
Dans la section Journaux, cliquez sur le lien Journalisation.
La page Éditeur de requêtes de l'explorateur de journaux s'ouvre. Dans le volet Requête, les valeurs
resource.type
et l'ID d'instance sont déjà renseignées pour votre instance.Dans le volet Requête, ajoutez la ligne suivante à la requête:
operation.producer="compute.instances.upcomingMaintenance" OR "compute.instances.terminateOnHostMaintenance" OR "compute.instances.migrateOnHostMaintenance"
Cliquez sur Exécuter la requête. Les événements de notification de maintenance correspondants s'affichent dans le volet "Résultats de la requête".
Dans le volet des résultats de la requête, vous pouvez cliquer sur Modifier l'heure pour élargir la période de recherche ou pour affiner les résultats en fonction de dates ou d'heures spécifiques.
Cliquez sur une entrée de journal pour afficher les détails de la notification de maintenance.
- Pour les notifications de maintenance à venir, développez l'en-tête
metadata
pour afficher des informations telles que l'état actuel, le type, ainsi que les heures de début et de fin de la période de maintenance planifiée. - Développez l'en-tête
status
pour afficher le message descriptif de la notification.
- Pour les notifications de maintenance à venir, développez l'en-tête
methodName
:"compute.instances.upcomingMaintenance"
metadata
:maintenanceStatus
:"PENDING"
windowStartTime
:"2024-07-23T20:00:00Z"
methodName
:"compute.instances.upcomingMaintenance"
metadata
:maintenanceStatus
:"ONGOING"
windowStartTime
:"2024-07-23T20:00:00Z"
- Pour les instances configurées pour utiliser la migration à chaud lors des événements de maintenance, un événement système avec
methodName: "compute.instances.migrateOnHostMaintenance"
. - Pour les instances configurées pour s'arrêter lors des événements de maintenance, un événement système avec
methodName: "compute.instances.terminateOnHostMaintenance"
. methodName
:"compute.instances.upcomingMaintenance"
status: {
message: "Maintenance window has completed for this instance. All
maintenance notifications on the instance have been removed."
}
Accédez à la page Instances de VM.
Cliquez sur le nom de l'instance pour laquelle vous souhaitez créer une alerte d'événement de maintenance.
La page Détails de l'instance s'affiche.
Dans la section Journaux, cliquez sur le lien Journalisation.
La page Éditeur de requêtes de l'explorateur de journaux s'ouvre. Dans le volet Requête, les valeurs
resource.type
et l'ID d'instance sont déjà renseignées pour votre instance.Dans le volet Requête, ajoutez la ligne suivante à la requête:
operation.producer="compute.instances.upcomingMaintenance"
Cliquez sur Exécuter la requête. Les événements de notification de maintenance correspondants s'affichent dans le volet "Résultats de la requête".
Dans le volet des résultats de la requête, cliquez sur Modifier l'heure.
- Sur la gauche de la fenêtre de modification, dans le champ Heure relative, saisissez
1d
pour afficher les entrées de journal de la semaine précédente. - Cliquez sur Appliquer.
- Sur la gauche de la fenêtre de modification, dans le champ Heure relative, saisissez
Dans l'en-tête du volet Résultats de la requête, cliquez sur add_alert Créer une alerte. Si votre fenêtre de visionnage est étroite, l'option Créer une alerte peut s'afficher dans le menu Actions.
Dans le volet Créer une règle d'alerte basée sur les journaux, dans la section Détails de l'alerte, procédez comme suit:
- Saisissez un nom pour la règle d'alerte, par exemple
Upcoming maintenance for my-c3d-vm@us-central1-b
. Dans le menu Niveau de gravité de la règle, sélectionnez Aucune gravité.
Dans le champ Documentation, vous pouvez saisir une description de votre règle d'alerte. Vous pouvez également inclure des informations susceptibles d'aider le destinataire d'une notification à diagnostiquer le problème. La chaîne suivante résume le motif de la notification:
Log-based alerting policy in project ${project} to monitor upcoming maintenance notifications. See also "Host maintenance alerts" and "onHostMaintenance actions" alerting policies.
Pour obtenir des informations sur la mise en forme et la personnalisation du contenu de ce champ, consultez la section Utiliser Markdown et les variables dans les modèles de documentation.
Pour passer à l'étape suivante, cliquez sur Suivant.
- Saisissez un nom pour la règle d'alerte, par exemple
Dans la section Sélectionner les journaux à inclure dans l'alerte, vérifiez la requête et les résultats en cliquant sur Prévisualiser les journaux.
La requête que vous avez créée dans le volet Requête s'affiche également dans ce volet. Nous vous recommandons de créer d'abord la requête dans le volet Requête de l'explorateur de journaux.
Si nécessaire, vous pouvez modifier la requête dans ce volet. Si vous modifiez la requête, vérifiez les résultats en cliquant sur Prévisualiser les journaux.
Cliquez sur Suivant.
Dans le volet Définir la fréquence des notifications et le délai pour la fermeture automatique, procédez comme suit:
Sélectionnez le délai minimal entre les notifications. Cette valeur vous permet de contrôler le nombre de notifications que vous recevez de la surveillance si cette condition est remplie plusieurs fois. Pour cet exemple, sélectionnez 1 jour parmi les options.
Pour la durée de fermeture automatique de l'incident, utilisez la valeur maximale de sept jours.
Cliquez sur Suivant.
Si vous avez déjà configuré un canal de notification par e-mail, vous pouvez le sélectionner dans la liste. Si ce n'est pas le cas, cliquez sur Gérer les canaux de notification et ajoutez un canal de notification par e-mail. Pour plus d'informations sur la création de canaux de notification, consultez la page Créer et gérer des canaux de notification.
Cliquez sur Enregistrer.
Votre règle d'alerte basée sur les journaux est maintenant prête à être testée, comme décrit dans la section Tester l'exemple de règle d'alerte basée sur les journaux.
- Découvrez comment définir une stratégie de maintenance de l'hôte.
- Découvrez comment recevoir des notifications de migration à chaud.
- Découvrez comment déclencher manuellement un événement de maintenance de l'hôte.
- Découvrez comment gérer les règles d'alerte basées sur les journaux à l'aide de la console Google Cloud pour Monitoring ou de l'API Monitoring.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des instances et gérer leur maintenance, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet:
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer des instances et gérer leur maintenance. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour créer des instances et gérer leur maintenance:
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Limites
Vous ne pouvez afficher les notifications pour l'événement de maintenance à venir d'une instance que si celle-ci utilise un type de machine appartenant à l'une des familles de machines suivantes:
Présentation des notifications de maintenance
Google envoie des notifications pour les opérations de maintenance à venir sur les hôtes via plusieurs méthodes. Lorsque l'intervalle de maintenance s'ouvre, Google Cloud effectue automatiquement la maintenance de votre instance. En surveillant les intervalles de maintenance à venir de votre instance, vous pouvez préparer vos charges de travail de manière proactive pour gérer les opérations de maintenance à venir avec un minimum d'interruption.
Les instances de calcul compatibles avec les notifications d'événements de maintenance présentent les caractéristiques suivantes:
Les informations sur un événement de notification à venir sont présentées de manière similaire à la suivante:
upcomingMaintenance:{ "canReschedule":True "latestWindowStartTime": "2024-12-01T19:00:01Z" "maintenanceStatus":"PENDING" "type":"SCHEDULED" "windowEndTime": "2024-12-01T22:00:00Z" "windowStartTime": "2024-12-01T19:00:00Z" }
Si aucun événement de maintenance à venir n'est prévu, un message semblable à celui-ci s'affiche:
{ "error": "no notifications have been received yet, try again later" }
Définitions des états de maintenance
Les définitions d'état suivantes permettent de comprendre les réponses fournies aux requêtes sur la maintenance de l'hôte pour une instance. Elles fournissent des informations sur l'événement de maintenance. La Google Cloud CLI, REST et le serveur de métadonnées utilisent ces mêmes réponses:
Comportements des états de maintenance
Lorsque vous gérez des événements de maintenance, vérifiez les valeurs de
canReschedule
etmaintenanceStatus
. Combinés, ces champs indiquent les actions que vous pouvez ou ne pouvez pas effectuer pour reprogrammer un événement de maintenance:Afficher les notifications de maintenance
Vous pouvez trouver des notifications de maintenance en interrogeant vos instances de calcul, le serveur de métadonnées ou en utilisant Cloud Logging.
Vérifier les instances pour une notification d'événement de maintenance
Utilisez Google Cloud CLI, REST ou interrogez le serveur de métadonnées pour voir s'il y a un événement de maintenance de l'hôte à venir pour votre instance.
gcloud
Pour afficher la période de maintenance à venir pour une instance, utilisez la commande
gcloud compute instances describe
.gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE_NAME --format="yaml(upcomingMaintenance)"
Remplacez les éléments suivants :
Si un événement de maintenance est à venir, la réponse contient une section semblable à celle-ci:
upcomingMaintenance:{ "canReschedule":True "latestWindowStartTime": "2024-12-01T19:00:01Z" "maintenanceStatus":"PENDING" "type":"SCHEDULED" "windowEndTime": "2024-12-01T22:00:00Z" "windowStartTime": "2024-12-01T19:00:00Z" }
Dans cette réponse:
REST
Pour savoir si une instance doit subir une opération de maintenance, envoyez une requête
GET
à l'aide de la méthodeinstances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME
Remplacez les éléments suivants :
Si un événement de maintenance est à venir, la réponse contient une section semblable à celle-ci:
upcomingMaintenance:{ "canReschedule":True "latestWindowStartTime": "2023-12-01T19:00:01Z" "maintenanceStatus":"PENDING" "type":"SCHEDULED" "windowEndTime": "2023-12-01T22:00:00Z" "windowStartTime": "2023-12-01T19:00:00Z" }
Dans cette réponse:
Serveur de métadonnées
À partir du système d'exploitation invité, interrogez le serveur de métadonnées pour afficher le prochain événement de maintenance.
$ curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"
Rechercher une notification d'événement de maintenance dans Cloud Logging
Compute Engine crée des événements système dans les journaux d'audit Cloud pour une instance pour les événements de maintenance. Vous pouvez consulter ces événements avant, pendant et après un événement de maintenance à l'aide de Cloud Logging et de l'explorateur de journaux.
Console
Pour interroger les journaux d'audit afin de trouver les notifications de maintenance d'une instance, procédez comme suit:
Exemples de notifications de maintenance
Une notification d'événement de maintenance pour une instance s'affiche dans l'explorateur de journaux avec des valeurs semblables à celles-ci:
Lorsque l'événement de maintenance commence, un nouvel événement d'information s'affiche dans les journaux avec des valeurs semblables aux suivantes:
Lors de l'événement de maintenance, en fonction de la configuration de la règle de maintenance de l'hôte pour l'instance, l'un des événements système suivants est consigné dans les journaux d'audit:
Une fois l'événement de maintenance terminé, un nouvel événement d'information s'affiche dans les journaux d'audit avec des valeurs semblables aux suivantes:
Configurer des alertes pour les notifications de maintenance de l'hôte
Vous pouvez configurer une règle d'alerte basée sur les journaux pour rechercher des événements de notification de maintenance spécifiques et envoyer des alertes à l'aide d'un canal de notification.
Console
Pour créer une alerte pour un événement de maintenance pour votre instance, procédez comme suit:
Pour en savoir plus, consultez les pages Configurer des alertes basées sur les journaux et Créer et gérer des canaux de notification.
Étape suivante
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/12/22 (UTC).
-