Scenari comuni CloudWatch con l'agente - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scenari comuni CloudWatch con l'agente

Le sezioni seguenti descrivono come completare le attività di configurazione e personalizzazione comuni per l'agente. CloudWatch

Esecuzione dell' CloudWatch agente come utente diverso

Sui server Linux, CloudWatch viene eseguito come utente root per impostazione predefinita. Per fare in modo che l'agente venga eseguito come utente diverso, utilizzate il run_as_user parametro nella agent sezione del file di configurazione dell' CloudWatch agente. Questa opzione è disponibile solo su server Linux.

Se stai già eseguendo l'agente con l'utente root e desideri cambiare per utilizzare un utente diverso, utilizza una delle procedure seguenti.

Per eseguire l' CloudWatch agente come utente diverso su un'istanza EC2 che esegue Linux
  1. Scarica e installa un nuovo pacchetto di CloudWatch agenti. Per ulteriori informazioni, consulta Scarica il pacchetto dell' CloudWatch agente.

  2. Creare un nuovo utente Linux o utilizzare l'utente predefinito denominato cwagent creato dal file RPM o DEB.

  3. Fornire le credenziali per questo utente in uno dei seguenti modi:

    • Se il file .aws/credentials esiste nella home directory dell'utente root, è necessario creare un file di credenziali per l'utente che verrà utilizzato per eseguire l' CloudWatch agente. Questo file di credenziali sarà /home/username/.aws/credentials. Quindi impostare il valore del parametro shared_credential_file in common-config.toml sul nome percorso del file delle credenziali. Per ulteriori informazioni, consulta la pagina (Opzionale) Modifica della configurazione comune delle informazioni relative al proxy o alla regione.

    • Se il file .aws/credentials non esiste nella directory home dell'utente root, puoi procedere in uno dei seguenti modi:

      • Crea un file di credenziali per l'utente che utilizzerai per eseguire l' CloudWatch agente. Questo file di credenziali sarà /home/username/.aws/credentials. Quindi impostare il valore del parametro shared_credential_file in common-config.toml sul nome percorso del file delle credenziali. Per ulteriori informazioni, consulta la pagina (Opzionale) Modifica della configurazione comune delle informazioni relative al proxy o alla regione.

      • Anziché creare un file di credenziali, collega un ruolo IAM all'istanza. L'agente usa questo ruolo come provider di credenziali.

  4. Nel file di configurazione CloudWatch dell'agente, aggiungi la seguente riga nella agent sezione:

    "run_as_user": "username"

    Apportare altre modifiche al file di configurazione in base alle esigenze. Per ulteriori informazioni, consulta la pagina Creare il file di configurazione CloudWatch dell'agente

  5. Concedi all'utente le autorizzazioni richieste. L'utente deve disporre delle autorizzazioni Read (r) per i file di log da raccogliere e deve disporre dell'autorizzazione Execute (x) per ogni directory nel percorso dei file di log.

  6. Avviare l'agente con il file di configurazione modificato.

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:configuration-file-path
Per eseguire l' CloudWatch agente come utente diverso su un server locale che esegue Linux
  1. Scarica e installa un nuovo pacchetto di CloudWatch agenti. Per ulteriori informazioni, consulta Scarica il pacchetto dell' CloudWatch agente.

  2. Creare un nuovo utente Linux o utilizzare l'utente predefinito denominato cwagent creato dal file RPM o DEB.

  3. Archiviare le credenziali di questo utente in un percorso a cui l'utente può accedere, ad esempio /home/username/.aws/credentials.

  4. Impostare il valore del parametro shared_credential_file in common-config.toml sul nome percorso del file delle credenziali. Per ulteriori informazioni, consulta (Opzionale) Modifica della configurazione comune delle informazioni relative al proxy o alla regione.

  5. Nel file di configurazione CloudWatch dell'agente, aggiungi la seguente riga nella agent sezione:

    "run_as_user": "username"

    Apportare altre modifiche al file di configurazione in base alle esigenze. Per ulteriori informazioni, consulta la pagina Creare il file di configurazione CloudWatch dell'agente

  6. Concedi all'utente le autorizzazioni richieste. L'utente deve disporre delle autorizzazioni Read (r) per i file di log da raccogliere e deve disporre dell'autorizzazione Execute (x) per ogni directory nel percorso dei file di log.

  7. Avviare l'agente con il file di configurazione modificato.

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

