

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à.

# Utilizzo dell' CloudWatch agente per inviare log in formato metrico incorporato
<a name="CloudWatch_Embedded_Metric_Format_Generation_CloudWatch_Agent"></a>

 Questa sezione descrive come installare e utilizzare l' CloudWatch agente. La prima parte di questa sezione descrive come installare l' CloudWatch agente. La seconda parte di questa sezione descrive come utilizzare l' CloudWatch agente per inviare log in formato metrico incorporato. Se si desidera utilizzare questo metodo, è necessario installare l' CloudWatch agente dal quale Servizi AWS si desidera inviare i log in formato metrico incorporato. Dopodiché puoi iniziare a inviare gli eventi. L' CloudWatch agente deve avere la versione 1.230621.0 o successiva.

**Nota**  
Non è necessario installare l' CloudWatch agente per inviare i log dalle funzioni Lambda.  
I timeout della funzione Lambda non vengono gestiti automaticamente. Ciò significa che se la funzione scade prima che i parametri vengano scaricati, i parametri per tale chiamata non verranno acquisiti.

## Installazione dell'agente CloudWatch
<a name="CloudWatch_Embedded_Metric_Format_Generation_Install_Agent"></a>

Installa l' CloudWatch agente per ogni servizio che deve inviare log in formato metrico incorporato.

### Installazione dell' CloudWatch agente su EC2
<a name="CloudWatch_Embedded_Metric_Format_Generation_Install_Agent_EC2"></a>

