Für Node.js-Anwendungen werden Plug-ins zu den beliebten Winston und Bunyan Logging-Bibliotheken bereitgestellt. Winston ist eine Bibliothek für allgemeine Zwecke, die eine Vielzahl von Formatierungs- und Übertragungstools für Logs implementiert. Bunyan, das auf strukturierte JSON-Logs spezialisiert ist, unterstützt die Logformatierung durch Weiterleitung an die Bunyan-Befehlszeile.
Sie haben auch die Möglichkeit, die Logging-Clientbibliothek für Node.js direkt zu verwenden oder eine eigene Einbindung in Ihre bevorzugte Logging-Bibliothek zu erstellen. Sie können beispielsweise das Beispiel für das Pino-Log-Framework verwenden.
Der Logging-Agent muss nicht installiert sein, um Winston oder Bunyan auf einer Compute Engine-VM-Instanz verwenden zu können.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto haben Google Cloud, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Logging API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Logging API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Bereiten Sie Ihre Umgebung für die Node.js-Entwicklung vor.
Logging konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie die Plug-ins für die Winston und Bunyan Logging-Bibliotheken installieren und konfigurieren. Für Bunyan wird beschrieben, wie Sie Bunyan mit einer Node.js Express-Anwendung verwenden.
Sie können auch andere Bibliotheken oder Frameworks verwenden. Sie können beispielsweise das Pino-Log-Framework verwenden. Beispielcode, der OpenTelemetry zum Erfassen von Messwerten und Trace-Daten und das Pino-Log-Framework zum Erfassen von Log daten verwendet, finden Sie unter Node.js-Instrumentierungsbeispiel. Wenn Sie Pino verwenden, müssen Sie eine Zuordnung zwischen den Pino-Schweregraden und den von Cloud Logging verwendeten Schweregraden implementieren. Beispielcode finden Sie unter Pino-Logebenen zuordnen.
Winston-Plug-in installieren und konfigurieren
Cloud Logging bietet ein Plug-in für die Winston Node.js Logging-Bibliothek. Das Logging-Plug-in für Winston bietet eine einfachere, allgemeinere Ebene für die Arbeit mit Logging.
So installieren und konfigurieren Sie das Winston-Plug-in:
Verwenden Sie npm, um das Logging -Plug-in Winston zu installieren:
npm install @google-cloud/logging-winston winston
Importieren Sie das Plug-in und fügen Sie es Ihrer Winston-Konfiguration hinzu:
Konfigurieren Sie das Plug-in.
Das Verhalten des Winston-Plug-ins lässt sich mit den gleichen Konfigurationsoptionen anpassen, die auch für die Cloud-Clientbibliothek der Cloud Logging API für Node.js verwendet werden. Diese Optionen können im Objekt
optionsübergeben werden, das an den Plug-in-Konstruktor weitergeleitet wird.
Bunyan-Plug-in installieren und konfigurieren
Cloud Logging bietet ein Plug-in für die Bunyan Node.js-Logging-Bibliothek. Das Logging-Plug-in für Bunyan bietet eine einfachere, allgemeinere Ebene für die Arbeit mit Logging.
So installieren und konfigurieren Sie das Bunyan-Plug-in:
Verwenden Sie npm, um das Logging Bunyan-Plug-in zu installieren:
npm install bunyan @google-cloud/logging-bunyan
Importieren Sie das Plug-in und fügen es Ihrer Bunyan-Konfiguration hinzu:
Konfigurieren Sie das Plug-in.
Das Verhalten des Bunyan-Plug-ins lässt sich mit den gleichen Konfigurationsoptionen anpassen, die auch für die Cloud-Clientbibliothek der Cloud Logging API für Node.js verwendet werden. Diese Optionen können im Objekt
optionsübergeben werden, das an den Plug-in-Konstruktor weitergeleitet wird.
Bunyan und Express verwenden
Sie können Bunyan mit Logging in einer Node.js-Express-Anwendung einrichten und verwenden.
Weitere Informationen zur Installation finden Sie in der Dokumentation zu den Cloud Logging-Bibliotheken für Node.js. Probleme können Sie über die Problemverfolgung melden.
Logs mit der Cloud Logging-Clientbibliothek schreiben
Informationen zur direkten Verwendung der Cloud Logging-Clientbibliothek für Node.js finden Sie unter Cloud Logging-Clientbibliotheken.
Ausführen auf Google Cloud
Damit eine Anwendung Logs mit den Cloud Logging-Bibliotheken für Node.js schreiben kann, muss das
Dienstkonto für die zugrunde liegende Ressource die
IAM-Rolle „Logautor“ (roles/logging.logWriter) haben.
In den meisten Google Cloud Umgebungen wird das Standard
dienstkonto automatisch so konfiguriert, dass es diese Rolle hat.
App Engine
Cloud Logging ist für App Engine automatisch aktiviert und das Standarddienstkonto Ihrer Anwendung hat standardmäßig die IAM-Berechtigungen zum Schreiben von Logeinträgen.
Zum Schreiben von Logeinträgen aus Ihrer Anwendung empfehlen wir die Verwendung von Bunyan oder Winston, wie auf dieser Seite beschrieben.
Weitere Informationen finden Sie unter Logs schreiben und ansehen.
Google Kubernetes Engine (GKE)
GKE gewährt dem Standarddienstkonto automatisch
die IAM-Rolle „Logautor (roles/logging.logWriter)“.
Wenn Sie
die Identitätsföderation von Arbeitslasten für GKE
mit diesem Standarddienstkonto verwenden, damit Arbeitslasten auf bestimmte
Google Cloud APIs zugreifen können, ist keine zusätzliche Konfiguration erforderlich.
Wenn Sie die Identitätsföderation von Arbeitslasten für GKE mit einem benutzerdefinierten IAM-Dienstkonto verwenden, muss das benutzerdefinierte Dienstkonto die Rolle „Logautor“ (roles/logging.logWriter) haben.
Bei Bedarf können Sie auch den folgenden Befehl verwenden, um beim Erstellen des Clusters den Zugriffsbereich logging.write hinzuzufügen:
gcloud container clusters create example-cluster-name \
--scopes https://www.googleapis.com/auth/logging.write
Compute Engine
Wenn Sie Compute Engine-VM-Instanzen verwenden, fügen Sie der jeweiligen Instanz den cloud-platform
Zugriffsbereich hinzu. In der
Google Cloud Console können Sie das beim Erstellen einer neuen Instanz im Bereich Instanz erstellen im Abschnitt Identität und API-Zugriff erledigen. Verwenden Sie das Compute Engine-Standarddienstkonto oder ein anderes Dienstkonto und wählen Sie im Abschnitt Identität und API-Zugriff die Option Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus. Achten Sie darauf, dass jedem ausgewählten Dienst
konto im Abschnitt IAM & Verwaltung der
Google Cloud Console die Rolle Logautor zugewiesen ist.
Cloud Run-Funktionen
In Cloud Run-Funktionen wird die Rolle „Logautor“ standardmäßig zugewiesen.
Die Cloud Logging-Bibliotheken für Node.js können ohne explizite Angabe von Anmeldedaten verwendet werden.
Cloud Run-Funktionen ist für die automatische Verwendung von Cloud Logging konfiguriert.
Lokal und extern ausführen
Wenn Sie die Cloud Logging-Bibliotheken für Node.js außerhalb von Google Cloudverwenden möchten, beispielsweise auf Ihrer eigenen Workstation, auf den Computern Ihres Rechenzentrums oder auf den VM-Instanzen eines anderen Cloud-Anbieters, müssen Sie in Ihrer lokalen Umgebung Standardanmeldedaten für Anwendungen (ADC) einrichten, um sich bei den Cloud Logging-Bibliotheken für Node.js zu authentifizieren.
Weitere Informationen finden Sie unter ADC für lokale Umgebungen oder andere Cloud-Anbieter einrichten.
Winston verwenden:Bunyan verwenden:
Logs ansehen
Rufen Sie in der Google Cloud Console das Segment und die Seite Log-Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
Im Log-Explorer müssen Sie eine oder mehrere Ressourcen angeben. Die Auswahl der Ressourcen ist jedoch möglicherweise nicht offensichtlich. Hier sind ein paar Tipps für den Einstieg.
Wenn Sie Ihre Anwendung für App Engine bereitstellen oder die App Engine-spezifischen Bibliotheken verwenden, setzen Sie die Ressource auf GAE-Anwendung.
Wenn Sie Ihre Anwendung auf der Compute Engine bereitstellen, setzen Sie die Ressource auf GCE-VM-Instanz.
Wenn Sie Ihre Anwendung in Google Kubernetes Engine bereitstellen, wird der Ressourcentyp der Logeinträge von der Loggingkonfiguration des Clusters bestimmt. Weitere Informationen zur Legacy-Operations-Suite von Google Cloud und zu den Operations-Suite von Google Cloud Kubernetes Monitoring-Lösungen sowie zu deren Auswirkungen auf den Ressourcentyp finden Sie unter Zu Kubernetes Engine Monitoring migrieren.
Wenn Ihre Anwendung die Cloud Logging API direkt nutzt, ist die Ressource von der API und Ihrer Konfiguration abhängig. Sie können in Ihrer Anwendung zum Beispiel eine Ressource angeben oder eine Standardressource verwenden.
Wenn im Log-Explorer keine Logs zu sehen sind, wechseln Sie zum erweiterten Abfragemodus und verwenden Sie eine leere Abfrage, um alle Logeinträge zu sehen.
- Klicken Sie oben im Log-Explorer auf das Dreipunkt-Menü (▾) und wählen Sie In erweiterten Filter umwandeln aus, um zum erweiterten Abfragemodus zu wechseln.
- Löschen Sie den Inhalt, der im Filterfeld angezeigt wird.
- Klicken Sie auf Filter senden.
Sie können die einzelnen Einträge prüfen, um Ihre Ressourcen zu identifizieren.
Weitere Informationen finden Sie unter Log-Explorer verwenden.