Come posso risolvere il problema del mio agente CloudWatch unificato che non invia eventi del log?

7 minuti di lettura
0

Desidero risolvere il problema con il mio agente Amazon CloudWatch unificato che non invia eventi del log.

Breve descrizione

Se il tuo agente CloudWatch unificato non invia eventi del log, le cause possibili sono le seguenti:

  • Metadati non sincronizzati
  • Utilizzo di una versione obsoleta dell'agente CloudWatch
  • Impossibile connettersi all'endpoint CloudWatch Logs
  • Configurazioni errate dell'account, della regione AWS o del gruppo di log
  • Autorizzazioni AWS Identity and Access Management (IAM) insufficienti
  • Errori di esecuzione dell'agente CloudWatch
  • Problemi relativi al timestamp
  • Valore mancante o errato nel file di stato del log
  • Configurazione errata del file di registro di origine
  • Vincoli PutLogEvents
  • Valore di force\ _flush\ _interval elevato

Nota: la seguente risoluzione non si applica a CloudWatch Container Insights. Per ulteriori informazioni sulla risoluzione dei problemi di CloudWatch Container Insights, consulta Risoluzione dei problemi di Container Insights e Come posso risolvere i problemi dello stato pod in Amazon EKS?

Risoluzione

Metadati non sincronizzati

Se hai metadati non sincronizzati, l'agente CloudWatch non funziona come previsto. Per risolvere questo problema, completa i passaggi seguenti:

Utilizzo di una versione obsoleta dell'agente CloudWatch

Se disponi di una versione obsoleta dell'agente CloudWatch, scarica le note di rilascio del pacchetto dell'agente CloudWatch e il numero di versione più recente. La versione più recente potrebbe includere aggiornamenti che risolvono il problema.

Impossibile connettersi all'endpoint CloudWatch Logs

Verifica la connettività all'endpoint CloudWatch Logs utilizzando uno dei seguenti comandi:

Nota: Sostituisci a example-region la regione richiesta.

telnet logs.<example-region>.amazonaws.com 443
nc -zv logs.<example-region>.amazonaws.com 443

Se riscontri errori di connessione, completa i seguenti passaggi:

  • Assicurati che il gruppo di sicurezza e le liste di controllo degli accessi alla rete (ACL di rete) consentano la connettività.
  • Per gli endpoint pubblici, utilizza un gateway Internet o un gateway NAT per la tua istanza.
  • Se utilizzi endpoint Amazon Virtual Private Cloud (Amazon VPC), assicurati che l'endpoint si risolva in un IP Amazon VPC. Inoltre, assicurati che il gruppo di sicurezza degli endpoint consenta l'accesso dall'istanza di origine.

Configurazioni errate dell'account, della regione o del gruppo di log

Per il file di configurazione dell'agente CloudWatch, assicurati che la regione specificata corrisponda alla regione della console. Inoltre, assicurati che i log siano controllati nell'account corretto.

In alternativa, puoi utilizzare il file common-config.toml per sovrascrivere le impostazioni predefinite di sistema per l'agente CloudWatch:

Linux:

/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml
/etc/amazon/amazon-cloudwatch-agent/common-config.toml

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml

Autorizzazioni IAM insufficienti

L'agente CloudWatch utilizza le credenziali dell'utente IAM o della policy di ruolo IAM per inviare gli eventi del log al servizio CloudWatch. Prima di pubblicare l’evento di un log, crea un gruppo di log e un flusso di log. Se non esiste un gruppo di log o un flusso di log, l'agente CloudWatch lo crea.

Conferma che la tua politica includa le seguenti autorizzazioni IAM:

"logs:CreateLogGroup","logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"

Aggiungi eventuali autorizzazioni IAM mancanti alla policy dell’utente o alla policy del ruolo.

Nota: quando si creano ruoli e utenti IAM, è consigliabile utilizzare le policy CloudWatchAgentServerPolicy e CloudWatchAgentAdminPolicy create da Amazon.

Errori di esecuzione dell'agente CloudWatch

Verifica che l'agente CloudWatch sia in esecuzione. Se l'agente non è in esecuzione, controlla la posizione del file di registro per eventuali errori:

Linux:

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log

Nota: i log possono essere specificati in una posizione personalizzata del file di registro. Controlla il file di configurazione dell'agente per identificare eventuali posizioni del log personalizzate.

