Résoudre les problèmes liés à VM Manager


Ce document explique comment résoudre les problèmes liés à VM Manager.

Pour en savoir plus sur VM Manager, consultez la page VM Manager.

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 comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    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.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Présentation

Pour résoudre les problèmes, vérifiez d'abord que VM Manager est correctement configuré. Si la configuration est correcte et que vous rencontrez toujours des problèmes, vous pouvez consulter les journaux. Lorsque vous consultez les journaux, vous pouvez identifier les problèmes liés à votre VM ou à votre workflow VM Manager, tels que les erreurs dans les commandes ou les scripts, que vous pouvez isoler et résoudre.

Vous pouvez collecter les informations suivantes à partir des journaux:

  • Tout message d'erreur ou avertissement enregistré par la VM. Ceci est idéal pour identifier les erreurs au niveau de la VM ou les erreurs provenant d'autres services exécutés sur la VM. Pour consulter ces journaux, consultez la section Inspecter Cloud Logging.
  • Informations de débogage détaillées enregistrées par l'agent OS Config. Cela est utile pour identifier les problèmes liés aux opérations exécutées par VM Manager. Pour inspecter les journaux de débogage pour l'agent OS Config, consultez la page Inspecter les journaux de débogage.

Après avoir identifié les problèmes ou les erreurs, vous pouvez également consulter la section des erreurs fréquentes pour connaître les solutions potentielles.

Inspecter Cloud Logging

Vous pouvez utiliser les liens rapides de la console Google Cloud pour chaque fonctionnalité afin d'afficher les journaux d'une VM spécifique.

Correctif d'OS

  1. Dans Google Cloud Console, accédez à l'onglet Tâches d'application de correctifs sur la page OS Patch Management.

    Accéder aux tâches d'application de correctifs

  2. Cliquez sur le nom de la tâche de correctif que vous souhaitez déboguer.
  3. Faites défiler la page jusqu'à la section Instances de VM mises à jour.
  4. Pour une VM spécifique, sous Journaux, cliquez sur Afficher.

Configuration de l'OS

Cette procédure est compatible avec OS Configuration Management (aperçu). Pour OS Configuration Management (bêta), utilisez l'option des journaux de débogage de la section suivante.

  1. Dans Google Cloud Console, accédez à l'onglet Instances de VM sur la page OS configuration management.

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de la VM que vous souhaitez déboguer.
  3. Faites défiler la page jusqu'à la section Règles.
  4. Sous Journaux, cliquez sur Afficher.

Inspecter les journaux de débogage

Vous pouvez identifier les problèmes liés à n'importe quelle fonctionnalité de VM Manager en activant le débogage pour l'agent OS Config et en affichant le journal de débogage.

Activer la journalisation du débogage pour l'agent OS Config

Vous pouvez activer la journalisation de débogage en définissant les métadonnées osconfig-log-level=debug sur l'instance de VM ou le projet.

Pour activer la journalisation du débogage sur votre VM, procédez comme suit:

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de la VM pour laquelle vous souhaitez définir la valeur des métadonnées.

  3. Sur la page Détails de l'instance, cliquez sur Modifier pour modifier les paramètres.

  4. Dans la section Métadonnées personnalisées, ajoutez les entrées de métadonnées suivantes :

    Clé : osconfig-log-level
    Valeur : debug

  5. Cliquez sur Enregistrer pour appliquer vos modifications à la VM.

gcloud

Exécutez la commande instances add-metadata avec l'option --metadata=osconfig-log-level=debug :

gcloud compute instances add-metadata VM_NAME \
    --metadata=osconfig-log-level=debug

Remplacez VM_NAME par le nom de votre VM.

REST

Pour obtenir des instructions sur la définition des métadonnées d'instance, suivez les instructions de l'API figurant à la section Définir des métadonnées d'instance.

La paire clé-valeur suivante est requise dans la propriété de métadonnées :

Clé : osconfig-log-level
Valeur : debug

Afficher les journaux de débogage

Lorsque la journalisation de débogage est activée, l'agent de configuration du système d'exploitation écrit des entrées de journal dans Cloud Logging et la console de port série.

