Afficher les données en sortie du port série


Une instance de machine virtuelle (VM) possède quatre ports série virtuels. Le système d'exploitation de l'instance, le BIOS, et d'autres entités de niveau système génèrent souvent des données en sortie sur les ports série. De ce fait, ces données s'avèrent utiles pour la résolution des plantages, des échecs de démarrage, des problèmes de démarrage ou des problèmes d'arrêt.

Cette page décrit les méthodes permettant d'afficher la sortie du port série, y compris l'utilisation de Cloud Logging pour conserver la sortie du port série même après l'arrêt ou la suppression d'une instance. Si vous devez envoyer des commandes vers un port série pendant qu'une instance est en cours d'exécution, consultez la page Interagir avec la console série.

La sortie du port série est accessible via la console Google Cloud, gcloud CLI et REST, mais uniquement lorsque l'instance de VM est en cours d'exécution. Les journaux sont limités au Mo de données en sortie le plus récent pour chaque port.

Si vous activez la journalisation des données en sortie du port série, Cloud Logging fournit gratuitement les 50 premiers gibioctets (Gio) mensuels de journalisation et conserve les journaux pendant 30 jours.

Avant de commencer

  • Si vous souhaitez journaliser la sortie du port série sur Cloud Logging, familiarisez-vous avec Cloud Logging.
  • 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

Activer et désactiver la journalisation des données en sortie du port série

Vous pouvez contrôler si vos instances envoient une sortie de port série à Cloud Logging en définissant des métadonnées au niveau du projet ou de l'instance. Vous pouvez également désactiver la fonctionnalité pour tous les utilisateurs de votre organisation en définissant une règle d'administration.

Définir les métadonnées de projet et d'instance

Par défaut, la journalisation des données de sortie du port série sur Cloud Logging est désactivée. Si la journalisation des données en sortie du port série sur Cloud Logging n'est pas limitée pour votre organisation, vous pouvez l'activer ou la désactiver pour des projets et des instances de VM individuelles, en définissant l'entrée de métadonnées serial-port-logging-enable sur true ou false.

Si vous définissez une entrée de métadonnées à l'échelle du projet, toutes les instances de VM du projet héritent de ce paramètre de manière implicite. Si vous définissez une entrée de métadonnées d'instance, celle-ci est activée seulement pour cette VM, quelle que soit la configuration du projet.

Vous pouvez définir une entrée de métadonnées à l'aide de la console Google Cloud, de la CLI gcloud ou de l'API Compute Engine. Pour en savoir plus, consultez la section Définir des métadonnées personnalisées.

Par exemple, la commande suivante de la CLI gcloud active la journalisation des données en sortie du port série sur Cloud Logging pour votre projet :

gcloud compute project-info add-metadata \
    --metadata serial-port-logging-enable=true

Vous pouvez également exécuter la commande suivante de la CLI gcloud pour activer la journalisation des données en sortie du port série sur Cloud Logging pour une instance spécifique :

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=true

Pour désactiver la journalisation des données en sortie du port série sur Cloud Logging, définissez serial-port-logging-enable sur false.

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=false

Filtres d'exclusion

À partir de Cloud Logging, vous pouvez créer un filtre d'exclusion pour supprimer des entrées de port série spécifiques de l'explorateur de journaux. Par exemple, avec une entrée de métadonnées à l'échelle du projet définie sur serial-port-logging-enable=true, vous pouvez désactiver la journalisation des données en sortie du port série pour des instances de VM spécifiques à l'aide d'un filtre avancé :

logName = "projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output"
resource.type = "gce_instance"
resource.labels.instance_id != "INSTANCE_1_ID"
resource.labels.instance_id != "INSTANCE_2_ID"

Définir une règle d'administration

Vous pouvez désactiver la journalisation des données en sortie du port série sur Cloud Logging pour l'ensemble de votre organisation en définissant une règle d'administration, qui limite certaines configurations de ressources Google Cloud. Plus précisément, définissez la contrainte booléenne suivante : constraints/compute.disableSerialPortLogging. Pour en savoir plus, consultez la page Créer et gérer des règles d'administration.

