Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

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

8 minuti di lettura
0

Desidero risolvere il problema con il mio agente Amazon CloudWatch unificato che non invia eventi di registro.

Breve descrizione

Se il tuo agente CloudWatch unificato non invia eventi di registro, 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 registro
  • 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 Troubleshooting Container Insights e How do I troubleshooot the pod status in Amazon EKS

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Metadati non sincronizzati

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

  • È consigliabile installare l'agente CloudWatch al momento del lancio utilizzando AWS CloudFormation, AWS Systems Manager Agent (SSM Agent), script di dati utente o l'interfaccia a riga di comando di AWS.
  • Assicurati di creare un'AMI prima di installare l'agente CloudWatch. Le AMI in genere acquisiscono informazioni univoche dall'istanza originale.
  • Per le istanze Windows, usa Sysprep quando lavori con un'AMI. Per ulteriori informazioni, consulta la pagina How can I use Sysprep to create and install custom reusable Windows AMIs?

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 example-region con 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 gli elenchi 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 inviarei log eventi al servizio CloudWatch. Prima di pubblicare un evento di registro, 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 li 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 utente o alla policy del ruolo.

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

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 log. Controlla il file di configurazione dell'agente per identificare eventuali posizioni del log personalizzate.

Usa 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 registro. Se l'utente non dispone delle autorizzazioni necessarie, CloudWatch non può scrivere registri 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 di registro più vecchi di 14 giorni o più di due ore nel futuro. Il comando PutLogEvents non consente batch di log in nessuno dei due intervalli di tempo. Inoltre, verifica che il servizio di orario di sistema sull'istanza sia configurato correttamente. Per ulteriori informazioni, consulta Impostare l'ora per l'istanza Linux o Impostare l'ora per un'istanza di Windows.

Valore mancante o errato nel file di stato del registro

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 di registro 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 registro e agli intervalli in cui si desidera che vengano pubblicati.

Informazioni correlate

Risoluzione dei problemi relativi all'agente CloudWatch

AWS UFFICIALE
AWS UFFICIALEAggiornata 9 mesi fa