Innanzitutto, installa l' CloudWatch agente sull'istanza. Per ulteriori informazioni, consulta [Installazione dell'agente CloudWatch](install-CloudWatch-Agent-on-EC2-Instance.md).

Dopo aver installato l'agente, configura l'agente per l'ascolto su una porta UDP o TCP dei in log Embedded Metric Format. Di seguito è riportato un esempio di questa configurazione che rimane in ascolto sul socket predefinito `tcp:25888`. Per ulteriori informazioni sulla configurazione dell'agente, consulta [Crea o modifica manualmente il file di configurazione CloudWatch dell'agente](CloudWatch-Agent-Configuration-File-Details.md).

```
{
  "logs": {
    "metrics_collected": {
      "emf": { }
    }
  }
}
```

### Installazione dell' CloudWatch agente su Amazon ECS
<a name="CloudWatch_Embedded_Metric_Format_Generation_Install_Agent_ECS"></a>

Il modo più semplice per distribuire l' CloudWatch agente su Amazon ECS è eseguirlo come sidecar, definendolo nella stessa definizione di attività dell'applicazione.

**Creazione del file di configurazione dell'agente**

Crea il file di configurazione CloudWatch dell'agente localmente. In questo esempio, il percorso file relativo sarà `amazon-cloudwatch-agent.json`.

Per ulteriori informazioni sulla configurazione dell'agente, consulta [Crea o modifica manualmente il file di configurazione CloudWatch dell'agente](CloudWatch-Agent-Configuration-File-Details.md).

```
{
  "logs": {
    "metrics_collected": {
      "emf": { }
    }
  }
}
```

**Configurazione push in SSM Parameter Store**

Immettere il seguente comando per inviare il file di configurazione dell' CloudWatch agente all'archivio dei parametri di AWS Systems Manager (SSM).

```
aws ssm put-parameter \
    --name "cwagentconfig" \
    --type "String" \
    --value "`cat amazon-cloudwatch-agent.json`" \
    --region "{{region}}"
```

**Configurazione della definizione di attività**

Configura la definizione dell'attività per utilizzare l' CloudWatch agente ed esporre la porta TCP o UDP. La definizione di attività di esempio da utilizzare dipende dalla modalità di rete.

Tieni presente che `webapp` specifica la variabile di ambiente `AWS_EMF_AGENT_ENDPOINT`. Questa viene utilizzata dalla libreria e deve mostrare l'endpoint su cui l'agente è in ascolto. Inoltre, `cwagent` specifica `CW_CONFIG_CONTENT` come parametro “valueFrom” che punta alla configurazione SSM creata nella fase precedente.

Questa sezione contiene un esempio per la modalità bridge e un esempio per la modalità host o awsvpc. Per altri esempi di come configurare l' CloudWatch agente su Amazon ECS, consulta il repository di esempi [Github](https://github.com/aws-samples/amazon-cloudwatch-container-insights/tree/master/ecs-task-definition-templates/deployment-mode/sidecar)

Di seguito è riportato un esempio di modalità bridge. Quando è abilitata la modalità di rete bridge, l'agente deve essere collegato all'applicazione utilizzando il parametro `links` e deve essere indirizzato utilizzando il nome del container.

```
{
  "containerDefinitions": [
          {
              "name": "webapp",
              "links": [ "cwagent" ],
              "image": "my-org/web-app:latest",
              "memory": 256,
              "cpu": 256,
              "environment": [{
                "name": "AWS_EMF_AGENT_ENDPOINT",
                "value": "tcp://cwagent:25888"
              }],
          },
          {
              "name": "cwagent",
              "mountPoints": [],
              "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest",
              "memory": 256,
              "cpu": 256,
              "portMappings": [{
                  "protocol": "tcp",
                  "containerPort": 25888
              }],
              "environment": [{
                "name": "CW_CONFIG_CONTENT",
                "valueFrom": "cwagentconfig"
              }],
          }
      ],
}
```

Di seguito è riportato un esempio per la modalità host o la modalità awsvpc. Durante l'esecuzione su tali modalità di rete, l'agente può essere indirizzato su `localhost`.

```
{
  "containerDefinitions": [
          {
              "name": "webapp",
              "image": "my-org/web-app:latest",
              "memory": 256,
              "cpu": 256,
              "environment": [{
                "name": "AWS_EMF_AGENT_ENDPOINT",
                "value": "tcp://127.0.0.1:25888"
              }],
          },
          {
              "name": "cwagent",
              "mountPoints": [],
              "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest",
              "memory": 256,
              "cpu": 256,
              "portMappings": [{
                  "protocol": "tcp",
                  "containerPort": 25888
              }],
              "environment": [{
                "name": "CW_CONFIG_CONTENT",
                "valueFrom": "cwagentconfig"
              }],
          }
      ],
}
```

**Nota**  
In modalità awsvpc, è necessario fornire un indirizzo IP pubblico al VPC (solo Fargate), configurare un gateway NAT o configurare un endpoint VPC Logs. CloudWatch Per ulteriori informazioni sulla configurazione di un NAT, consulta [Gateway NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html). Per ulteriori informazioni sulla configurazione di un endpoint VPC CloudWatch Logs, [consulta CloudWatch Using Logs with](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html) Interface VPC Endpoints.  
Di seguito è riportato un esempio di come assegnare un indirizzo IP pubblico a un'attività che utilizza il tipo di lancio Fargate.  

```
aws ecs run-task \ 
--cluster {{cluster-name}} \
--task-definition cwagent-fargate \
--region {{region}} \
--launch-type FARGATE \
--network-configuration "awsvpcConfiguration={subnets=[{{subnetId}}],securityGroups=[{{sgId}}],assignPublicIp=ENABLED}"
```

**Garantire le autorizzazioni**

Assicurati che il ruolo IAM che esegue le attività disponga dell'autorizzazione per leggere dall'Archivio parametri SSM. Puoi aggiungere questa autorizzazione allegando la SSMRead OnlyAccess politica di **Amazon**. A questo scopo, immetti il comando seguente.

```
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess \
--role-name CWAgentECSExecutionRole
```

### Installazione dell' CloudWatch agente su Amazon EKS
<a name="CloudWatch_Embedded_Metric_Format_Generation_Install_Agent_EKS"></a>

Parti di questo processo possono essere ignorate se CloudWatch Container Insights è già stato installato su questo cluster.

Permissions

Se Container Insights non è già stato installato, assicurati innanzitutto che i nodi Amazon EKS dispongano delle autorizzazioni IAM appropriate. Dovrebbero avere l'**CloudWatchAgentServerPolicy**allegato. Per ulteriori informazioni, consulta [Verifica dei prerequisiti per Container Insights in CloudWatch](Container-Insights-prerequisites.md).

**Crea ConfigMap**

Crea un ConfigMap messaggio per l'agente. Indica ConfigMap inoltre all'agente di ascoltare su una porta TCP o UDP. Usa quanto segue. ConfigMap

```
# cwagent-emf-configmap.yaml
apiVersion: v1
data:
  # Any changes here must not break the JSON format
  cwagentconfig.json: |
    {
      "agent": {
        "omit_hostname": true
      },
      "logs": {
        "metrics_collected": {
          "emf": { }
        }
      }
    }
kind: ConfigMap
metadata:
  name: cwagentemfconfig
  namespace: default
```

Se hai già installato Container Insights, aggiungi la `"emf": { }` riga seguente a quella esistente ConfigMap.

**Applica il ConfigMap**

Immettere il comando seguente per applicare il ConfigMap.

```
kubectl apply -f cwagent-emf-configmap.yaml
```

**Distribuzione dell'agente**

Per distribuire l' CloudWatch agente come sidecar, aggiungete l'agente alla definizione del contenitore, come illustrato nell'esempio seguente.

```
apiVersion: v1
kind: Pod
metadata:
  name: myapp
  namespace: default
spec:
  containers:
    # Your container definitions go here
    - name: web-app
      image: my-org/web-app:latest
    # CloudWatch Agent configuration
    - name: cloudwatch-agent
      image: public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest
      imagePullPolicy: Always
      resources:
        limits:
          cpu: 200m
          memory: 100Mi
        requests:
          cpu: 200m
          memory: 100Mi
      volumeMounts:
        - name: cwagentconfig
          mountPath: /etc/cwagentconfig
      ports:
  # this should match the port configured in the ConfigMap
        - protocol: TCP
          hostPort: 25888
          containerPort: 25888
  volumes:
    - name: cwagentconfig
      configMap:
        name: cwagentemfconfig
```

## Utilizzo dell' CloudWatch agente per inviare log in formato metrico incorporato
<a name="CloudWatch_Embedded_Metric_Format_Generation_CloudWatch_Agent_Send_Logs"></a>

Una volta installato e CloudWatch funzionante l'agente, è possibile inviare i log in formato metrico incorporato tramite TCP o UDP. Durante l'invio di log sull'agente è necessario rispettare due requisiti:
+ I log devono contenere una chiave `LogGroupName` che indica all'agente quale gruppo di log utilizzare.
+ Ogni evento di log deve trovarsi su una singola riga. In altre parole, un evento di log non può contenere il carattere di nuova riga (n).

Gli eventi di log devono inoltre seguire le specifiche Embedded Metric Format. Per ulteriori informazioni, consulta [Specifica: Embedded Metric Format](CloudWatch_Embedded_Metric_Format_Specification.md).

Se prevedi di creare allarmi su parametri creati utilizzando il formato dei parametri incorporati, consulta [Impostazione degli allarmi sui parametri creati con il formato dei parametri incorporati](CloudWatch_Embedded_Metric_Format_Alarms.md) per ottenere dei suggerimenti.

Di seguito è riportato un esempio di invio manuale di eventi di log da una shell bash Linux. Puoi invece utilizzare le interfacce socket UDP fornite dal linguaggio di programmazione preferito. 

```
echo '{"_aws":{"Timestamp":1574109732004,"LogGroupName":"Foo","CloudWatchMetrics":[{"Namespace":"MyApp","Dimensions":[["Operation"]],"Metrics":[{"Name":"ProcessingLatency","Unit":"Milliseconds","StorageResolution":60}]}]},"Operation":"Aggregator","ProcessingLatency":100}' \
> /dev/udp/0.0.0.0/25888
```

**Nota**  
 Con la specifica Embedded Metric Format, puoi tenere traccia dell'elaborazione dei registri EMF in base ai parametri pubblicati nello spazio dei nomi `AWS/Logs` del tuo account. Questi possono essere utilizzati per tenere traccia della generazione di parametri con esito negativo per EMF e per verificare se gli errori sono dovuti all'analisi o alla convalida. [Per maggiori dettagli, consulta Monitoraggio con metriche. CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Monitoring-CloudWatch-Metrics.html) 