Container-Optimized OS enthält einen Logging-Agent, der einige System- und Containerlogs in Cloud Logging übertragen. Bis zu Verwendete Container-Optimized OS 101-, x86-basierte Container-Optimized OS-Images einen auf fluentd basierenden containerisierten Logging-Agent. Einführung in Container-Optimized OS mit dem Versand einer alternativen Logging-Agent-Implementierung, fluent-bit, begonnen. Ab Version 109 von Container-Optimized OS ist der fluent-Bit-Logging-Agent der Standard. Der Legacy-Logging-Agent fluentd wird in folgendem Land entfernt: Container-Optimized OS 113
Alle Versionen der ARM-basierten Container-Optimized OS-Images liefern das fluent-Bit Logging-Agent an.
Logging-Agent aktivieren
Der Logging-Agent ist standardmäßig deaktiviert. Sie können dieses Feature aktivieren, wenn Sie eine neue Instanz erstellen oder eine vorhandene Instanz aktualisieren.
Zugriffsanforderungen
Cloud Logging bietet IAM
Rollen
mit der Sie den entsprechenden Zugriff gewähren können. Um Ihre Logs in einem Projekt anzusehen,
Sie müssen die Rolle „roles/logging.viewer
“ haben und Anwendungen müssen die Berechtigung haben
um Protokolle zu schreiben. Sie können diese Berechtigung gewähren, indem Sie den
IAM-Rolle roles/logging.logWriter
für das Dienstkonto für eine
.
Weitere Informationen zu Berechtigungen und Rollen finden Sie unter Vordefinierte Rollen:
Instanz mit aktiviertem Logging-Agent erstellen
Console
So führen Sie eine Compute Engine-Instanz auf Container-Optimized OS mit dem fluent-Bit-Logging aus aktiviert ist, gehen Sie so vor:
Öffnen Sie in der Google Cloud Console die Seite zum Erstellen von Compute Engine-Instanzen.
Geben Sie unter Name einen Namen für Ihre Instanz an.
Wählen Sie im Abschnitt Bootlaufwerk ein Container-Optimized OS-Image aus.
Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, Einzelmandanten, um weitere Optionen einzublenden.
Scrollen Sie auf dem Tab Verwaltung zum Abschnitt Metadaten. Fügen Sie einen neuen Metadateneintrag mit
google-logging-enabled
als Schlüssel undtrue
als Wert hinzu.Geben Sie optional weitere Optionen für Ihren Anwendungsfall an. Weitere Informationen finden Sie unter Instanzen erstellen und konfigurieren.
Klicken Sie auf Erstellen, um die Instanz zu erstellen und zu starten.
gcloud
So führen Sie eine Compute Engine-Instanz auf Container-Optimized OS mit dem Logging
aktiviert haben, verwenden Sie den Befehl gcloud compute instances create
und fügen Sie
google-logging-enabled=true
in den Metadaten. Beispiel:
gcloud compute instances create instance-name \ --image image-name \ --image-project cos-cloud \ --zone compute-zone \ --metadata google-logging-enabled=true
Dabei gilt:
- instance-name ist der Name Ihrer VM-Instanz.
- image-name ist der Name des Container-Optimized OS-Images für
für die Instanz. Beispiel:
--image=cos-113-18244-85-29
. - compute-zone ist die Computing-Zone für Ihre Instanz.
Weitere Informationen zum Befehl gcloud
finden Sie in der
gcloud compute-Instanzen erstellen
in der Referenzdokumentation.
Weitere Informationen zum Erstellen von Container-Optimized OS-Instanzen finden Sie unter
Instanzen erstellen und konfigurieren
Logging-Agent auswählen
x86-basierte Container-Optimized OS 105- und 109-Images liefern zwei Implementierungen
des Logging-Agents: fluentd (Legacy) und fluent-Bit.
Container-Optimized OS 105 nutzt standardmäßig fluentd und
Container-Optimized OS 109 verwendet standardmäßig fluent-Bit. Sie können die google-logging-use-fluentbit
verwenden
Metadateneintrag, um das Standardverhalten zu ändern.
Legen Sie zum Verwenden des fluent-Bit-Logging-Agents unter Container-Optimized OS 105 fest
google-logging-use-fluentbit
auf true
.
Zum Verwenden des fluentd-Logging-Agents unter Container-Optimized OS 109 wird festgelegt
google-logging-use-fluentbit
auf false
.
Logging-Agent in den Projektmetadaten aktivieren
Ab Meilenstein 97 Logging kann in den Projektmetadaten aktiviert werden:
gcloud compute project-info add-metadata \
--metadata google-logging-enabled=true
Zugriffslogs
Console
Rufen Sie die Seite "VM-Instanzen" auf.
Klicken Sie auf den Namen der Instanz mit Container-Optimized OS, über die Sie auf Logs zugreifen möchten.
Klicken Sie im Abschnitt Logs auf Cloud Logging.
Dadurch wird der Log-Explorer für die angegebene Instanz geöffnet. Weitere Informationen finden Sie unter Log-Explorer verwenden.
gcloud
Verwenden Sie den gcloud logging read
-Befehl, um auf Logs zuzugreifen. Beispiel:
gcloud logging read \ "resource.type=gce_instance AND resource.labels.instance_id=instance-id" \ --limit 10 \ --format json \ --freshness 30d
Dabei gilt:
- instance-id ist die ID Ihrer VM-Instanz.
Dieser Befehl versucht, Logs aus der VM-Instanz mit instance-id zu lesen. Dabei beträgt die Höchstzahl 10 Logs, die im JSON-Format vorliegen und höchsten 30 Tage alt sind.
Weitere Informationen zum gcloud
-Befehl finden Sie in derReferenzdokumentation zu gcloud logging read.
Funktionsweise
Der Logging Agent ist standardmäßig so konfiguriert, dass Logs von einem bestimmten System gesendet werden wichtige Dienste und Nutzeranwendungscontainer in Cloud Logging Back-End. Zum Beispiel Logs aus Docker-Containern, ausgewählten systemd-Diensten, Audit-Logs, Journal-Logfehler usw. Siehe Container-Optimized OS-spezifisch Konfigurationsquelle (x86-Images und Arm-Images) für die vollständige Konfiguration des Standard-Loggings.
Für x86-Images von Container-Optimized OS 105 und älter ist der Logging-Agent Legacy-Logging-Agent von Google Cloud Observability. Der Docker-Befehl, mit dem Startet den im Container-Optimized OS definierten Logging-Agent Quelle für den Dienst „Stackdriver-logging systemd“. Die Version des ausgeführten Container-Agents ist in Container-Optimized OS definiert Quellverzeichnis app-admin/Stackdriver.
Für ARM-Images aller Versionen und x86-Images für Container-Optimized OS 109 und später ist der Logging-Agent ein integriertes Betriebssystempaket namens fluent-bit. Der Agent ist in das Betriebssystem integriert und wird zusammen mit den Betriebssystem-Images aktualisiert.
Bekannte Einschränkungen
Kompatibilität mit dem gcplogs
-Treiber
Wenn ab Meilenstein 89 der in Container-Optimized OS enthaltene Logging-Agent und der Docker-Logging-Treiber gcplogs
für einen oder mehrere Container aktiviert sind, kann eine übermäßige Anzahl an Warnlogs vom enthaltenen Logging-Agent ausgegeben werden. Dies kann zu Lograuschen und/oder erhöhten Gebühren für Cloud Logging führen.
Als Behelfslösung nutzen Sie nicht gcplogs
als Docker-Logging-Treiber, sondern den von Container-Optimized OS konfigurierten Standardtreiber. Beachten Sie, dass der in Container-Optimized OS enthaltene Logging-Agent Containerlogs nach Cloud Logging exportiert, sodass es unnötig ist, beide Lösungen gleichzeitig zu verwenden.
Kompatibilität der Logging-Agent-Konfiguration
Der Logging-Agent ist ein fluentd-basierter Container auf x86-basierten Container-Optimized OS-Images und ein fluent-Bit-Binärprogramm auf Arm-basiert Container-Optimized OS-Images Die Konfigurationen der beiden Agents kompatibel sind. Dies ist kein Problem, wenn Sie nur das Standard-Logging die in die Betriebssystem-Images integriert ist. Wenn Sie jedoch eine benutzerdefinierte Logging-Konfiguration verwenden, kann es bei der Migration zu Fehlern kommen. Arbeitslasten auf Images, die auf einer anderen Architektur basieren, neuere Version von Container-Optimized OS.
Verweise
- Legacy-Logging-Agent von Google Cloud Observability Dokumentation. Container-Logging-Agent Container-Optimized OS ist ein Teil des Legacy-Logging-Agent, Diese Dokumentation bietet allgemein Kontext zum Agent. die außerhalb von Container-Optimized OS liegen.
- Dokumentation zu Google Cloud Observability Startseite für Google Cloud Observability Dokumentation kann für den Kontext nützlich sein.