In che modo l' CloudWatch agente gestisce i file di registro sparsi

I file sparse sono file con blocchi vuoti e contenuti reali. Un file sparse utilizza lo spazio su disco in modo più efficiente scrivendo brevi informazioni che rappresentano i blocchi vuoti sul disco al posto dei byte nulli effettivi che costituiscono il blocco. Ciò rende la dimensione effettiva di un file sparse in genere molto più piccola della sua dimensione apparente.

Tuttavia, l' CloudWatch agente non tratta i file sparsi in modo diverso rispetto ai file normali. Quando l'agente legge un file sparse, i blocchi vuoti vengono trattati come blocchi "reali" con i byte nulli. Per questo motivo, l' CloudWatch agente pubblica tanti byte quanti sono le dimensioni apparenti di un file sparso. CloudWatch

La configurazione dell' CloudWatch agente per la pubblicazione di un file sparso può comportare CloudWatch costi superiori al previsto, pertanto si consiglia di non farlo. Ad esempio, /var/logs/lastlog in Linux di solito si tratta di un file molto scarso e si consiglia di non pubblicarlo su. CloudWatch

Aggiungere dimensioni personalizzate alle metriche raccolte dall'agente CloudWatch

Per aggiungere dimensioni personalizzate, ad esempio tag ai parametri raccolti dall'agente, aggiungi il campo append_dimensions nella sezione del file di configurazione dell'agente che elenca i parametri.

Ad esempio, la seguente sezione di esempio del file di configurazione aggiunge una dimensione personalizzata denominata stackName con un valore di Prod ai parametri cpu e disk raccolti dall'agente.

"cpu":{ "resources":[ "*" ], "measurement":[ "cpu_usage_guest", "cpu_usage_nice", "cpu_usage_idle" ], "totalcpu":false, "append_dimensions":{ "stackName":"Prod" } }, "disk":{ "resources":[ "/", "/tmp" ], "measurement":[ "total", "used" ], "append_dimensions":{ "stackName":"Prod" } }

Ogni volta che modifichi il file di configurazione dell'agente, dovrai riavviare l'agente per implementare le modifiche.

File di configurazione di più CloudWatch agenti

Sia sui server Linux che sui server Windows, è possibile configurare l' CloudWatch agente per utilizzare più file di configurazione. Ad esempio, puoi utilizzare un file di configurazione comune che raccoglie un set di parametri e i log che desideri raccogliere da tutti i server dell'infrastruttura. Potrai quindi possibile utilizzare altri file di configurazione che raccolgono i parametri da determinate applicazioni o in determinate situazioni.

Per effettuare tale configurazione, dovrai innanzitutto creare i file di configurazione da utilizzare. I file di configurazione che verranno utilizzati insieme nello stesso server devono avere nomi diversi. È possibile archiviare i file di configurazione nei server o in Parameter Store.

Avviate l' CloudWatch agente utilizzando l'fetch-configopzione e specificate il primo file di configurazione. Per aggiungere il secondo file di configurazione all'agente in esecuzione, utilizzare lo stesso comando, ma con l'opzione append-config. Verranno raccolti tutti i parametri, i log e le tracce elencati in entrambi i file di configurazione. I seguenti comandi di esempio illustrano questo scenario utilizzando gli archivi di configurazione come file. La prima riga avvia l'agente utilizzando il file di configurazione infrastructure.json, mentre la seconda aggiunge il file di configurazione app.json.

I seguenti comandi di esempio sono per Linux.

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/tmp/infrastructure.json
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/tmp/app.json

