Risoluzione dei problemi dell'agente CloudWatch - Amazon CloudWatch

Risoluzione dei problemi dell'agente CloudWatch

Utilizza le informazioni seguenti per risolvere i problemi relativi all'agente CloudWatch.

Parametri della riga di comando dell'agente CloudWatch

Per visualizzare l'elenco completo dei parametri supportati dall'agente CloudWatch, immetti quanto segue nella riga di comando in un computer in cui è installato:

amazon-cloudwatch-agent-ctl -help

Installazione dell'agente CloudWatch tramite errori Run Command

Per installare l'agente CloudWatch tramite Run Command di Systems Manager, la versione di SSM Agent nel server di destinazione deve essere la 2.2.93.0 o successive. Se la versione di SSM Agent non è corretta, potrebbero venire visualizzati errori che includono i seguenti messaggi:

no latest version found for package AmazonCloudWatchAgent on platform linux
failed to download installation package reliably

Per informazioni sull'installazione o sull'aggiornamento di SSM Agent consulta la pagina relativa all'installazione e alla configurazione di SSM Agent nella Guida per l'utente AWS Systems Manager.

L'agente CloudWatch non si avvia

Se l'agente CloudWatch non si avvia, potrebbe essersi verificato un problema di configurazione. Le informazioni sulla configurazione sono registrate nel file configuration-validation.log. Il percorso del file è /opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log nei server Linux e $Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log nei server che eseguono Windows Server.

Verificare che l'agente CloudWatch sia in esecuzione

Puoi eseguire query sull'agente CloudWatch per determinare se è in esecuzione o se è stato arrestato. Per eseguire questa operazione in remoto, puoi utilizzare AWS Systems Manager. Puoi inoltre utilizzare la riga di comando, ma solo per controllare il server locale.

Per eseguire query relative allo stato dell'agente CloudWatch tramite Run Command
  1. Apri la console Systems Manager all'indirizzo https://console.aws.amazon.com/systems-manager/.

  2. Nel riquadro di navigazione seleziona Run Command.

    oppure

    Se si apre la home page AWS Systems Manager, scorri e seleziona Explore Run Command (Esplora Run Command).

  3. Seleziona Run command (Esegui comando).

  4. Nell'elenco Documento sui comandi seleziona il pulsante accanto a AmazonCloudWatch-ManageAgent.

  5. Nell'elenco Action (Operazione), seleziona status (stato).

  6. Per Origine configurazione facoltativa scegli il valore predefinito e non compilare il campo del percorso della configurazione facoltativa.

  7. Nell'area Target (Destinazione), seleziona l'istanza da controllare.

  8. Scegli Run (Esegui).

Se l'agente è in esecuzione, l'output sarà analogo al seguente.

{ "status": "running", "starttime": "2017-12-12T18:41:18", "version": "1.73.4" }

Se l'agente viene arrestato, nel campo "status" viene visualizzato "stopped".

Per eseguire query relative allo stato dell'agente CloudWatch in locale tramite la riga di comando
  • In un server Linux, immetti quanto segue:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status

    In un server che esegue Windows Server, immetti quanto segue in PowerShell come amministratore:

    & $Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1 -m ec2 -a status

L'agente CloudWatch non viene avviato e l'errore fa riferimento alla regione Amazon EC2

Se l'agente non viene avviato e il messaggio di errore fa riferimento all'endpoint della regione Amazon EC2, potresti aver configurato l'agente in modo da dover accedere all'endpoint Amazon EC2, senza avere concesso le autorizzazioni di accesso.

Ad esempio, se specifichi un valore del parametro append_dimensions nel file di configurazione dell'agente che dipende da metadati Amazon EC2 e utilizzi proxy, devi assicurarti che il server possa accedere all'endpoint per Amazon EC2. Per ulteriori informazioni su questi endpoint, consulta Amazon Elastic Compute Cloud (Amazon EC2) nella documentazione di riferimento generale di Amazon Web Services.

L'agente CloudWatch non si avvia su Windows Server

In Windows Server, potresti visualizzare il seguente errore:

Start-Service : Service 'Amazon CloudWatch Agent (AmazonCloudWatchAgent)' cannot be started due to the following error: Cannot start service AmazonCloudWatchAgent on computer '.'. At C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1:113 char:12 + $svc | Start-Service + ~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand

Per risolvere questo problema, assicurati innanzitutto che il servizio server sia in esecuzione. Questo errore può essere visualizzato se l'agente tenta di avviarsi quando il servizio server non è in esecuzione.

Se il servizio server è già in esecuzione, potrebbe essere il problema seguente. In alcune installazioni di Windows Server, l'agente CloudWatch richiede più di 30 secondi per l'avvio. Poiché Windows Server, per impostazione predefinita, consente solo 30 secondi per l'avvio dei servizi, questo causa l'errore dell'agente simile al seguente:

