Per le applicazioni Node.js, i plug-in vengono gestiti per le librerie di logging Winston e Bunyan. Winston è una libreria per uso generico che implementa una varietà di formattatori e trasporti di log. Bunyan, che è specializzato per i log JSON strutturati, supporta la formattazione dei log tramite il piping alla riga di comando Bunyan.
Puoi anche utilizzare direttamente la libreria client di Logging per Node.js o creare le tue integrazioni con la libreria di logging che preferisci. Ad esempio, puoi utilizzare l'esempio del framework di log Pino.
Non è necessario installare l'agente Logging per utilizzare Winston o Bunyan su un'istanza di macchina virtuale (VM) Compute Engine.
Prima di iniziare
- Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
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
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- Prepara l'ambiente per lo sviluppo Node.js.
Configura logging
Questa sezione descrive come installare e configurare i plug-in per le librerie di logging Winston e Bunyan. Per Bunyan, vengono fornite informazioni su come utilizzare Bunyan con un'applicazione Node.js Express.
Puoi utilizzare altre librerie o framework. Ad esempio, puoi utilizzare il framework di log Pino. Per il codice campione che utilizza OpenTelemetry per raccogliere metriche e dati di traccia e il framework di log Pino per raccogliere dati di log, consulta Esempio di strumentazione Node.js. Se utilizzi Pino, devi implementare un mapping tra i livelli di gravità di Pino e quelli utilizzati da Cloud Logging. Per il codice di esempio, consulta Mapping dei livelli di log di Pino.
Installa e configura il plug-in Winston
Cloud Logging fornisce un plug-in per la libreria di logging Winston Node.js. Il plug-in Logging per Winston fornisce un livello più semplice e di livello superiore per lavorare con Logging.
Per installare e configurare il plug-in Winston:
Per installare il plug-in Logging Winston, utilizza npm:
npm install @google-cloud/logging-winston winston
Importa il plug-in e aggiungilo alla configurazione di Winston:
Configura il plug-in.
Puoi personalizzare il comportamento del plug-in Winston utilizzando le stesse opzioni di configurazione supportate da la libreria client Cloud dell'API Cloud Logging per Node.js. Queste opzioni possono essere passate nell'oggetto
optionspassato al costruttore del plug-in.
Installa e configura il plug-in Bunyan
Cloud Logging fornisce un plug-in per la libreria di logging Bunyan Node.js. Il plug-in Logging per Bunyan fornisce un livello più semplice e di livello superiore per lavorare con Logging.
Per installare e configurare il plug-in Bunyan:
Per installare il plug-in Logging Bunyan, utilizza npm:
npm install bunyan @google-cloud/logging-bunyan
Importa il plug-in e aggiungilo alla configurazione di Bunyan:
Configura il plug-in.
Puoi personalizzare il comportamento del plug-in Bunyan utilizzando le stesse opzioni di configurazione supportate da la libreria client Cloud dell'API Cloud Logging per Node.js. Queste opzioni possono essere passate nell'oggetto
optionspassato al costruttore del plug-in.
Utilizza Bunyan ed Express
Puoi configurare e utilizzare Bunyan con Logging in un'applicazione Node.js Express.
Per ulteriori informazioni sull'installazione, consulta la documentazione delle librerie Cloud Logging per Node.js. Puoi anche segnalare i problemi utilizzando il tracker dei problemi.
Scrivi log con la libreria client di Cloud Logging
Per informazioni sull'utilizzo diretto della libreria client di Cloud Logging per Node.js, consulta Librerie client di Cloud Logging.
Esegui su Google Cloud
Affinché un'applicazione possa scrivere log utilizzando le librerie Cloud Logging per Node.js, il
account di servizio della risorsa sottostante deve disporre del
ruolo IAM Writer di log (roles/logging.logWriter) IAM.
La maggior parte degli Google Cloud ambienti configura automaticamente il account di servizio predefinito
in modo che abbia questo ruolo.
App Engine
Cloud Logging è abilitato automaticamente per App Engine e il service account predefinito della tua app dispone delle autorizzazioni IAM per scrivere voci di log.
Per scrivere voci di log dalla tua app, ti consigliamo di utilizzare Bunyan o Winston come descritto in questa pagina.
Per saperne di più, consulta Scrivere e visualizzare i log.
Google Kubernetes Engine (GKE)
GKE concede automaticamente al account di servizio predefinito
il ruolo IAM Writer di log (roles/logging.logWriter).
Se utilizzi
Workload Identity Federation for GKE
con questo account di servizio predefinito per consentire ai carichi di lavoro di accedere ad API specifiche
Google Cloud , non è necessaria alcuna configurazione aggiuntiva.
Tuttavia, se utilizzi Workload Identity Federation for GKE con un account di servizio IAM personalizzato, assicurati che il service account personalizzato abbia il ruolo Writer di log (roles/logging.logWriter).
Se necessario, puoi anche utilizzare il seguente comando per aggiungere l'ambito di accesso logging.write durante la creazione del cluster:
gcloud container clusters create example-cluster-name \
--scopes https://www.googleapis.com/auth/logging.write
Compute Engine
Quando utilizzi le istanze VM di Compute Engine, aggiungi lo cloud-platform
ambito di accesso a ogni istanza. Quando crei una nuova istanza tramite la
Google Cloud console, puoi farlo nella sezione Identità e accesso API
del riquadro Crea istanza. Utilizza il service account predefinito di Compute Engine o un altro account di servizio di tua scelta e seleziona Consenti l'accesso completo a tutte le API Cloud nella sezione Identità e accesso API. Qualunque sia il service
account selezionato, assicurati che gli sia stato concesso il
ruolo Writer di log nella sezione IAM e amministrazione della
Google Cloud console.
Cloud Run Functions
Cloud Run Functions concede il ruolo Writer di log per impostazione predefinita.
Le librerie Cloud Logging per Node.js possono essere utilizzate senza dover fornire esplicitamente le credenziali.
Cloud Run Functions è configurato per utilizzare automaticamente Cloud Logging.
Esegui in locale e altrove
Per utilizzare le librerie Cloud Logging per Node.js al di fuori di Google Cloud, inclusa l'esecuzione della libreria sulla tua workstation, sui computer del tuo data center o sulle istanze VM di un altro provider cloud, devi configurare le Credenziali predefinite dell'applicazione (ADC) nel tuo ambiente locale per l'autenticazione alle librerie Cloud Logging per Node.js.
Per saperne di più, consulta Configura ADC per on-premise o un altro provider cloud.
Utilizza Winston:Utilizza Bunyan:
Visualizza i log
Nella Google Cloud console, vai alla pagina Esplora log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
In Esplora log, devi specificare una o più risorse, ma la selezione delle risorse potrebbe non essere ovvia. Ecco alcuni suggerimenti che ti aiuteranno a iniziare.
Se esegui il deployment dell'applicazione in App Engine o utilizzi le librerie specifiche di App Engine, imposta la risorsa su Applicazione GAE.
Se esegui il deployment dell'applicazione su Compute Engine, imposta la risorsa su Istanza VM GCE.
Se esegui il deployment dell'applicazione su Google Kubernetes Engine, la configurazione di logging del cluster determina il tipo di risorsa delle voci di log. Per una discussione dettagliata sulle soluzioni Legacy Google Cloud Observability e Google Cloud Observability Kubernetes Monitoring e su come queste opzioni influiscono sul tipo di risorsa, consulta Eseguire la migrazione a Google Cloud Observability Kubernetes Monitoring.
Se la tua applicazione utilizza direttamente l'API Cloud Logging, la risorsa dipende dall'API e dalla configurazione. Ad esempio, nella tua applicazione puoi specificare una risorsa o utilizzare una risorsa predefinita.
Se non vedi alcun log in Esplora log, per visualizzare tutte le voci di log, passa alla modalità di query avanzata e utilizza una query vuota.
- Per passare alla modalità di query avanzata, fai clic su menu (▾) nella parte superiore di Esplora log e seleziona Converti in filtro avanzato.
- Cancella i contenuti visualizzati nella casella del filtro.
- Fai clic su Invia filtro.
Puoi esaminare le singole voci per identificare le tue risorse.
Per ulteriori informazioni, consulta Utilizzo di Esplora log.