I comandi di esempio seguenti sono per Windows Server.

& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\infrastructure.json"
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a append-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\app.json"

I seguenti file di configurazione di esempio mostrano l'utilizzo di questa funzione. Il primo file di configurazione viene utilizzato per tutti i server dell'infrastruttura, mentre il secondo raccoglie solo i log da una determinata applicazione e viene aggiunto ai server che eseguono tale applicazione.

infrastructure.json

{ "metrics": { "metrics_collected": { "cpu": { "resources": [ "*" ], "measurement": [ "usage_active" ], "totalcpu": true }, "mem": { "measurement": [ "used_percent" ] } } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log", "log_group_name": "amazon-cloudwatch-agent.log" }, { "file_path": "/var/log/messages", "log_group_name": "/var/log/messages" } ] } } } }

app.json

{ "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/app/app.log*", "log_group_name": "/app/app.log" } ] } } } }

Tutti i file di configurazione aggiunti alla configurazione devono avere nomi diversi fra loro e rispetto al file di configurazione iniziale. Se usi append-config con un file di configurazione con lo stesso nome di quello già in uso dall'agente, il comando di aggiunta sovrascriverà le informazioni del primo file di configurazione, anziché aggiungerle. Ciò vale anche se i due file di configurazione con lo stesso nome si trovano in percorsi diversi.

L'esempio precedente mostra l'uso di due file di configurazione, ma non vi è alcun limite al numero di file di configurazione che puoi aggiungere all'agente di configurazione. Puoi anche combinare l'uso di file di configurazione che si trovano nei server e le configurazioni situate in Parameter Store.

Aggregazione o aggregazione delle metriche raccolte dall'agente CloudWatch

Per aggregare o eseguire il rollup dei parametri raccolti dall'agente, aggiungi un campo aggregation_dimensions alla sezione relativa a tale parametro nel file di configurazione dell'agente.

Ad esempio, il seguente frammento del file di configurazione esegue il rollup dei parametri sulla dimensione AutoScalingGroupName. Vengono aggregati i parametri da tutte le istanze in ogni gruppo Auto Scaling e possono essere visualizzati complessivamente.

"metrics": { "cpu":{...} "disk":{...} "aggregation_dimensions" : [["AutoScalingGroupName"]] }

Per eseguire il rollup in base alla combinazione di ogni dimensione InstanceId e InstanceType oltre al rollup nel nome del gruppo Auto Scaling, aggiungi quanto segue.

"metrics": { "cpu":{...} "disk":{...} "aggregation_dimensions" : [["AutoScalingGroupName"], ["InstanceId", "InstanceType"]] }

Per eseguire il rollup dei parametri in un'unica raccolta, invece, utilizza [].

"metrics": { "cpu":{...} "disk":{...} "aggregation_dimensions" : [[]] }

Ogni volta che modifichi il file di configurazione dell'agente, dovrai riavviare l'agente per implementare le modifiche.

Raccolta di metriche ad alta risoluzione con l'agente CloudWatch

Il campo metrics_collection_interval specifica l'intervallo di tempo per i parametri raccolti, in secondi. Specificando un valore inferiore a 60 per questo campo, i parametri vengono raccolti come i parametri ad alta risoluzione.

Ad esempio, se i parametri devono essere tutti ad alta risoluzione e raccolti ogni 10 secondi, specifica 10 come valore di metrics_collection_interval nella sezione agent come intervallo di raccolta dei parametri globale.

"agent": { "metrics_collection_interval": 10 }

In alternativa, il seguente esempio imposta i parametri cpu in modo che siano raccolti ogni secondo, mentre tutti gli altri parametri vengono raccolti ogni minuto.

"agent":{ "metrics_collection_interval": 60 }, "metrics":{ "metrics_collected":{ "cpu":{ "resources":[ "*" ], "measurement":[ "cpu_usage_guest" ], "totalcpu":false, "metrics_collection_interval": 1 }, "disk":{ "resources":[ "/", "/tmp" ], "measurement":[ "total", "used" ] } } }

