Questo documento fornisce le informazioni di cui hai bisogno per aiutarti a decidere
per inviare in modo programmatico i log delle applicazioni a Cloud Logging utilizzando
librerie client o mediante un
di registrazione. Gli agenti di logging inviano dati scritti in un file, ad esempio
stdout
o un file, come log in Cloud Logging. Servizi come
Google Kubernetes Engine, l'ambiente flessibile di App Engine e Cloud Functions, contengono un
di registrazione. Per Compute Engine, puoi installare
Ops Agent o l'agente Cloud Logging legacy.
Questi agenti raccolgono i log da posizioni o log noti dei file.
servizi come Windows Event Log
, journald
o syslogd
.
Quando non puoi utilizzare una libreria client o un agente Logging oppure quando
vuoi sperimentare solo i log, puoi scrivere i log utilizzando
gcloud logging write
oppure inviando comandi HTTP all'endpoint API Cloud Logging
entries.write
.
L'API Cloud Logging supporta sia
Chiamate HTTP e gRPC. Ops Agent e la maggior parte dei client Logging
e le librerie chiamano l'API Logging gRPC. La versione legacy di Logging
per alcuni linguaggi chiama REST
l'API Logging.
Scelta di un agente o delle librerie client
Quando devi decidere tra un agente e le librerie client, considera le seguenti domande:
- La tua applicazione è in esecuzione al di fuori di Google Cloud?
Se la tua applicazione non è in esecuzione su Google Cloud, devi per inviare i log all'API Logging. Per eseguire il routing dei log da sistemi on-premise a Logging, ti consigliamo di utilizzare BindPlane per observIQ. Per ulteriori informazioni su BindPlane, vedi Informazioni su observIQ e BindPlane.
In alternativa, puoi eseguire il routing dei log a Logging direttamente da l'applicazione utilizzando le librerie client. Per gli ambienti temporanei, come il serverless computing, devi usare le librerie client per rendere chiamate all'API Logging.
- Il servizio Google Cloud che esegue la tua applicazione supporta
- stai scrivendo contenuti
stdout
estderr
nel tuo progetto? Alcuni servizi Google Cloud sono completamente gestiti, quindi non è necessario per utilizzare gli agenti per inviare log al tuo progetto Google Cloud. Puoi utilizzare qualsiasi di registrazione di Google Cloud il linguaggio che preferisci, come Go, Node.js e Python, per inviare i log Accesso ai prodotti che supportano
stdout
estderr
per impostazione predefinita. Un vantaggio di poter contare sustdout
estderr
anziché utilizzare le librerie client è che gli arresti anomali dell'applicazione non si interrompono e inviare log al tuo progetto. Per informazioni sull'invio log strutturati tramitestdout
estderr
, vedi la sezione L'applicazione ha la flessibilità necessaria per modificare il formato del log?.Puoi utilizzare le librerie client di Logging, ma tieni presente che potrebbe introdurre una dipendenza su Logging per i test locali, quando non ti serve necessariamente. L'utilizzo delle librerie client potrebbe anche richiedono una codifica più complessa per gestire in modo esplicito il buffering e i nuovi tentativi. Inoltre, ogni utilizzo delle librerie client di Logging crea una nuova di connessione all'API. Queste nuove connessioni introducono complessità, utilizzare porte aggiuntive e inviare richieste separate solo con log dell'applicazione, il che potrebbe generare uno spreco se non logaritmi.
- I log delle applicazioni devono essere accessibili nel tuo ambiente locale?
Se hai bisogno di accedere ai log delle applicazioni nel tuo ambiente locale, per debug e per altri scopi, puoi utilizzare i moduli di logging in lingue da inviare in
stdout
estderr
. Client di logging le librerie per alcuni linguaggi supportano i log di routing instdout
estderr
.Quando esegui la tua applicazione in servizi Google Cloud che non supportano inviando automaticamente i log scritti in
stdout
estderr
al tuo progetto Google Cloud, puoi raccoglierestdout
estderr
accedono ai file su disco e configura l'agente per eseguirne lo scraping e inviarli a Logging. Per ulteriori informazioni, consulta la guida alla configurazione per Ops Agent o l'agente Logging legacy.- Il processo di installazione dell'agente è manuale o automatico?
Alcuni servizi installano gli agenti automaticamente o ti consentono di installare gli agenti per te. Se il servizio che stai utilizzando non ti consente di installare gli agenti, devi utilizzare le librerie client per utilizzare Logging.
- Usi già Fluentd nel tuo sistema?
L'agente Logging legacy è basato su Fluentd.
Se Fluentd è già in esecuzione nel tuo sistema e vuoi usa quel daemon per inviare i tuoi log a Logging, quindi utilizza plug-in di Google Cloud Logging per fluente.
- Stai raccogliendo anche le metriche delle applicazioni per Cloud Monitoring?
Nelle VM di Compute Engine, Ops Agent può raccogliere i log e la maggior parte delle metriche. Consulta Funzionalità di Ops Agent per ulteriori informazioni.
Se Ops Agent non si occupa dei tuoi casi d'uso, puoi utilizzare agente Monitoring legacy o Monitoraggio delle librerie client per raccogliere le metriche.
- La tua applicazione ha la flessibilità di modificare il formato di log?
Questa domanda ti aiuta a decidere se la tua applicazione può generare log strutturati. Il logging riconosce i log strutturati se li invii alla API Logging nel formato di logging strutturato. Le librerie client forniscono i metodi per la gestione di questo formato.
Esistono due modi per scrivere log strutturati: uno è impostare campi specifici nella busta
LogEntry
, e l'altra è impostare il campojsonPayload
all'interno del campoLogEntry
busta. Lo schema per il primo è determinato da Cloud Logging, mentre lo schema di quest'ultimo è determinato dall'utente.Devi configurare l'agente in modo che riconosca i log strutturati. Per impostazione predefinita, gli agenti sono configurati in modo da rilevare i log in formato JSON e e gestirle come log strutturati. Se la tua applicazione ha un proprio formato di log che non puoi modificare, ma vuoi che i log vengano riconosciuti come strutturati devi scrivere i log nel formato di registrazione strutturata, JSON in
stdout
estderr
, in modo che gli agenti possano riconoscerli come e log strutturati. In caso contrario, devi configurare l'agente per comprendere le formato personalizzato.
Riepilogo di ciascuna opzione
Librerie client di Cloud Logging
Vantaggi
- Puoi eseguire il routing dei log direttamente all'API Cloud Logging.
- Alcune lingue possono inviare log in
stdout
estderr
utilizzando il metodo libreria.
Svantaggi
- Gli arresti anomali dell'applicazione interrompono l'invio dei log al tuo progetto Google Cloud.
Ops Agent
- Vantaggi
- Ops Agent può inviare log e metriche utilizzando tecnologie open source stabili: Fluent Bit per la raccolta dei log e OpenTelemetry Collector per la raccolta delle metriche.
- Puoi raccogliere sia log che metriche da molte applicazioni; consulta Monitorare e raccogliere i log da terze parti applicazioni.
- Puoi conservare i log nel tuo ambiente locale.
- Potresti riuscire a recuperare i log in caso di arresti anomali dell'applicazione.
- Ops Agent è in fase di sviluppo attivo.
- Vantaggi
Agente Logging legacy
- Vantaggi
- L'agente utilizza Fluentd per raccogliere i log.
- Puoi conservare i log nel tuo ambiente locale.
- Potresti riuscire a recuperare i log in caso di arresti anomali dell'applicazione.
- Svantaggi
- L'agente è attualmente supportato, ma non è in fase di sviluppo attivo.
- Vantaggi
Log di
stdout
estderr
inviati automaticamente al tuo progetto Google Cloud- Vantaggi
- Questo processo è un modo comune per inviare log ad ambienti locali.
- Puoi utilizzare librerie di logging arbitrarie.
- Potresti riuscire a recuperare i log in caso di arresti anomali dell'applicazione.
- Svantaggi
- Non tutti gli ambienti instradano automaticamente i log a Logging.
- Vantaggi