Per risolvere questo problema, aumenta il valore del timeout per il servizio. Per ulteriori informazioni, consulta Un servizio non viene avviato e gli eventi 7000 e 7011 vengono registrati nel log eventi di Windows.

Impossibile trovare le credenziali in Windows Server

In Windows Server, se le credenziali si trovano in un percorso diverso da $SystemDrive\\Users\\Administrator\\.aws in Windows Server 2012 o “$SystemDrive\\Documents and Settings\\Administrator\\.aws in Windows Server 2003, puoi specificare il percorso delle credenziali utilizzando l'opzione shared_credential_file in common.toml.

Se non si dispone di un file delle credenziali, sarà necessario crearlo. Per ulteriori informazioni, consulta la pagina (Opzionale) Modifica della configurazione comune delle informazioni relative al proxy o alla regione.

Dove sono i parametri?

Se l'agente CloudWatch è in esecuzione, ma non riesci a trovare i parametri raccolti dall'agente nella AWS Management Console o in AWS CLI, verifica di utilizzare lo spazio dei nomi corretto. Per impostazione predefinita, lo spazio dei nomi dei parametri raccolti dall'agente è CWAgent. Puoi personalizzare questo spazio dei nomi utilizzando il campo namespace nella sezione metrics del file di configurazione dell'agente. Se non vengono visualizzati i parametri previsti, controlla il file di configurazione per verificare lo spazio dei nomi in uso.

Quando scarichi per la prima volta il pacchetto dell'agente CloudWatch, il file di configurazione dell'agente è amazon-cloudwatch-agent.json. Il file è ubicato nella directory in cui hai eseguito la procedura guidata di configurazione oppure potrebbe trovarsi in un'altra directory. Se utilizzi la procedura guidata di configurazione, l'output del file di configurazione dell'agente è denominato config.json. Per ulteriori informazioni sul file di configurazione, incluso il campo namespace, consulta File di configurazione dell'agente file; documento: sezione Metrics.

L'agente CloudWatch impiega molto tempo per essere eseguito in un container o registra un errore di limite di hop

Quando si esegue l'agente CloudWatch come servizio container e si desidera aggiungere dimensioni dei parametri Amazon EC2 a tutti i parametri raccolti dall'agente, è possibile che vengano visualizzati i seguenti errori nella versione v1.247354.0 dell'agente:

2022-06-07T03:36:11Z E! [processors.ec2tagger] ec2tagger: Unable to retrieve Instance Metadata Tags. This plugin must only be used on an EC2 instance. 2022-06-07T03:36:11Z E! [processors.ec2tagger] ec2tagger: Please increase hop limit to 2 by following this document https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#configuring-IMDS-existing-instances. 2022-06-07T03:36:11Z E! [telegraf] Error running agent: could not initialize processor ec2tagger: EC2MetadataRequestError: failed to get EC2 instance identity document caused by: EC2MetadataError: failed to make EC2Metadata request status code: 401, request id: caused by:

È possibile che venga visualizzato questo errore se l'agente tenta di ottenere metadati da IMDSv2 all'interno di un container senza un limite di hop appropriato. Nelle versioni dell'agente precedenti alla v1.247354.0, è possibile riscontrare questo problema senza visualizzare il messaggio di registro.

Per risolvere questo problema, aumentare il limite di hop a 2 seguendo le istruzioni riportate in Configurazione delle opzioni dei metadati dell'istanza.

Ho aggiornato la configurazione dell'agente ma non vedo i nuovi parametri o i nuovi log nella console CloudWatch

Se aggiorni il file di configurazione dell'agente CloudWatch, al successivo avvio dell'agente devi utilizzare l'opzione fetch-config. Ad esempio, se il file aggiornato è stato memorizzato nel computer locale, immetti il comando seguente:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -s -m ec2 -c file:configuration-file-path

File e ubicazioni dell'agente CloudWatch

La tabella seguente elenca i file installati da e utilizzati con l'agente CloudWatch, insieme alle rispettive posizioni in server che eseguono Linux o Windows Server.

File Ubicazione in Linux Ubicazione in Windows Server

Lo script di controllo che controlla l'avvio, l'arresto e il riavvio dell'agente.

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl o /usr/bin/amazon-cloudwatch-agent-ctl

$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1

Il file di log su cui scrive l'agente. Potrebbe essere necessario collegarlo quando contatti AWS Support.

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

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

File di convalida della configurazione dell'agente.

/opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log o /var/log/amazon/amazon-cloudwatch-agent/configuration-validation.log

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log

File JSON utilizzato per configurare l'agente, immediatamente dopo la sua creazione tramite la procedura guidata. Per ulteriori informazioni, consulta la pagina Creazione del file di configurazione dell'agente CloudWatch.

/opt/aws/amazon-cloudwatch-agent/bin/config.json

$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\config.json

File JSON utilizzato per configurare l'agente, se questo file di configurazione è stato scaricato da Parameter Store.

/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json o /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.json

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

File TOML utilizzato per specificare le informazioni sulla regione e sulle credenziali che l'agente deve utilizzare, sostituendo le impostazioni predefinite di sistema.

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

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

File TOML che contiene il contenuto convertito del file di configurazione JSON. Lo script amazon-cloudwatch-agent-ctl genera questo file. Gli utenti non devono modificare direttamente questo file. Può essere utile per verificare che la traduzione da JSON a TOML abbia avuto successo.

/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml o /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.toml

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

Ricerca di informazioni sulle versioni dell'agente CloudWatch

Per trovare il numero di versione dell'agente CloudWatch su un server Linux, immetti il seguente comando:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status

Per trovare il numero di versione dell'agente CloudWatch su Windows Server, immetti il seguente comando:

& $Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1 -m ec2 -a status
Nota

L'utilizzo di questo comando è il modo corretto per trovare la versione dell'agente CloudWatch. Se utilizzi Programs and Features (Programmi e funzionalità) nel Pannello di controllo, verrà visualizzato un numero di versione errato.

Puoi anche scaricare un file README relativo alle modifiche più recenti all'agente e un file che indica il numero di versione attualmente disponibile per il download. Questi file si trovano nelle seguenti posizioni:

  • https://s3.amazonaws.com/amazoncloudwatch-agent/info/latest/RELEASE_NOTES o https://s3.region.amazonaws.com/amazoncloudwatch-agent-Region/info/latest/RELEASE_NOTES

  • https://s3.amazonaws.com/amazoncloudwatch-agent/info/latest/CWAGENT_VERSION o https://s3.region.amazonaws.com/amazoncloudwatch-agent-Region/info/latest/CWAGENT_VERSION

Log generati dall'agente CloudWatch

L'agente genera un log durante la sua esecuzione. Questo log include le informazioni relative alla risoluzione dei problemi. Questo log è il file amazon-cloudwatch-agent.log. Il percorso del file è /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log nei server Linux e $Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log nei server che eseguono Windows Server.

Puoi configurare l'agente per registrare dettagli aggiuntivi nel file amazon-cloudwatch-agent.log. Nella sezione agent del file di configurazione dell'agente, imposta il campo debug su true, quindi riconfigura e riavvia l'agente CloudWatch. Per disattivare la registrazione di queste informazioni supplementari, imposta il campo debug su false. Quindi, riconfigura e riavvia l'agente. Per ulteriori informazioni, consultare Creazione o modifica manuale del file di configurazione dell'agente CloudWatch.

Nelle versioni 1.247350.0 e successive dell'agente CloudWatch è possibile impostare il campo aws_sdk_log_level nella sezione agent di un file di configurazione dell'agente su una o più opzioni tra le seguenti. Separare più opzioni con il carattere |.

  • LogDebug

  • LogDebugWithSigning

  • LogDebugWithHTTPBody

  • LogDebugRequestRetries

  • LogDebugWithEventStreamBody

Per ulteriori informazioni su queste opzioni, consulta LogLevelType .

Arresto e riavvio dell'agente CloudWatch

Puoi arrestare manualmente l'agente CloudWatch tramite AWS Systems Manager o la riga di comando.

Per arrestare l'agente CloudWatch tramite Run Command
  1. Apri la console Systems Manager all'indirizzo https://console.aws.amazon.com/systems-manager/.

  2. Nel riquadro di navigazione seleziona Run Command.

    oppure

    Se si apre la home page AWS Systems Manager, scorri e seleziona Explore Run Command (Esplora Run Command).

  3. Seleziona Run command (Esegui comando).

  4. Nell'elenco Command document (Documento comando), seleziona AmazonCloudWatch-ManageAgent.

  5. Nell'area Targets (Target) scegli l'istanza su cui hai installato l'agente CloudWatch.

  6. Nell'elenco Action (Operazione), seleziona stop (arresta).

  7. Non compilare i campi Optional Configuration Source (Origine configurazione opzionale) e Optional Configuration Location (Percorso configurazione opzionale).

  8. Scegli Run (Esegui).

Per arrestare l'agente CloudWatch in locale tramite la riga di comando
  • In un server Linux, immetti quanto segue:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop

    In un server che esegue Windows Server, immetti quanto segue in PowerShell come amministratore:

    & $Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1 -m ec2 -a stop

Per riavviare l'agente, segui le istruzioni descritte in Avvio dell'agente CloudWatch.