Ogni volta che modifichi il file di configurazione dell'agente, dovrai riavviare l'agente per implementare le modifiche.

Invio di parametri, log e tracce a un altro account

Per fare in modo che l' CloudWatch agente invii le metriche, i log o le tracce a un account diverso, specifica un role_arn parametro nel file di configurazione dell'agente sul server di invio. Il valore role_arn specifica un ruolo IAM nell'account di destinazione che l'agente usa durante l'invio di dati a tale account. Questo ruolo consente all'account di invio di assumere un ruolo corrispondente nell'account di destinazione quando si distribuiscono i parametri o i log all'account di destinazione.

È anche possibile specificare stringhe role_arn separate nel file di configurazione dell'agente: uno da utilizzare quando si inviano i parametri e uno per l'invio delle tracce.

L'esempio seguente di parte della sezione agent del file di configurazione imposta l'agente in modo da utilizzare CrossAccountAgentRole per l'invio di dati a un altro account.

{ "agent": { "credentials": { "role_arn": "arn:aws:iam::123456789012:role/CrossAccountAgentRole" } }, ..... }

In alternativa, l'esempio seguente imposta ruoli diversi per l'account di invio da utilizzare per l'invio di parametri, log e tracce:

"metrics": { "credentials": { "role_arn": "RoleToSendMetrics" }, "metrics_collected": {....
"logs": { "credentials": { "role_arn": "RoleToSendLogs" }, ....

Policy richieste

Quando si specifica un role_arn nel file di configurazione dell'agente, è anche necessario accertarsi che i ruoli IAM degli account di invio e di destinazione abbiano determinate policy. I ruoli in entrambi gli account di invio e di destinazione devono avere CloudWatchAgentServerPolicy. Per ulteriori informazioni sull'assegnazione di questa policy a un ruolo, consulta Crea ruoli IAM da utilizzare con l' CloudWatch agente sulle istanze Amazon EC2.

Il ruolo nell'account di invio, inoltre, deve includere la seguente policy. Aggiungere questa policy alla scheda Permissions (Autorizzazioni) nella console IAM quando si modifica il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::target-account-ID:role/agent-role-in-target-account" ] } ] }

Il ruolo nell'account di destinazione deve includere la seguente policy, in modo che riconosca il ruolo IAM utilizzato dall'account di invio. Aggiungi questa policy alla scheda Trust relationships (Relazioni di trust) nella console IAM quando modifichi il ruolo. Il ruolo nell'account di destinazione in cui si aggiunge questa policy è il ruolo creato in Crea ruoli e utenti IAM da utilizzare con l' CloudWatch agente. Questo ruolo è il ruolo specificato in agent-role-in-target-account nella policy utilizzata dall'account di invio.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::sending-account-ID:role/role-in-sender-account" ] }, "Action": "sts:AssumeRole" } ] }

Differenze nel timestamp tra l'agente unificato e il precedente CloudWatch agente Logs CloudWatch

L' CloudWatch agente supporta un set diverso di simboli per i formati di timestamp rispetto al precedente agente Logs. CloudWatch Tali differenze sono mostrate nella seguente tabella.

Simboli supportati da entrambi gli agenti Simboli supportati solo dall'agente unificato CloudWatch Simboli supportati solo dall'agente CloudWatch Logs precedente

%A, %a, %b, %B, %d, %f, %H, %l, %m, %M, %p, %S, %y, %Y, %Z, %z

%-d, %-l, %-m, %-M, %-S

%c, %j, %U, %W, %w

Per ulteriori informazioni sul significato dei simboli supportati dal nuovo CloudWatch agente, consulta la sezione CloudWatch Agent Configuration File: Logs nella Amazon CloudWatch User Guide. Per informazioni sui simboli supportati dall'agente CloudWatch Logs, consulta il file di configurazione dell'agente nella Amazon CloudWatch Logs User Guide.