Utilizza il parametro debug per attivare la registrazione dettagliata del debug nel file di configurazione. Se utilizzi il parametro run\ _as\ _user, verifica che l'utente disponga delle autorizzazioni per la posizione del log. Se l'utente non dispone delle autorizzazioni necessarie, CloudWatch non può scrivere log nella posizione.

Se riscontri problemi relativi all'IMDS quando avvii l'agente CloudWatch, completa i seguenti passaggi:

Problemi relativi al timestamp

Verifica la presenza di timestamp degli eventi dei log più indietro nel tempo di 14 giorni o più avanti nel tempo di due ore. Il comando PutLogEvents non consente batch di log in nessuno dei due intervalli di tempo. Inoltre, verifica che il servizio dell’orario di sistema sull'istanza sia configurato correttamente. Per ulteriori informazioni, consulta Modifica il fuso orario dell'istanza.

Valore mancante o errato nel file di stato del log

Per risolvere un valore mancante o errato nel file di stato del registro, completare i passaggi seguenti:

  1. Assicurati che i tuoi file di stato siano nella posizione corretta:
    Linux:

    /opt/aws/amazon-cloudwatch-agent/logs/state
    
    

    Windows:

    C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs\state

    **Nota:**Assicuratevi che i file di stato precedenti contengano lo stesso valore di dimensione del file di registro. Ciò consente di leggere e pubblicare nuovi dati su CloudWatch.

  2. Controlla il valore della dimensione del file di stato:
    Linux:

    sudo cat /opt/aws/amazon-cloudwatch-agent/logs/state/_var_log_httpd_access_log
    
    

    Windows:

    gc 'C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs\state\C__Program_Files_log.log'
    
    

    **Nota:**L'output dei comandi precedenti è un valore numerico dell'offset corrente. Ad esempio, se l'output è 34, l'offset corrente è pari al 34° byte del file di registro. I log vengono letti in questo byte quando vengono scritti nuovi log nel file di log.

  3. Controlla il valore della dimensione del file di registro:
    Linux:

    stat /var/log/httpd/access_log | grep Size | awk '{print $2}'
    
    

    Windows:

    Get-Item 'C:\Program Files\log.log' | Format-List | findstr Length
  4. Verificare che le uscite dei passaggi 2 e 3 precedenti siano le stesse.

Configurazione errata del file di registro di origine

Per risolvere i problemi derivanti da una configurazione errata del file di registro di origine, completare i passaggi seguenti:

  • Verifica se la configurazione dell'agente CloudWatch include il file di registro che desideri monitorare.
  • Verificate che il file di registro abbia il formato corretto e che vengano utilizzati i nomi e le posizioni corretti.
  • Dalla configurazione corrente, verifica che i log vengano inviati allo stesso gruppo di log e stream di log da cui desideri recuperare i dati.
  • Esamina il file di registro che stai monitorando sulla tua istanza. Verificare che il file di registro di origine contenga i dati che si desidera pubblicare nel gruppo di log.

Vincoli PutLogEvents

L'agente CloudWatch utilizza l’API PutLogEvents per pubblicare eventi del log nei gruppi di log di CloudWatch. Assicurati di rispettare i vincoli di questa API. Per ulteriori informazioni, consulta PutLogEvents.

Valore di force\ _flush\ _interval elevato

Il valore force\ _flush\ _interval specifica la quantità massima di tempo in cui i log possono rimanere nel buffer di memoria prima di essere inviati al server. Se la dimensione dei log raggiunge il buffer massimo di 1 MB, i log vengono immediatamente pubblicati su CloudWatch. I log vengono pubblicati su CloudWatch indipendentemente dall'intervallo impostato dalla force\ _flush\ _interval.

Se l'intervallo è impostato su un valore elevato e la dimensione del registro non raggiunge 1 MB, i log rimangono nel buffer. I log rimangono nel buffer finché il buffer non è pieno o non è trascorso l'intervallo. Durante questo intervallo, i log non sono disponibili in CloudWatch. Assicurati di impostare il valore dell'intervallo sulla dimensione corretta. È consigliabile impostare il valore dell'intervallo in base alla dimensione del log e agli intervalli in cui si desidera che avvenga la pubblicazione.

Informazioni correlate

Risoluzione dei problemi relativi all'agente CloudWatch

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa