Die Instanz einer virtuellen Maschine (VM) hat vier virtuelle serielle Ports. Das Betriebssystem, das BIOS und andere Entitäten auf Systemebene der Instanz senden Ausgaben häufig an die seriellen Ports. Deshalb kann man die Ausgabe serieller Ports gut zur Fehlerbehebung bei Abstürzen, fehlgeschlagenen Bootvorgängen, Startproblemen oder Problemen beim Herunterfahren nutzen.
Auf dieser Seite werden Methoden beschrieben, die Ausgabe eines seriellen Ports darzustellen. Es wird auch beschrieben, wie die Ausgabe mit Cloud Logging aufbewahrt werden kann, selbst nachdem eine Instanz angehalten oder gelöscht wurde. Wie Sie Befehle an einen seriellen Port senden, während eine Instanz ausgeführt wird, erfahren Sie unter Mit der seriellen Konsole interagieren.
Auf die Ausgabe des seriellen Ports kann über die Google Cloud Console, die gcloud CLI und REST zugegriffen werden, jedoch nur während die VM-Instanz ausgeführt wird. Außerdem sind Logs auf die letzten 1 MB der Ausgabe pro Port beschränkt.
Wenn Sie das Logging für die Ausgabe des seriellen Ports in Cloud Logging aktivieren, werden Logs 30 Tage lang aufbewahrt. Dabei sind die ersten 50 Gibibyte (GiB) an Logdaten pro Monat kostenlos.
Hinweise
- Wenn Sie Cloud Logging zum Logging der Ausgabe des seriellen Ports verwenden möchten, machen Sie sich mit Cloud Logging vertraut.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.
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.
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wählen Sie die VM-Instanz aus, für die Sie die Ausgabe des seriellen Ports ansehen möchten.
Klicken Sie unter Logs auf Serieller Port 1, 2, 3 oder 4. Entitäten auf Systemebene verwenden normalerweise den ersten seriellen Port (Port 1), der auch als serielle Konsole bezeichnet wird.
INSTANCE_NAME
: der Name der Instanz.PORT
: die Nummer des Ports (1
,2
,3
oder4
), für den Sie die Ausgabe ansehen möchten. Entitäten auf Systemebene verwenden normalerweise den ersten seriellen Port (Port 1), der auch als serielle Konsole bezeichnet wird. Standardmäßig wird die Ausgabe des ersten seriellen Ports zurückgegeben.START
: der Byteindex (nullbasiert) des ersten Bytes, das zurückgegeben werden soll. Mit diesem Flag können Sie den Abruf der Ausgabe fortsetzen, wenn die Ausgabe einer vorherigen Anfrage zu lang war, um sie in einem Versuch zurückzugeben.ZONE
: die Zone Ihrer Instanz.- Logging für den seriellen Port in Cloud Logging aktivieren
Rufen Sie die Seite VM-Instanzen auf.
Wählen Sie die VM-Instanz aus, deren Start-Agent-Logs Sie anzeigen möchten.
Klicken Sie unter Logs auf Cloud Logging, um Cloud Logging-Logs aufzurufen.
Maximieren Sie das Drop-down-Menü Alle Logs und wählen Sie die Ausgabe des seriellen Ports aus, die Sie sehen möchten. Entitäten auf Systemebene verwenden normalerweise den ersten seriellen Port (Port 1), der auch als serielle Konsole bezeichnet wird. Wenn ein Port nicht im Drop-down-Menü angezeigt wird, steht keine Ausgabe zur Verfügung.
Maximieren Sie optional das Drop-down-Menü Alle Logebenen, um Logs auszublenden, die unter der gewünschten Wichtigkeitsstufe liegen. Wenn Sie beispielsweise die Logebene "Info" auswählen, werden die Logeinträge der Stufe "Fehlerbehebung" ausgeblendet. Einträge der Stufe "Fehlerbehebung" werden normalerweise nur vom BIOS beim Booten verwendet.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Logging der Ausgabe des seriellen Ports aktivieren und deaktivieren
Sie können steuern, ob Ihre Instanzen die Ausgabe des seriellen Ports an Cloud Logging senden. Legen Sie dazu auf Projekt- oder Instanzebene Metadaten fest. Sie können das Feature auch für alle Nutzer in Ihrer Organisation durch Festlegen einer Organisationsrichtlinie deaktivieren.
Projekt- und Instanzmetadaten festlegen
Das Logging der Ausgabe des seriellen Ports in Cloud Logging ist standardmäßig deaktiviert. Wenn das Logging der Ausgabe des seriellen Ports in Cloud Logging nicht für Ihre Organisation eingeschränkt ist, können Sie es für Projekte und einzelne VM-Instanzen aktivieren oder deaktivieren. Dazu legen Sie den Metadateneintrag
serial-port-logging-enable
auftrue
bzw.false
fest.Wenn Sie einen projektweiten Metadateneintrag festlegen, übernehmen alle VM-Instanzen im Projekt diese Einstellung implizit. Wird dagegen ein Instanz-Metadateneintrag festgelegt, wird dieser unabhängig von der Projekteinstellung nur für diese VM aktiviert.
Sie können einen Metadateneintrag mit der Google Cloud Console, der gcloud CLI oder der Compute Engine API festlegen. Weitere Informationen finden Sie unter Benutzerdefinierte Metadaten einrichten.
Der folgende gcloud CLI-Befehl aktiviert beispielsweise das Logging der Ausgabe des seriellen Ports in Cloud Logging für Ihr Projekt:
gcloud compute project-info add-metadata \ --metadata serial-port-logging-enable=true
Stattdessen aktiviert der folgende gcloud CLI-Befehl das Logging der Ausgabe des seriellen Ports für eine bestimmte Instanz in Cloud Logging:
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata serial-port-logging-enable=true
Setzen Sie
serial-port-logging-enable
auffalse
, um das Logging der Ausgabe eines seriellen Ports in Cloud Logging zu deaktivieren.gcloud compute instances add-metadata INSTANCE_NAME \ --metadata serial-port-logging-enable=false
Ausschlussfilter
Sie können in Cloud Logging einen Ausschlussfilter erstellen, um bestimmte Einträge für den seriellen Port aus dem Log Explorer zu entfernen. Wenn ein projektweiter Metadateneintrag auf
serial-port-logging-enable=true
festgelegt ist, können Sie beispielsweise mit einem erweiterten Filter das Logging der Ausgabe des seriellen Ports für bestimmte VM-Instanzen deaktivieren: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"
Organisationsrichtlinie festlegen
Sie können das Logging der Ausgabe des seriellen Ports in Cloud Logging für Ihre gesamte Organisation deaktivieren. Legen Sie dazu eine Organisationsrichtlinie fest, die bestimmte Konfigurationen von Google Cloud-Ressourcen einschränkt. Legen Sie insbesondere die boolesche Einschränkung
constraints/compute.disableSerialPortLogging
fest. Weitere Informationen finden Sie unter Organisationsrichtlinien erstellen und verwalten.Wenn Sie das Logging des seriellen Ports durch Festlegen von
constraints/compute.disableSerialPortLogging
auftrue
deaktivieren, gilt das nicht rückwirkend. Vorhandene VM-Instanzen mit einem Metadateneintrag, der das Logging des seriellen Ports in Cloud Logging aktiviert, senden weiterhin Logs an Cloud Logging, wenn Sie nicht für diese Instanzen die Metadaten zurücksetzen.Nachdem Sie diese Organisationseinschränkung auf
true
gesetzt haben, können Sie keine Instanz- oder Projektmetadaten mehr festlegen, um das Logging der Ausgabe des seriellen Ports in Cloud Logging für Instanzen innerhalb der Organisation zu aktivieren.Ausgabe des seriellen Ports ansehen
Console
gcloud
Führen Sie den Befehl
gcloud compute instances get-serial-port-output
aus.gcloud compute instances get-serial-port-output INSTANCE_NAME \ --port PORT \ --start START \ --zone ZONE
Ersetzen Sie Folgendes:
REST
Erstellen Sie in der API eine
get
-Anfrage an die Methodeinstances.getSerialPortOutput
.GET https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/serialPort
Cloud Logging
Weitere Informationen, einschließlich Informationen zum Filtern, finden Sie unter Log-Explorer verwenden.
Umgang mit Zeichen, die nicht zum UTF8-Zeichensatz gehören
Die Ausgabe des seriellen Ports wird mit der Methode
CHexEscape()
der Open-Source-Bibliothek Abseil für C++ mit Escapezeichen versehen. Zeichen, die nicht zum UTF8-Zeichensatz gehören, werden als Hexadezimalstrings codiert. Mit der entsprechendenCUnescape()
-Methode erhalten Sie genau die Ausgabe, die an den seriellen Port gesendet wurde.Häufige Fehler bei seriellen Ports
Im Folgenden finden Sie Beispiele für häufige Fehler, die bei der Ausgabe des seriellen Ports auftreten können.
Fehler beim Konfigurieren von IPv6
Der folgende Fehler kann in OS-Journallogs auftreten, wenn IPv6 nicht konfiguriert ist:
ERROR addresses.go:301 Error configuring IPv6: Internet Systems Consortium DHCP Client 4.2.5
Sie können diese Fehlermeldung einfach ignorieren. Dieser Fehler wirkt sich nicht auf Ihre VM aus.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-10-14 (UTC).
-