La désactivation de la journalisation du port série en définissant constraints/compute.disableSerialPortLogging sur true n'est pas rétroactive. Les instances de VM existantes ayant une entrée de métadonnées permettant d'activer la journalisation du port série sur Cloud Logging continuent à se connecter à Cloud Logging, sauf si vous réinitialisiez les métadonnées de ces instances.

Après avoir défini cette contrainte d'organisation sur true, vous ne pouvez pas définir de métadonnées d'instance ou de projet pour activer la journalisation des données en sortie du port série sur Cloud Logging pour les instances de l'organisation.

Afficher les données en sortie du port série

Console

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

    Accéder à la page "Instances de VM"

  2. Sélectionnez l'instance de VM dont vous souhaitez afficher les données en sortie du port série.

  3. Sous Journaux, cliquez sur Port série 1, 2, 3 ou 4. Les entités de niveau système utilisent généralement le premier port série (port 1), également appelé console série.

gcloud

Exécutez la commande gcloud compute instances get-serial-port-output.

gcloud compute instances get-serial-port-output INSTANCE_NAME \
  --port PORT \
  --start START \
  --zone ZONE

Remplacez l'élément suivant :

  • INSTANCE_NAME : nom de l'instance.
  • PORT : numéro du port (1, 2, 3 ou 4) dont vous souhaitez afficher les données en sortie. Les entités de niveau système utilisent généralement le premier port série (port 1), également appelé console série. Par défaut, les données en sortie du premier port série sont renvoyées.
  • START : valeur indexée (sur base zéro) du premier octet à renvoyer. Utilisez cette option si vous souhaitez continuer à obtenir les données d'une requête précédente qui n'a pas pu être renvoyée en une seule tentative en raison de sa longueur excessive.
  • ZONE : zone de l'instance.

REST

Dans l'API, envoyez une requête get à la méthode instances.getSerialPortOutput.

GET https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/serialPort

Cloud Logging

  1. Activez la journalisation du port série sur Cloud Logging.
  2. Accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  3. Sélectionnez l'instance de VM pour laquelle vous souhaitez afficher les journaux de l'agent de démarrage.

  4. Sous Logs (Journaux), cliquez sur Cloud Logging pour afficher les journaux Cloud Logging.

    Cliquez sur Cloud Logging pour afficher les journaux Cloud Logging.

  5. Développez le menu déroulant Tous les journaux et sélectionnez les données en sortie de port série à afficher. Les entités de niveau système utilisent généralement le premier port série (port 1), également appelé console série. Si un port n'apparaît pas dans le menu déroulant, aucune donnée n'est disponible.

  6. Si vous le souhaitez, développez le menu déroulant Tous les niveaux de journalisation pour ignorer les journaux dont le niveau de gravité est inférieur à celui de votre choix. Par exemple, si vous sélectionnez le niveau de journalisation "Info", les entrées de journal de "débogage" seront ignorées. Les entrées du journal de "débogage" sont généralement utilisées uniquement par le BIOS au démarrage.

Pour en savoir plus, y compris sur le filtrage, consultez la page Utiliser l'explorateur de journaux.

Gérer les caractères non UTF8

Les données en sortie du port série sont échappées à l'aide de la méthode CHexEscape() de la bibliothèque C++ Open Source Abseil, de sorte que les caractères non UTF8 sont encodés sous forme de chaîne hexadécimale. Vous pouvez utiliser la méthode CUnescape() correspondante pour obtenir les données de sortie exactes envoyées au port série.

Erreurs courantes liées au port série

Vous trouverez ci-dessous des exemples d'erreurs courantes que vous pouvez rencontrer dans la sortie du port série.

Erreur lors de la configuration d'IPv6

L'erreur suivante peut se produire dans les journaux de journal de l'OS lorsque IPv6 n'est pas configuré :

ERROR addresses.go:301 Error configuring IPv6: Internet Systems Consortium DHCP Client 4.2.5

Ignorez cette erreur. Cette erreur n'affecte pas votre VM.