Questa pagina fornisce istruzioni per la risoluzione dei problemi comuni riscontrati durante l'installazione o l'interazione con l'agente Logging.
Elenco di controllo
Se hai difficoltà a installare o utilizzare l'agente Logging, ecco alcune cose da verificare:
Se i comandi di installazione di Linux restituiscono errori, assicurati di anteporre ai comandi di installazione
sudo
.Verifica che il servizio agente sia in esecuzione sull'istanza VM:
Per una VM Windows, utilizza il seguente comando PowerShell:
Get-Service -Name StackdriverLogging
Cerca un servizio chiamato Stackdriver Logging. Se l'agente non è in esecuzione, potrebbe essere necessario riavviarlo.
Per una VM Linux, utilizza il seguente comando:
sudo service google-fluentd status
Se l'agente non è in esecuzione, potrebbe essere necessario riavviarlo utilizzando il seguente comando:
sudo service google-fluentd restart
Se il riavvio non va a buon fine e l'output del log mostra "Disabilitato tramite metadati", è probabile che tu stia eseguendo un'immagine di Google Cloud Marketplace, in cui l'agente Logging è disabilitato per impostazione predefinita. La chiave dei metadati dell'istanza
google-logging-enable
controlla lo stato di attivazione dell'agente Logging, dove un valore di0
disattiva l'agente. Per riattivare l'agente, rimuovi la chiavegoogle-logging-enable
o imposta il relativo valore su1
. Per saperne di più, vedi Crea un'istanza con l'agente di logging disattivato.Se l'agente non è disattivato tramite i metadati, reinstallalo. Consulta la sezione seguente, Reinstallazione dell'agente Logging.
Controlla se l'agente ha scritto messaggi di errore nei log.
Su Windows, a partire dalla versione v1-9, l'agente Logging salva i log in
C:\Program Files (x86)\Stackdriver\LoggingAgent\fluentd.log
.Non è possibile ottenere i log per le versioni precedenti dell'agente.
Su Linux, l'agente Logging è un pacchetto
fluentd
e registra i messaggi in/var/log/google-fluentd/google-fluentd.log
:Se visualizzi errori HTTP 429, potresti aver superato le tue quote dell'API Logging. Puoi visualizzare la quota disponibile selezionando API e servizi > Dashboard nella console Google Cloud . Scegli l'API Logging.
Se riscontri problemi di accesso o autorizzazione API, consulta Verifica delle credenziali Compute Engine.
Se l'agente sembra funzionare normalmente, ma non ricevi dati, devi verificare che l'agente invii i dati al progetto corretto. Consulta la sezione seguente, Verifica delle credenziali di Compute Engine.
Se l'agente non riesce ad autorizzare, controlla se le credenziali per la tua chiave privata sono mancanti o non valide.
Verifica l'installazione dell'agente
Per verificare che l'installazione sia riuscita, cerca la voce di log di test dell'agente in Esplora 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.
Nella parte superiore della pagina, scegli il progetto che contiene l'istanza VM:
- Per le istanze VM di Compute Engine, scegli il progetto Google Cloud che contiene l'istanza VM.
Nelle schede di Windows, scegli la risorsa per l'istanza VM:
- Per Compute Engine, scegli
Istanza VM GCE
.
- Seleziona syslog (Linux), fluent.info (Windows) o Tutti i log.
- Per Compute Engine, scegli
Se vedi la voce di log "Successfully sent gRPC to Logging API" (gRPC inviato correttamente all'API Logging), l'installazione dell'agente è completata. Questo messaggio viene generato una volta quando l'agente viene installato e ogni volta che viene riavviato.
Per saperne di più su Esplora log, vedi Utilizzo di Esplora log.
Testare l'agente
Se sospetti che l'agente non funzioni, verifica che sia in esecuzione e prova a inviare un messaggio di test a Logging:
Istanza Linux
Verifica che l'agente Logging sia in esecuzione eseguendo i seguenti comandi sull'istanza VM:
ps ax | grep fluentd
Dovresti vedere un output simile al seguente:
2284 ? Sl 0:00 /opt/google-fluentd/embedded/bin/ruby /usr/sbin/google-fluentd [...] 2287 ? Sl 42:44 /opt/google-fluentd/embedded/bin/ruby /usr/sbin/google-fluentd [...]
Invia un messaggio di log di test eseguendo il seguente comando sull'istanza VM:
logger "Some test message"
Istanza Windows
L'agente Logging ha due nomi di servizio Windows:
StackdriverLogging
per le versioni v1-5 e successivefluentdwinsvc
per le versioni precedenti
Devi eseguire un servizio agente. Esegui i seguenti comandi sull'istanza VM utilizzando PowerShell:
Chiedi lo stato di entrambi i servizi. Se sai quale servizio deve essere in esecuzione, puoi utilizzare solo il nome del servizio:
Get-Service StackdriverLogging,fluentdwinsvc
Se un servizio non è in esecuzione, viene visualizzato un messaggio di errore. Se è in esecuzione, vedrai un output simile al seguente:
Status Name DisplayName ------ ---- ----------- Running StackdriverLogging Cloud Logging
Se esegui una query su entrambi i servizi, dovresti visualizzare un messaggio di errore e uno stato
Running
:- Se non vedi alcuno stato
Running
, significa che l'agente Logging non è in esecuzione. - Se vedi che
StackdriverLogging
è in esecuzione, significa che stai utilizzando una versione recente dell'agente. Per determinare la versione specifica, consulta la sezione Ottenere la versione. - Se vedi che
fluentdwinsvc
è in esecuzione, devi eseguire l'upgrade dell'agente all'ultima versione.
- Se non vedi alcuno stato
Richiede privilegi di amministratore: se è in esecuzione una versione dell'agente, invia un messaggio di log di test eseguendo i seguenti comandi PowerShell:
New-EventLog -LogName Application -Source "Test Source" Write-EventLog -LogName Application -Source "Test Source" -EntryType Information -EventID 1 -Message "Testing 123 Testing."
Trovare il messaggio di prova
Dopo aver inviato un messaggio di prova, cercalo in Esplora 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.
Nella parte superiore della pagina, scegli il progetto che contiene l'istanza VM:
- Per le istanze VM di Compute Engine, scegli il progetto Google Cloud che contiene l'istanza VM.
Nelle schede di Windows, scegli la risorsa per l'istanza VM:
- Per Compute Engine, scegli
Istanza VM GCE
.
- Seleziona syslog (Linux), fluent.info (Windows) o Tutti i log.
- Per Compute Engine, scegli
Dovresti vedere una voce di log con il messaggio di prova. In questo caso, l'agente Logging funziona correttamente.
Verifica le credenziali di Compute Engine
Affinché un'istanza VM di Compute Engine esegua l'agente senza credenziali con chiave privata, l'istanza deve disporre di ambiti di accesso adatti e l'identità del service account utilizzata dall'istanza deve disporre di autorizzazioni IAM adeguate.
Quando crei un'istanza VM, le impostazioni predefinite dell'ambito e del account di servizio sono sufficienti per eseguire gli agenti. Le istanze molto vecchie o quelle per le quali hai modificato le impostazioni predefinite potrebbero non disporre di credenziali adatte.
Impossibile caricare le credenziali predefinite
Se nel file di log di Logging sono presenti Could not load the default credentials
errori, significa che l'agente potrebbe non riuscire a connettersi al server dei metadati di Compute Engine.
Il log degli errori è simile al seguente:
Starting google-fluentd 1.8.4: /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/googleauth-0.9.0/lib/googleauth/application_default.rb:74:in `get_application_default': Could not load the default credentials. Browse to (RuntimeError) https://developers.google.com/accounts/docs/application-default-credentials for more information.
Una potenziale causa è la configurazione di un proxy personalizzato nella VM. Per risolvere il problema,
fai riferimento alle istruzioni di configurazione del proxy
per escludere il server metadati di Compute Engine (metadata.google.internal
o
169.254.169.254
) dal proxy. Se l'errore persiste, rimuovi il account di servizio Compute Engine predefinito dalla VM e aggiungilo di nuovo.
Verifica gli ambiti di accesso
Per verificare gli ambiti di accesso:
-
Nella Google Cloud console, vai alla pagina Istanze VM.
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.
Fai clic sul nome dell'istanza. Viene visualizzata la pagina dei dettagli dell'istanza.
Nella sezione Ambiti di accesso alle API Cloud, fai clic su Dettagli per visualizzare l'elenco delle API. Cerca le seguenti voci:
- Se vedi il messaggio "Questa istanza ha accesso completo alle API di tutti i servizi Google Cloud", i tuoi ambiti di accesso sono adeguati.
- Se accanto all'API Stackdriver Logging, un nome precedente per l'API Cloud Logging, vedi che hai l'autorizzazione Solo scrittura o Completa, gli ambiti di accesso della tua istanza sono adeguati per l'agente Cloud Logging.
- Se vedi accanto all'API Stackdriver Monitoring, un nome precedente per l'API Cloud Monitoring, che hai l'autorizzazione Solo scrittura o Completa, gli ambiti di accesso della tua istanza sono adeguati per l'agente Cloud Monitoring.
Correggere il problema
Se non disponi degli ambiti di accesso adatti nella tua istanza Compute Engine, aggiungi gli ambiti di accesso necessari alla tua istanza.
La tabella seguente mostra gli ambiti pertinenti per gli agenti Logging e Monitoring:
Ambito di accesso | Autorizzazioni agente |
---|---|
https://www.googleapis.com/auth/logging.write | Adeguato per l'agente Logging |
https://www.googleapis.com/auth/monitoring.write | Adeguato per l'agente Monitoring |
Verifica l'autorizzazione del account di servizio predefinito
Anche se gli ambiti di accesso dell'istanza VM di Compute Engine sono adeguati, il account di servizio predefinito dell'istanza potrebbe non fornire le autorizzazioni IAM corrette per l'agente.
Per verificare l'autorizzazione del account di servizio predefinito, inizia individuando ilaccount di serviziot predefinito:
-
Nella Google Cloud console, vai alla pagina Istanze VM.
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.
Fai clic sul nome dell'istanza. Viene visualizzata la pagina dei dettagli dell'istanza.
Cerca l'intestazione Service account nella pagina. Viene visualizzato ilaccount di serviziot predefinito per l'istanza. Potrebbe avere un aspetto simile al seguente:
[ID]-compute@developer.gserviceaccount.com
-
Nella console Google Cloud , vai alla pagina IAM:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.
Seleziona Visualizza per: autori. Dovresti visualizzare un elenco di persone, gruppi e account di servizio. Nella colonna Ruolo sono riportati i ruoli di ogni entità nel tuo progetto.
Nella riga del account di servizio predefinito della tua istanza, dovresti visualizzare uno o più ruoli:
- Se vedi Editor, questo ruolo è adeguato per tutti gli agenti. Al account di servizio predefinito potrebbe essere concesso automaticamente il ruolo Editor a seconda della configurazione della policy dell'organizzazione.
- Se vedi Logs Writer, questo ruolo è sufficiente per l'agente Logging. Per altri ruoli Logging che includono l'autorizzazione di scrittura, consulta Controllo dell'accesso per Cloud Logging.
- Se vedi Scrittore metriche Monitoring, questo ruolo è sufficiente per l'agente Monitoring. Per altri ruoli Monitoring che includono l'autorizzazione di scrittura, consulta Controllo dell'accesso per Cloud Monitoring.
Correggere il problema
Se il tuo account di servizio predefinito non dispone di ruoli adeguati, prova a modificare i ruoli per ilaccount di serviziot nella pagina IAM e amministrazione > IAM. Aggiungi i ruoli Logging o Monitoring appropriati per autorizzare gli agenti: Logging > Logs Writer o Monitoring > Monitoring Metric Writer.
Verifica le credenziali della chiave privata
Nelle istanze VM di Compute Engine, puoi configurare l'agente in modo che utilizzi un account di servizio non predefinito con l'autorizzazione appropriata.
Per configurare l'agente in questo modo, devi creare le credenziali della chiave privata per il account di servizio designato e fornirle all'agente.
- L'agente cerca una variabile di ambiente,
GOOGLE_APPLICATION_CREDENTIALS
, che contiene il nome di un file che contiene le credenziali della chiave privata. Se la variabile di ambiente non è presente, l'agente cercherà le credenziali in una posizione predefinita:
Linux
/etc/google/auth/application_default_credentials.json
Windows
C:\ProgramData\Google\Auth\application_default_credentials.json
Se la posizione predefinita non contiene le credenziali, l'agente utilizza le credenziali predefinite dell'applicazione dal server dei metadati.
Le seguenti informazioni ti aiutano a diagnosticare i problemi relativi alle credenziali con chiave privata:
- La chiave privata è presente?
- La chiave privata è ancora valida per il account di servizio?
- Il account di servizio dispone dei ruoli necessari per l'agente?
Per verificare che le credenziali della chiave privata valide siano installate sull'istanza VM, verifica innanzitutto che il file delle credenziali esista nella posizione prevista, quindi verifica che le informazioni nel file delle credenziali siano valide.
Sono presenti le credenziali?
Per verificare se le credenziali del account di servizio con chiave privata sono presenti nell'istanza, esegui i seguenti comandi Linux sull'istanza:
sudo cat $GOOGLE_APPLICATION_CREDENTIALS
sudo cat /etc/google/auth/application_default_credentials.json
Se uno dei due comandi mostra un file come quello riportato di seguito, la tua istanza
potrebbe avere credenziali di chiave privata valide. Se entrambi i comandi mostrano un file, viene utilizzato il file indicato da GOOGLE_APPLICATION_CREDENTIALS
.
{
"type": "service_account",
"project_id": "[YOUR-PROJECT-ID]",
"private_key_id": "[YOUR-PRIVATE-KEY-ID]",
"private_key": "[YOUR-PRIVATE-KEY]",
"client_email": "[YOUR-PROJECT-NUMBER]-[YOUR-KEY]@developer.gserviceaccount.com",
"client_id": "[YOUR-CLIENT-ID]",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "{x509-cert-url}",
"client_x509_cert_url": "{client-x509-cert-url}"
}
Le discrepanze tra le configurazioni delle credenziali potrebbero indurre l'agente a utilizzare
credenziali diverse da quelle richieste dal servizio. Ad esempio, se imposti una
posizione delle credenziali personalizzata in GOOGLE_APPLICATION_CREDENTIALS
nella shell di accesso, ma non imposti questa variabile nella configurazione del servizio dell'agente, il
servizio cercherà nella posizione predefinita anziché in quella personalizzata.
Per rivedere o modificare la variabile di ambiente delle credenziali,
accedi o imposta GOOGLE_APPLICATION_CREDENTIALS
in /etc/default/google-fluentd
.
Se non sono presenti file di credenziali, consulta Aggiunta di credenziali.
Le credenziali sono valide?
Nel file delle credenziali, project_id è il tuo progetto Google Cloud , client_email identifica il account di servizio nel progetto e private_key_id identifica la chiave privata nel account di servizio. Abbina queste informazioni a quelle visualizzate nella sezione IAM e amministrazione > Service account della consoleGoogle Cloud .
Il file delle credenziali non è valido se si verifica una delle seguenti condizioni:
- Stai controllando un'istanza Compute Engine, ma il progetto Google Cloud nel file delle credenziali non è il progetto che contiene l'istanza.
- Il account di servizio elencato non esiste. Potrebbe essere stato eliminato.
- L'account di servizio elencato non ha i ruoli corretti abilitati: Scrittore log per l'agente Cloud Logging e Scrittore metriche Monitoring per l'agente Cloud Monitoring.
- La chiave privata non esiste. Potrebbe essere stato revocato.
Le credenziali possono essere revocate utilizzando la sezione IAM e amministrazione > Service account della Google Cloud console. Se non sono presenti credenziali valide, consulta la sezione Aggiunta di credenziali per sostituire quelle esistenti o per aggiungerne di nuove.
Se il account di servizio è quello corretto, ma la chiave privata è stata revocata, puoi creare una nuova chiave privata e copiarla nell'istanza. Vedi Creazione account di servizio account.
In caso contrario, devi creare un nuovo account di servizio come descritto nella sezione Aggiunta delle credenziali.
Verifica le query di esclusione dei log
Visualizza le query di esclusione correnti per assicurarti che i log che stai cercando non siano stati esclusi per errore.
Verifica firewall
Per verificare se la tua istanza ha accesso a logging.googleapis.com
, esegui
il seguente comando Linux sull'istanza:
curl -sSL 'https://logging.googleapis.com/$discovery/rest?version=v2' | head
Il completamento del comando potrebbe richiedere un po' di tempo quando il firewall blocca il traffico in uscita. Output di esempio che indica un problema del firewall:
curl: (7) Failed to connect to 2607:f8b0:4001:c03::5f: Network is unreachable
Visita la pagina Regole firewall per informazioni su come configurare le regole per il traffico in uscita.
Reinstalla l'agente
L'installazione della versione più recente dell'agente può risolvere molti problemi:
Se hai la certezza che il problema non sia correlato alle credenziali, puoi passare direttamente a Installazione su Linux e Windows.
Per un'installazione completa dell'agente e di eventuali credenziali necessarie, consulta Installazione dell'agente Logging.
Altri problemi comuni
La seguente tabella elenca alcuni problemi comuni che potresti riscontrare con l'agente Cloud Logging e indica come risolverli.
Su Linux, l'agente Logging registra gli errori in
/var/log/google-fluentd/google-fluentd.log
. Su Windows, l'agente Logging
registra gli errori in C:\Program Files (x86)\Stackdriver\LoggingAgent\fluentd.log
(a partire dalla versione v1-9).
La classe di errore Google::APIClient::ClientError
indica che si è verificato un problema
con le autorizzazioni o l'accesso API.
Potresti iniziare a visualizzare errori dopo che l'agente è stato eseguito correttamente. Ad esempio, qualcuno potrebbe aver revocato le autorizzazioni richieste dal tuo progetto o dalla tua istanza VM.
Errore | Causa | Soluzione |
---|---|---|
L'esecuzione del programma di installazione dell'agente su Windows non riesce | Potresti aver scaricato il programma di installazione in una directory di sistema. | Sposta il programma di installazione in una directory non di sistema, ad esempio
C:\Users\[USERID]\ . |
L'API non è stata abilitata per il progetto | Non hai abilitato l'API Cloud Logging nel tuo progetto. | Vai alla console API e imposta lo stato dell'API Cloud Logging su ON. |
La richiesta aveva credenziali non valide
o Impossibile recuperare il token di accesso (nessun ambito configurato?) |
La tua istanza VM non dispone di credenziali adatte. | Consulta Autorizzazione dell'agente Logging per installare le credenziali. |
Autorizzazione negata | Le credenziali di autorizzazione con chiave privata per l'agente Logging non sono configurate correttamente. | Consulta Verifica delle credenziali della chiave privata. |
Il chiamante non dispone dell'autorizzazione | Il account di servizio utilizzato per l'autorizzazione nel tuo progetto dispone di autorizzazioni insufficienti. Potrebbe trattarsi del account di servizio predefinito utilizzato in Compute Engine o App Engine oppure di un account di servizio definito dall'utente utilizzato per l'autorizzazione della chiave privata. L'account deve avere il ruolo di Editor. | Modifica l'autorizzazione del account di servizio nella pagina IAM del progetto. Se necessario, puoi modificare l'ambito di accesso per una VM esistente utilizzando le procedure Modifica del account di servizio e degli ambiti di accesso per un'istanza. |
Impossibile ottenere l'ID progetto | L'agente Cloud Logging non è riuscito a ottenere l'ID progetto da un file delle credenziali della chiave privata di un account di servizio. |
Per aggiungere o sostituire un ID progetto per l'agente,
modifica il file di configurazione dell'agente,
/etc/google-fluentd/google-fluentd.conf, sull'istanza VM.
Nella sezione <match **>,
aggiungi la seguente riga:project_id [YOUR_PROJECT_ID] In caso contrario, consulta la sezione Autorizzare l'agente Logging per correggere o sostituire le credenziali. |
L'agente Logging di Windows smette di importare i log eventi da alcuni canali | L'agente Logging potrebbe non riuscire a importare
i log eventi da determinati canali, anche se è
ancora in esecuzione e importa i log dell'agente e i log eventi da altri canali.
Il motivo è che il plug-in windows_eventlog presenta alcuni problemi, come
indicato in questa presentazione.
L'utilizzo di windows_eventlog2
risolve il problema. |
Nota: il formato dei dati del plug-in windows_eventlog2 non è compatibile con le versioni precedenti
del plug-in windows_eventlog . Se sono
configurate pipeline di esportazione BigQuery o Google Cloud Storage per questi log,
devono essere modificate di conseguenza. Consulta
questo confronto tra le voci di log
fornito da windows_eventlog e windows_eventlog2 .
Per utilizzare windows_eventlog2 , devi prima arrestare l'agente Logging e poi sostituire il file di configurazione con uno simile a questo file di configurazione di esempio.
Infine, avvia l'agente Logging. |
L'agente Logging interrompe l'importazione dei log in presenza di logrotate | L'agente Logging potrebbe perdere la traccia della sua posizione nei
file di input quando logrotate è configurato con l'impostazione copytruncate . |
È consigliabile utilizzare l'impostazione nocopytruncate per assicurarsi
che logrotate sposti i file anziché troncarli. Se vuoi
mantenere l'impostazione copytruncate , la soluzione alternativa è
riavviare l'agente
periodicamente. In alternativa, puoi utilizzare l'impostazione postrotate per
riavviare l'agente. |
error_class=Errno::EADDRINUSE error="Address already in use - bind(2) for 0.0.0.0:24231" | Sulla VM sono in esecuzione più istanze dell'agente Logging. | Utilizza ps -aux | grep "/usr/sbin/google-fluentd" per mostrare
i processi dell'agente in esecuzione (devono essere solo due: un supervisore e un
worker) e sudo netstat -nltp | grep :24231 per mostrare
i processi in esecuzione che occupano la porta. Elimina le istanze meno recenti come
ritieni opportuno. |
L'agente Logging non viene avviato a causa di errori provenienti da
lib/fluent/config/types.rb |
La configurazione dell'agente Logging utilizza una
sezione di analisi delle espressioni regolari
che contiene espressioni regolari non valide, il che comporta una chiamata subexp non valida ed errori come Starting
google-fluentd 1.8.6:
/opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/fluentd-1.11.2/lib/fluent/config/types.rb:92:
warning: invalid subexp call . |
Individua e correggi l'espressione regolare non valida nel file di configurazione dell'agente. Suggerimento: cerca regex o parse . |
Limitazione del throughput dei log
La velocità effettiva massima dei log che l'agente Logging può elaborare è limitata dalla CPU. L'utilizzo della CPU tende ad aumentare quando aumenta la velocità effettiva dei log. Tuttavia, l'agente, con la configurazione predefinita, può utilizzare al massimo un solo core della CPU. Pertanto, quando il throughput dei log aumenta, l'agente potrebbe raggiungere un limite di utilizzo della CPU. Se questi picchi sono solo temporanei, l'agente Logging memorizza nel buffer i log e li recupera in un secondo momento per elaborarli. Se la velocità effettiva dei log rimane costantemente elevata, i log potrebbero superare la capacità del buffer e alla fine andare persi.
In genere, quando ogni voce di log è un testo non elaborato di 1000 byte e non contiene un'elaborazione del formato aggiuntiva, l'agente Logging raggiunge il limite di una CPU core a circa 5500 voci di log al secondo. Se le voci di log richiedono un'elaborazione avanzata, ad esempio l'analisi JSON o Regex, il numero massimo di voci di log al secondo potrebbe essere inferiore.
Se hai bisogno di una velocità effettiva dei log più elevata, puoi valutare l'utilizzo dell'agente Ops. Su Linux, per le voci di log che sono testo non elaborato di 1000 byte e non comportano un'elaborazione aggiuntiva, Ops Agent può elaborare circa 160.000 voci di log al secondo.
Dimensione massima del log superata
Se una o più voci di log hanno superato il limite di dimensioni massimo, potresti trovare voci nei log fluentd simili alle seguenti:
Dropping 1 log message(s) error_class="Google::Apis::ClientError" error="Invalid request"
o
Dropping 1 log message(s) error="3:Log entry with size 1000515 bytes exceeds maximum size of 112640 bytes" error_code="3"
Per risolvere questo errore, taglia le voci di log in modo che non superino il limite di dimensione massimo. Ad esempio, il seguente codice campione taglia i log con il tag
mytag
, con i dati nel campo message
:
# Cloud Logging only supports log entries that are up to 256 KiB in size.
# Trim the entries to just under that size to avoid dropping them.
<filter [MY_TAG]>
@type record_transformer
enable_ruby true
<record>
message ${record['message'].length > 256000 ? "[Trimmed]#{record['message'][0..256000]}..." : record['message']}
</record>
</filter>
I log sono duplicati
LogEntry.insertID
viene aggiunto nella pipeline di elaborazione all'interno dell'agente. Se insertID
è diverso
tra i log duplicati, significa che i log vengono estratti dai file di log
più volte. Ciò può accadere in presenza di rotazione dei log o quando il
file pos è mancante o danneggiato. Per ridurre la probabilità che si verifichi questo problema, assicurati che i file di posizione per qualsiasi input in_tail
non siano configurati per trovarsi nella cartella /var/log
o in altre cartelle in cui potrebbe essere abilitata la rotazione dei log.
La pipeline di logging si basa anche sul campo LogEntry.timestamp per eliminare i duplicati dei log. Assicurati che il timestamp effettivo della voce di log sia analizzato correttamente. Se Fluentd non è configurato per analizzare il timestamp originale della voce di log, utilizza l'ora in cui elabora la voce di log. Pertanto, se l'input viene letto più volte, anche se il timestamp nella riga di log è lo stesso, Fluentd potrebbe trattarli come voci di log diverse con timestamp diversi.
Errori ripetuti nel log di controllo: Data points cannot be written more than 24h in the past
Esiste un problema noto che interessa le versioni da 1.8.5 a 1.9.3 (inclusa) che causa la visualizzazione ripetuta di log come i seguenti negli audit log dell'accesso ai dati, quando l'agente è in esecuzione da più di 24 ore:
Field timeSeries[0].points[0].interval.end_time had an invalid value of "2021-10-20T20:16:34.010866-07:00": Data points cannot be written more than 24h in the past.
La soluzione è aggiornare l'agente alla versione 1.9.4 o successive.
I caratteri Unicode nei log vengono sostituiti da spazi o dal carattere "�"
Per impostazione predefinita, l'input in_tail
prevede che i file di input siano codificati in ASCII, quindi
sostituisce qualsiasi carattere non ASCII con uno spazio. Per importare effettivamente file codificati in UTF-8, devi fornire due opzioni nella configurazione in_tail
:
<source>
@type tail
…
encoding UTF-8
from_encoding UTF-8
</source>
Entrambe le opzioni sono necessarie. Se viene fornita solo l'opzione encoding
, i caratteri non ASCII
nei log importati verranno sostituiti da "�".
Agente rimosso segnalato dalla console Google Cloud come installato
Dopo aver disinstallato l'agente, la console Google Cloud potrebbe impiegare fino a un'ora per segnalare questa modifica.
L'agente Logging non viene visualizzato nell'elenco Disinstalla un programma di Windows
Per disinstallare l'agente Logging quando non è elencato nell'elenco Disinstalla un programma del Pannello di controllo di Windows, esegui uninstall.exe
dalla directory in cui l'hai installato.