Une fois la journalisation du débogage activée sur votre VM, l'agent OS Config prend environ dix minutes pour commencer à écrire des messages de débogage dans Cloud Logging. Vous pouvez réduire ce délai d'attente en redémarrant l'agent ou en redémarrant votre VM. Pour en savoir plus sur Cloud Logging, consultez la section Afficher les journaux Cloud Logging.

Pour afficher les journaux de débogage, utilisez les options suivantes:

  • Cloud Logging: utiliser la console Google Cloud ou Google Cloud CLI
  • Console du port série

Console

  1. Accédez à la page Journalisation > Explorateur de journaux dans la console Google Cloud :

    Accéder à l'explorateur de journaux

  2. Si nécessaire, sélectionnez un projet Google Cloud existant en haut de la page ou créez-en un.

  3. Dans la liste déroulante Ressource, sélectionnez Instance de VM. Une liste des VM disponibles (instance_id) s'affiche.

  4. Cliquez sur la VM que vous souhaitez afficher.

  5. Cliquez sur Ajouter.

  6. Dans la liste déroulante Nom du journal, sélectionnez OSConfigAgent.

  7. Cliquez sur Ajouter.

  8. Votre requête doit ressembler à ce qui suit :

    resource.type="gce_instance" resource.labels.instance_id="INSTANCE_ID"
    logName="projects/PROJECT_ID/logs/OSConfigAgent"
    
  9. Cliquez sur Run query.

gcloud

Exécutez la commande gcloud logging read

 gcloud logging read "resource.type=gce_instance AND logName=projects/PROJECT_ID/logs/OSConfigAgent"
 

Remplacez PROJECT_ID par l'ID du projet.

Port de série

Pour afficher les informations du journal de débogage à partir de la console du port série, consultez la page Afficher les données en sortie du port série.

Erreurs fréquentes

Problèmes d'authentification

Pour que VM Manager fonctionne, vous devez disposer des éléments suivants :

  • Un compte de service associé VM Manager utilise ce compte de service pour signer les requêtes envoyées au service d'API.
  • Assurez-vous que le compte de service associé dispose du rôle roles/logging.logWriter pour écrire des journaux dans l'API Logging.
  • Agent de service Google Cloud OS Config. VM Manager crée cet agent de service lors du démarrage des jobs d'application de correctifs et lui attribue le rôle d'agent de service Cloud OS Config. Pour créer des règles d'OS, vous n'avez pas besoin de configurer cet agent de service.

Si vous utilisez VM Manager et que vous n'avez pas de compte de service associé ou d'agent de service Google Cloud OS Config, les erreurs suivantes peuvent s'afficher lorsque vous utilisez des jobs d'application de correctifs :

Service account permissions are missing. Verify that the service account has the correct permissions and try again.
OSConfigAgent Error main.go:88: error getting token from metadata: metadata: GCE metadata "instance/service-accounts/default/identity?audience=osconfig.googleapis.com&format=full" not defined
message: "Error running OPERATION_NAME: error calling OPERATION_NAME: code: "PermissionDenied", message: "The caller does not have permission", details: []"

Des problèmes d'authentification peuvent également empêcher les instances de VM de s'afficher dans le tableau de bord Patch.

Pour résoudre ces problèmes, essayez l'une des solutions suivantes, ou les deux :

  • Vérifiez que toutes les VM disposent d'un compte de service associé.
  • Assurez-vous que le rôle Agent de service Cloud OS Config (roles/osconfig.serviceAgent) est défini sur l'agent de service Google Cloud OS Config.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com' \
      --role='roles/osconfig.serviceAgent'
    

    Remplacez les éléments suivants :

Erreur lors de l'exclusion des packages pour les mises à jour de correctifs

Si vous spécifiez des caractères génériques ou des caractères spéciaux pour le nom des packages lorsque vous excluez des packages dans un job d'application de correctifs, OS Patch Management peut ignorer la liste et mettre à jour tous les packages.

Pour résoudre ce problème, mettez à jour l'agent OS Config vers la version 20220829.00 et utilisez des barres obliques (/) pour encapsuler le nom du package.

Dans l'exemple suivant, OS Patch Management exclut les packages yum dont le nom contient le préfixe google-.

      gcloud compute os-config patch-jobs execute --instance-filter-all
--yum-excludes=/google-.*/

Étape suivante