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
Questa sezione fornisce diversi scenari che descrivono come completare le attività di configurazione e personalizzazione comuni per l' CloudWatch agente.
Argomenti
- Esecuzione dell' CloudWatch agente come utente diverso
- In che modo l' CloudWatch agente gestisce i file di registro sparsi
- Aggiungere dimensioni personalizzate alle metriche raccolte dall'agente CloudWatch
- File di configurazione di più CloudWatch agenti
- Aggregazione o aggregazione delle metriche raccolte dall'agente CloudWatch
- Raccolta di metriche ad alta risoluzione con l'agente CloudWatch
- Invio di parametri, log e tracce a un altro account
- Differenze nel timestamp tra l'agente unificato e il CloudWatch precedente agente Logs 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'EC2istanza che esegue Linux
Scarica e installa un nuovo pacchetto di CloudWatch agenti. Per ulteriori informazioni, consulta Scarica il pacchetto dell' CloudWatch agente.
Crea un nuovo utente Linux o usa l'utente predefinito denominato con
cwagent
cui è stato creato il DEB file RPM o.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/
. Quindi impostare il valore del parametrousername
/.aws/credentialsshared_credential_file
incommon-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/
. Quindi impostare il valore del parametrousername
/.aws/credentialsshared_credential_file
incommon-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.Invece di creare un file di credenziali, allega un IAM ruolo all'istanza. L'agente usa questo ruolo come provider di credenziali.
Nel file di configurazione dell' CloudWatch agente, aggiungete 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
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.
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
Scarica e installa un nuovo pacchetto di CloudWatch agenti. Per ulteriori informazioni, consulta Scarica il pacchetto dell' CloudWatch agente.
Crea un nuovo utente Linux o usa l'utente predefinito denominato con
cwagent
cui è stato creato il DEB file RPM o.Archiviare le credenziali di questo utente in un percorso a cui l'utente può accedere, ad esempio
/home/
.username
/.aws/credentialsImpostare il valore del parametro
shared_credential_file
incommon-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.Nel file di configurazione CloudWatch dell'agente, aggiungete 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
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.
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-config
opzione 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 role_arn
valore specifica un IAM ruolo nell'account di destinazione che l'agente utilizza per inviare dati all'account di destinazione. 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, è inoltre necessario assicurarsi che i IAM ruoli degli account di invio e di destinazione abbiano determinate politiche. 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 IAM ruoli da utilizzare con l' CloudWatch agente sulle EC2 istanze Amazon.
Il ruolo nell'account di invio, inoltre, deve includere la seguente policy. Aggiungi questo criterio nella scheda Autorizzazioni della IAM console quando modifichi 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 politica in modo da riconoscere il IAM ruolo utilizzato dall'account di invio. Aggiungi questo criterio nella scheda Relazioni di fiducia nella IAM console quando modifichi il ruolo. Il ruolo nell'account di destinazione in cui si aggiunge questa policy è il ruolo creato in Crea IAM ruoli e utenti da utilizzare con l' CloudWatch agente. Questo ruolo è il ruolo specificato in
nella policy utilizzata dall'account di invio.agent-role-in-target-account
{ "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 CloudWatch precedente 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.