

# Coleta de métricas, logs e rastreamentos usando o agente do CloudWatch
<a name="Install-CloudWatch-Agent"></a>

O agente do CloudWatch é um componente de software que coleta métricas, logs e rastreamentos de suas instâncias do Amazon EC2, servidores on-premises e aplicações em contêineres. Esse componente possibilita que você monitore a infraestrutura e as aplicações de forma mais abrangente em comparação com o monitoramento básico fornecido por padrão. 

**Benefícios principais**
+ Coletar métricas em nível de sistema (incluindo CPU, memória, disco e rede) 
+ Reunir métricas personalizadas provenientes das suas aplicações
+ Coletar e centralizar logs provenientes de várias fontes
+ Monitorar ambientes da AWS e on-premises com uma única ferramenta 
+ Configurar alarmes e notificações com base nos dados coletados 

O agente do CloudWatch possibilita que você realize as seguintes ações:
+ Colete métricas internas no nível do sistema de instâncias do Amazon EC2 entre sistemas operacionais. As métricas podem incluir métricas de convidados, além das métricas para instâncias do EC2. As métricas adicionais que podem ser coletadas são listadas em [Métricas coletadas pelo atendente do CloudWatch](metrics-collected-by-CloudWatch-agent.md).
+ Colete métricas no nível do sistema dos servidores on-premises. Isso pode incluir servidores em um ambiente híbrido, bem como servidores não gerenciados pela AWS.
+ Recupere métricas personalizadas de suas aplicações ou serviços usando os protocolos `StatsD` e `collectd`. O protocolo `StatsD` é compatível com os servidores Linux e que executam o Windows Server. `collectd` tem suporte somente em servidores Linux.
+ Colete os logs das instâncias do Amazon EC2 e dos servidores on-premises que executam o Linux ou o Windows Server.
**nota**  
O atendente do CloudWatch não é compatível com a coleta de logs de pipes FIFO.
+ Envie as métricas para o CloudWatch ou o Amazon Managed Service for Prometheus, ou para ambos. O arquivo de configuração do agente do CloudWatch contém um parâmetro `metrics_destinations` na seção de `metrics`. Você pode especificar `cloudwatch`, `amp` ou ambos nesse parâmetro.
+ A versão 1.300031.0 e as versões posteriores podem ser usadas para habilitar o CloudWatch Application Signals. Para obter mais informações, consulte [Application Signals](CloudWatch-Application-Monitoring-Sections.md).
+ A versão 1.300025.0 e posteriores podem coletar rastros dos SDKs do cliente [OpenTelemetry](https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html#xray-instrumenting-opentel) ou do [X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html#xray-instrumenting-xray-sdk) e enviá-los ao X-Ray.

  O uso do agente do CloudWatch permite coletar rastreamentos sem a necessidade de executar um daemon separado para a coleta de rastreamento, o que ajuda a reduzir o número de agentes que você executa e gerencia.

As métricas enviadas para o CloudWatch podem ser visualizadas no CloudWatch da mesma forma que quaisquer outras métricas do CloudWatch. O namespace do CloudWatch padrão para métricas coletadas pelo atendente do CloudWatch é `CWAgent`, embora seja possível especificar um namespace diferente quando você configura o atendente.

Os logs coletados pelo agente do CloudWatch são processados e armazenados no Amazon CloudWatch Logs, assim como os logs coletados pelo antigo agente do CloudWatch Logs. Para obter informações sobre o preço do CloudWatch Logs, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

As métricas coletadas pelo atendente do CloudWatch são cobradas como métricas personalizadas. Para obter mais informações sobre o preço de métricas do CloudWatch, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

O atendente do CloudWatch tem código aberto sob a licença do MIT e é [hospedado no GitHub](https://github.com/aws/amazon-cloudwatch-agent/). Para desenvolver, personalizar ou contribuir com o atendente do CloudWatch, consulte o repositório do GitHub para obter as instruções mais recentes. Ao achar que encontrou um possível problema de segurança, não o publique no GitHub ou em qualquer fórum público. Em vez disso, siga as instruções em [Relatório de vulnerabilidade](https://aws.amazon.com/security/vulnerability-reporting/) ou [envie um e-mail diretamente para a segurança da AWS](mailto:aws-security@amazon.com).

Você pode fazer o download e instalar o agente do CloudWatch manualmente por meio da linha de comando, ou integrá-lo com o AWS Systems Manager. O fluxo geral para a instalação do agente do CloudWatch é o seguinte:

1. Crie perfis ou usuários do IAM que possibilitam ao agente coletar métricas do servidor e, opcionalmente, integrar-se com o AWS Systems Manager.

1. Fazer download do pacote do atendente.

1. Modificar o arquivo de configuração do atendente do CloudWatch e especificar as métricas que você deseja coletar.

1. Instalar e iniciar o atendente em seus servidores.

**Topics**
+ [Sistemas operacionais compatíveis](supported-operating-systems.md)
+ [Pré-requisitos](prerequisites.md)
+ [Baixar o pacote do atendente do CloudWatch](download-CloudWatch-Agent-on-EC2-Instance-commandline-first.md)
+ [Verificar a assinatura do pacote do atendente do CloudWatch](verify-CloudWatch-Agent-Package-Signature.md)
+ [Instalação do atendente do CloudWatch](install-CloudWatch-Agent-on-EC2-Instance.md)
+ [Configure o agente do CloudWatch com o Linux com segurança aprimorada (SELinux)](CloudWatch-Agent-SELinux.md)
+ [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md)
+ [Iniciar o atendente do CloudWatch](start-CloudWatch-Agent-on-premise-SSM-onprem.md)
+ [Métricas coletadas pelo atendente do CloudWatch](metrics-collected-by-CloudWatch-agent.md)
+ [Usar o agente do CloudWatch com a telemetria relacionada](CloudWatch-Agent-RelatedEntities.md)
+ [Cenários comuns com o atendente do CloudWatch](CloudWatch-Agent-common-scenarios.md)
+ [Preferência de credenciais do agente do CloudWatch](CloudWatch-Agent-Credentials-Preference.md)
+ [Solucionar problemas do atendente do CloudWatch](troubleshooting-CloudWatch-Agent.md)

# Sistemas operacionais compatíveis
<a name="supported-operating-systems"></a>

O agente CloudWatch é compatível com os seguintes sistemas operacionais:

## Arquitetura x86-64
<a name="x86-64-support"></a>
+ Amazon Linux 2023
+ Amazon Linux 2
+ Versões 25.04, 24.04 e 22.04 do servidor Ubuntu
+ Red Hat Enterprise Linux (RHEL) versões 10, 9 e 8
+ Debian versão 12
+ SUSE Linux Enterprise Server (SLES) versão 15
+ Oracle Linux versões 9 e 8
+ AlmaLinux versões 10, 9 e 8
+ Rocky Linux versões 10, 9 e 8
+ Computadores com macOS: instâncias M1 e Mac1 do EC2 e computadores que executam macOS 14 (Sonoma), macOS 13 (Ventura) e macOS 12 (Monterey)
+ Windows Server 2025, Windows Server 2022, Windows Server 2019 e Windows Server 2016
+ Windows 11
+ Windows 10 de 64 bits

## Arquitetura ARM64
<a name="arm64-support"></a>
+ Amazon Linux 2023
+ Amazon Linux 2
+ Ubuntu Server versão 22.04
+ Red Hat Enterprise Linux (RHEL) versões 9 e 8
+ Debian versão 12
+ SUSE Linux Enterprise Server 15
+ Computadores com macOS: macOS 14 (Sonoma), macOS 13 (Ventura) e macOS 12 (Monterey)

# Pré-requisitos
<a name="prerequisites"></a>

Certifique-se de que os pré-requisitos apresentados a seguir sejam atendidos antes de instalar o agente do CloudWatch pela primeira vez.

## Perfis e usuários do IAM para o agente do CloudWatch
<a name="iam-setup"></a>

O acesso aos recursos da AWS requer permissões. Você cria uma função do IAM, um usuário do IAM ou ambos para conceder permissões necessárias para o atendente do CloudWatch gravar métricas no CloudWatch.

### Criação de um perfil do IAM para instâncias do Amazon EC2
<a name="iam-role-ec2"></a>

Se você for executar o agente do CloudWatch em instâncias do Amazon EC2, crie um perfil do IAM com as permissões necessárias.

1. Faça login no Console de Gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Perfis** e, em seguida, **Criar perfil**.

1. Verifique se o **serviço da AWS** está selecionado em **Trusted entity type** (Tipo de entidade confiável).

1. Em **Caso de uso**, escolha **EC2** em **Casos de uso comuns**.

1. Escolha **Próximo**.

1. Na lista de políticas, marque a caixa de seleção ao lado de **CloudWatchAgentServerPolicy**. Se necessário, use a caixa de pesquisa para encontrar a política.

1. Escolha **Próximo**.

1. Em **Nome do perfil**, insira um nome exclusivo para o perfil, como `CloudWatchAgentServerRole`. Como opção, atribua uma descrição a ela. Então, escolha **Criar perfil**.

(Opcional) Se o atendente for enviar logs para o CloudWatch Logs e você quiser que ele possa definir políticas de retenção para esses grupos de log, será necessário adicionar a permissão `logs:PutRetentionPolicy` para a função.

### Criação de um usuário do IAM para servidores on-premises
<a name="iam-user-onprem"></a>

Se você for executar o agente do CloudWatch em servidores on-premises, crie um usuário do IAM com as permissões necessárias.

**nota**  
Este cenário precisa de usuários do IAM com acesso programático e credenciais de longo prazo, o que representa um risco de segurança. Para ajudar a reduzir esse risco, recomendamos que você forneça a esses usuários somente as permissões necessárias para realizar a tarefa e que você os remova quando não forem mais necessários.

1. Faça login no Console de Gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Usuários** e, em seguida, **Adicionar usuários**.

1. Digite o nome para o novo usuário.

1. Selecione **Access key – Programmatic access** (Chave de acesso – Acesso programático) e escolha **Next: Permissions** (Próximo: Permissões).

1. Escolha **Anexar políticas existentes diretamente**.

1. Na lista de políticas, marque a caixa de seleção ao lado de **CloudWatchAgentServerPolicy**. Se necessário, use a caixa de pesquisa para encontrar a política.

1. Escolha **Próximo: tags**.

1. Opcionalmente, crie etiquetas destinadas ao novo IAM e, em seguida, escolha **Próximo: Revisar**.

1. Confirme se as políticas corretas estão listadas e selecione **Create user** (Criar usuário).

1. Ao lado do nome no novo usuário, escolha **Mostrar**. Copie a chave de acesso e a chave secreta em um arquivo para que você possa usá-las ao instalar o atendente. Escolha **Fechar**.

### Anexação de um perfil do IAM a uma instância do Amazon EC2
<a name="attach-iam-role"></a>

Para possibilitar que o agente do CloudWatch envie dados provenientes de uma instância do Amazon EC2, você deve anexar o perfil do IAM criado à instância.

Para obter mais informações sobre como anexar um perfil do IAM a uma instância, consulte [Anexar um perfil do IAM a uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/iam-roles-for-amazon-ec2.html#attach-iam-role) no Guia do usuário do Amazon Elastic Compute Cloud.

### Permitir que o atendente do CloudWatch defina a política de retenção de logs
<a name="CloudWatch-Agent-PutLogRetention"></a>

É possível configurar o atendente do CloudWatch para definir a política de retenção para grupos de logs para os quais ele envia eventos de log. Se você fizer isso, deve conceder o `logs:PutRetentionPolicy` à função do IAM ou ao usuário que o atendente usa. O atendente usa uma função do IAM para executar em instâncias do Amazon EC2 e usa um usuário do IAM para servidores on-premises.

**Para conceder permissão à função do IAM do atendente do CloudWatch para definir políticas de retenção de log**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação à esquerda, selecione **Perfis**.

1. Na caixa de pesquisa, digite o início do nome da função do IAM do atendente do CloudWatch. Você escolheu esse nome ao criar a função. Ele pode se chamar `CloudWatchAgentServerRole`.

   Quando você vir a função, escolha o nome da função.

1. Na guia **Permissions** (Permissões), escolha **Add permissions** (Adicionar permissões), **Create inline policy** (Criar política em linha).

1. Escolha a guia **JSON** e copie a seguinte política na caixa, substituindo o JSON padrão na caixa:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "logs:PutRetentionPolicy",
         "Resource": "*"
       }
     ]
   }
   ```

------

1. Selecione **Revisar política**.

1. Em **Name** (Nome), insira **CloudWatchAgentPutLogsRetention** ou algo semelhante e escolha **Create policy** (Criar política).

**Para conceder permissão ao usuário do IAM do atendente do CloudWatch para definir políticas de retenção de log**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação à esquerda, escolha **Usuários**.

1. Na caixa de pesquisa, digite o início do nome do usuário do IAM do atendente do CloudWatch. Você escolheu esse nome ao criar o usuário.

   Quando você vir o usuário, escolha o nome do usuário.

1. Na guia **Permissions** (Permissões), escolha **Add inline policy** (Adicionar política em linha).

1. Escolha a guia **JSON** e copie a seguinte política na caixa, substituindo o JSON padrão na caixa:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "logs:PutRetentionPolicy",
         "Resource": "*"
       }
     ]
   }
   ```

------

1. Escolha **Revisar política**.

1. Em **Name** (Nome), insira **CloudWatchAgentPutLogsRetention** ou algo semelhante e escolha **Create policy** (Criar política).

## Requisitos de rede
<a name="network-requirements"></a>

**nota**  
Quando o servidor estiver em uma sub-rede pública, certifique-se de que haja acesso a um gateway da internet. Quando o servidor estiver em uma sub-rede privada, o acesso será feito por meio dos gateways NAT ou do endpoint da VPC. Para obter mais informações sobre gateways NAT, consulte [https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html).

Suas instâncias do Amazon EC2 devem ter acesso à Internet de saída para enviar dados ao CloudWatch ou ao CloudWatch Logs. Para obter mais informações sobre como configurar o acesso à internet, consulte [Gateways da internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) no Guia do usuário da Amazon VPC.

### Usar endpoints da VPC
<a name="vpc-endpoints"></a>

Se você estiver usando uma VPC e desejar usar o agente do CloudWatch sem acesso à internet pública, pode configurar endpoints da VPC para o CloudWatch e o CloudWatch Logs.

Os endpoints e portas para configurar em seu proxy são os seguintes:
+ Se estiver usando o atendente para coletar métricas, você deverá incluir os endpoints do CloudWatch das regiões apropriadas na lista de permissões. Esses endpoints estão listados em [Endpoints e cotas do Amazon CloudWatch](https://docs.aws.amazon.com/general/latest/gr/cw_region.html).
+ Se estiver usando o atendente para coletar métricas, você deverá incluir os endpoints de logs do CloudWatch das regiões apropriadas na lista de permissões. Esses endpoints estão listados em [Endpoints e cotas do Amazon CloudWatch Logs](https://docs.aws.amazon.com/general/latest/gr/cwl_region.html).
+ Se estiver usando o Systems Manager para instalar o atendente ou o Parameter Store para armazenar o arquivo de configuração, você deverá adicionar os endpoints do Systems Manager das regiões apropriadas na lista de permissões. Esses endpoints estão listados em [AWS Systems Manager endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html).

# Baixar o pacote do atendente do CloudWatch
<a name="download-CloudWatch-Agent-on-EC2-Instance-commandline-first"></a>

**nota**  
Para baixar o agente do CloudWatch, sua conexão deve usar o TLS 1.2 ou posterior.

O agente do CloudWatch está disponível como um pacote no Amazon Linux 2023 e Amazon Linux 2. Caso esteja usando esse sistema operacional, você pode instalar o pacote digitando o comando a seguir. Também é necessário garantir que a função do IAM anexada à instância tenha o atributo **CloudWatchAgentServerPolicy** anexado. 

```
sudo yum install amazon-cloudwatch-agent
```

Em todos os sistemas operacionais compatíveis, é possível baixar e instalar o atendente do CloudWatch usando a linha de comando.

Para cada link de download, há um link geral bem como links para cada região da AWS.

Se você usar os links específicos da região, substitua a região padrão (*us-east-1*) pela região apropriada da sua conta. Por exemplo, para o Amazon Linux 2023 e Amazon Linux 2 e a arquitetura x86-64, três dos links de download válidos são:
+ `https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm`
+ `https://amazoncloudwatch-agent-us-east-1.s3.us-east-1.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm`
+ `https://amazoncloudwatch-agent-eu-central-1.s3.eu-central-1.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm`

Também é possível fazer download de um arquivo README sobre as alterações mais recentes no atendente e de um arquivo que indica o número da versão que está disponível para download. Esses arquivos estão nos seguintes locais:

**nota**  
Se você usar os links específicos da região, substitua a região padrão (*us-east-1*) pela região apropriada da sua conta.
+ `https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/RELEASE_NOTES` ou `https://amazoncloudwatch-agent-us-east-1.s3.us-east-1.amazonaws.com/info/latest/RELEASE_NOTES`
+ `https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/CWAGENT_VERSION` ou `https://amazoncloudwatch-agent-us-east-1.s3.us-east-1.amazonaws.com/info/latest/CWAGENT_VERSION`


| Arquitetura | Plataforma | Link para fazer download | Link do arquivo de assinatura | 
| --- | --- | --- | --- | 
|  x86-64 |  Amazon Linux 2023 e Amazon Linux 2  |  https://amazoncloudwatch-agent.s3.amazonaws.com/amazon\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/amazon\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/amazon\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/amazon\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  Centos  |  https://amazoncloudwatch-agent.s3.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  Redhat  |  https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  SUSE  |  https://amazoncloudwatch-agent.s3.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  Debian  |  https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb  |  https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig  | 
|  x86-64 |  Ubuntu  |  https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb  |  https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig  | 
|  x86-64 |  Oracle  |  https://amazoncloudwatch-agent.s3.amazonaws.com/oracle\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/oracle\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/oracle\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/oracle\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  macOS  |  https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg  |  https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg.sig  | 
|  x86-64 |  Windows  |  https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi  |   https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi.sig  https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi.sig  | 
|  ARM64 |  Amazon Linux 2023 e Amazon Linux 2  |  https://amazoncloudwatch-agent.s3.amazonaws.com/amazon\$1linux/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/amazon\$1linux/arm64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/amazon\$1linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/amazon\$1linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  ARM64 |  Redhat  |  https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  ARM64 |  Ubuntu  |  https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb  |  https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig  | 
|  ARM64 |  Debian  |  https://amazoncloudwatch-agent.s3.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb  |  https://amazoncloudwatch-agent.s3.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb.sig  | 
|  ARM64 |  SUSE  |  https://amazoncloudwatch-agent.s3.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  ARM64 |  MacOS  |  https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/arm64/latest/amazon-cloudwatch-agent.pkg https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/darwin/arm64/latest/amazon-cloudwatch-agent.pkg  |  https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/arm64/latest/amazon-cloudwatch-agent.pkg.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/darwin/arm64/latest/amazon-cloudwatch-agent.pkg.sig  | 

# Verificar a assinatura do pacote do atendente do CloudWatch
<a name="verify-CloudWatch-Agent-Package-Signature"></a>

 Os arquivos de assinatura GPG estão incluídos para pacotes do atendente do CloudWatch em servidores Linux. É possível usar uma chave pública para verificar se o arquivo de download do agente é original e sem modificações. 

 Para o Windows Server, você pode usar o MSI para verificar a assinatura. Para computadores macOS, a assinatura está incluída no pacote para baixar o atendente. 

 Para localizar o arquivo de assinatura apropriado, use a tabela apresentada a seguir. Para cada arquitetura e sistema operacional, é possível visualizar um link geral e links específicos para cada região. 

Se você usar os links específicos da região, substitua a região padrão (*us-east-1*) pela região apropriada da sua conta. Por exemplo, para o Amazon Linux 2023 e Amazon Linux 2 e a arquitetura x86-64, três dos links válidos são:
+ `https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig`
+ `https://amazoncloudwatch-agent-us-east-1.s3.us-east-1.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm`
+ `https://amazoncloudwatch-agent-eu-central-1.s3.eu-central-1.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm`

**nota**  
Para baixar o agente do CloudWatch, sua conexão deve usar o TLS 1.2 ou posterior.


| Arquitetura | Plataforma | Link para fazer download | Link do arquivo de assinatura | 
| --- | --- | --- | --- | 
|  x86-64 |  Amazon Linux 2023 e Amazon Linux 2  |  https://amazoncloudwatch-agent.s3.amazonaws.com/amazon\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/amazon\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/amazon\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/amazon\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  Centos  |  https://amazoncloudwatch-agent.s3.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  Redhat  |  https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  SUSE  |  https://amazoncloudwatch-agent.s3.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  Debian  |  https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb  |  https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig  | 
|  x86-64 |  Ubuntu  |  https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb  |  https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig  | 
|  x86-64 |  Oracle  |  https://amazoncloudwatch-agent.s3.amazonaws.com/oracle\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/oracle\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/oracle\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/oracle\$1linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  x86-64 |  macOS  |  https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg  |  https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg.sig  | 
|  x86-64 |  Windows  |  https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi  |   https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi.sig  https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi.sig  | 
|  ARM64 |  Amazon Linux 2023 e Amazon Linux 2  |  https://amazoncloudwatch-agent.s3.amazonaws.com/amazon\$1linux/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/amazon\$1linux/arm64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/amazon\$1linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/amazon\$1linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  ARM64 |  Redhat  |  https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig  | 
|  ARM64 |  Ubuntu  |  https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb  |  https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig  | 
|  ARM64 |  Debian  |  https://amazoncloudwatch-agent.s3.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb  |  https://amazoncloudwatch-agent.s3.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/debian/arm64/latest/amazon-cloudwatch-agent.deb.sig  | 
|  ARM64 |  SUSE  |  https://amazoncloudwatch-agent.s3.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm  |  https://amazoncloudwatch-agent.s3.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm.sig https://amazoncloudwatch-agent-*us-east-1*.s3.*us-east-1*.amazonaws.com/suse/arm64/latest/amazon-cloudwatch-agent.rpm.sig  | 

**Para verificar o pacote do atendente do CloudWatch em um servidor Linux**

1. Baixar a chave pública.

   ```
   shell$ wget https://amazoncloudwatch-agent.s3.amazonaws.com/assets/amazon-cloudwatch-agent.gpg
   ```

1. Importe a chave pública em seu token de autenticação.

   ```
   shell$  gpg --import amazon-cloudwatch-agent.gpg
   gpg: key 3B789C72: public key "Amazon CloudWatch Agent" imported
   gpg: Total number processed: 1
   gpg: imported: 1 (RSA: 1)
   ```

   Anote o valor da chave, pois ele será necessário na próxima etapa. No exemplo anterior, o valor da chave é `3B789C72`.

1. Verifique a impressão digital, executando o comando a seguir, substituindo *chave-valor* pelo valor da etapa anterior:

   ```
   shell$  gpg --fingerprint key-value
   pub   2048R/3B789C72 2017-11-14
         Key fingerprint = 9376 16F3 450B 7D80 6CBD  9725 D581 6730 3B78 9C72
   uid                  Amazon CloudWatch Agent
   ```

   A string de impressão digital deve ser igual a esta:

   `9376 16F3 450B 7D80 6CBD 9725 D581 6730 3B78 9C72`

   Se a string de impressão digital não coincidir, não instale o atendente. Entre em contato com a Amazon Web Services.

   Depois de verificar a impressão digital, você pode usá-la para verificar a assinatura do pacote do atendente do CloudWatch.

1. Faça download do arquivo signature do pacote usando o **wget**. Para determinar o arquivo de assinatura correto, consulte a tabela anterior.

   ```
   wget Signature File Link
   ```

1. Para verificar a assinatura, execute **gpg --verify**.

   ```
   shell$ gpg --verify signature-filename agent-download-filename
   gpg: Signature made Wed 29 Nov 2017 03:00:59 PM PST using RSA key ID 3B789C72
   gpg: Good signature from "Amazon CloudWatch Agent"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: 9376 16F3 450B 7D80 6CBD  9725 D581 6730 3B78 9C72
   ```

   Se a saída inclui a frase `BAD signature`, verifique se você executou o procedimento corretamente. Se você continuar recebendo essa resposta, entre em contato com a Amazon Web Services e evite usar o arquivo baixado.

   Observe o aviso sobre confiança. Uma chave somente será confiável se você ou alguém em quem você confia a tiver assinado. Isso não significa que a assinatura é inválida, apenas que você não verificou a chave pública.

**Para verificar o pacote do atendente do CloudWatch em um servidor executando Windows Server**

1. Faça download e instale o GnuPG para Windows [https://gnupg.org/download/](https://gnupg.org/download/). Ao instalar, inclua a opção **Extensão Shell (GpgEx)**.

   Você pode executar as etapas restantes no Windows PowerShell.

1. Baixar a chave pública.

   ```
   PS> wget https://amazoncloudwatch-agent.s3.amazonaws.com/assets/amazon-cloudwatch-agent.gpg -OutFile amazon-cloudwatch-agent.gpg
   ```

1. Importe a chave pública em seu token de autenticação.

   ```
   PS>  gpg --import amazon-cloudwatch-agent.gpg
   gpg: key 3B789C72: public key "Amazon CloudWatch Agent" imported
   gpg: Total number processed: 1
   gpg: imported: 1 (RSA: 1)
   ```

   Anote o valor da chave, pois ele será necessário na próxima etapa. No exemplo anterior, o valor da chave é `3B789C72`.

1. Verifique a impressão digital, executando o comando a seguir, substituindo *chave-valor* pelo valor da etapa anterior:

   ```
   PS>  gpg --fingerprint key-value
   pub   rsa2048 2017-11-14 [SC]
         9376 16F3 450B 7D80 6CBD  9725 D581 6730 3B78 9C72
   uid           [ unknown] Amazon CloudWatch Agent
   ```

   A string de impressão digital deve ser igual a esta:

   `9376 16F3 450B 7D80 6CBD 9725 D581 6730 3B78 9C72`

   Se a string de impressão digital não coincidir, não instale o atendente. Entre em contato com a Amazon Web Services.

   Depois de verificar a impressão digital, você pode usá-la para verificar a assinatura do pacote do atendente do CloudWatch.

1. Faça download do arquivo signature do pacote usando o wget. Para determinar o arquivo Signature correto, consulte [Links de download do atendente do CloudWatch](download-CloudWatch-Agent-on-EC2-Instance-commandline-first.md#agent-download-link-table).

1. Para verificar a assinatura, execute **gpg --verify**.

   ```
   PS> gpg --verify sig-filename agent-download-filename
   gpg: Signature made 11/29/17 23:00:45 Coordinated Universal Time
   gpg:                using RSA key D58167303B789C72
   gpg: Good signature from "Amazon CloudWatch Agent" [unknown]
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: 9376 16F3 450B 7D80 6CBD  9725 D581 6730 3B78 9C72
   ```

   Se a saída inclui a frase `BAD signature`, verifique se você executou o procedimento corretamente. Se você continuar recebendo essa resposta, entre em contato com a Amazon Web Services e evite usar o arquivo baixado.

   Observe o aviso sobre confiança. Uma chave somente será confiável se você ou alguém em quem você confia a tiver assinado. Isso não significa que a assinatura é inválida, apenas que você não verificou a chave pública.

**Para verificar o pacote do atendente do CloudWatch em um computador macOS**
+ Há dois métodos para verificação de assinatura no macOS.
  + Verifique a impressão digital executando o comando a seguir.

    ```
    pkgutil --check-signature amazon-cloudwatch-agent.pkg
    ```

    Será exibido um resultado semelhante ao exibido a seguir.

    ```
    Package "amazon-cloudwatch-agent.pkg":
            Status: signed by a developer certificate issued by Apple for distribution
            Signed with a trusted timestamp on: 2020-10-02 18:13:24 +0000
            Certificate Chain:
            1. Developer ID Installer: AMZN Mobile LLC (94KV3E626L)
            Expires: 2024-10-18 22:31:30 +0000
            SHA256 Fingerprint:
            81 B4 6F AF 1C CA E1 E8 3C 6F FB 9E 52 5E 84 02 6E 7F 17 21 8E FB
            0C 40 79 13 66 8D 9F 1F 10 1C
            ------------------------------------------------------------------------
            2. Developer ID Certification Authority
            Expires: 2027-02-01 22:12:15 +0000
            SHA256 Fingerprint:
            7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03
            F2 9C 88 CF B0 B1 BA 63 58 7F
            ------------------------------------------------------------------------
            3. Apple Root CA
            Expires: 2035-02-09 21:40:36 +0000
            SHA256 Fingerprint:
            B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C
            68 C5 BE 91 B5 A1 10 01 F0 24
    ```
  + Ou baixe e utilize o arquivo .sig. Para utilizar esse método, siga estas etapas.

    1. Instale a aplicação GPG no host do macOS inserindo o comando a seguir.

      ```
      brew install GnuPG
      ```
  + Baixe o arquivo de assinatura do pacote usando curl. Para determinar o arquivo Signature correto, consulte [Links de download do atendente do CloudWatch](download-CloudWatch-Agent-on-EC2-Instance-commandline-first.md#agent-download-link-table).
  + Para verificar a assinatura, execute **gpg --verify**.

    ```
    PS> gpg --verify sig-filename agent-download-filename
    gpg: Signature made 11/29/17 23:00:45 Coordinated Universal Time
    gpg:                using RSA key D58167303B789C72
    gpg: Good signature from "Amazon CloudWatch Agent" [unknown]
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: 9376 16F3 450B 7D80 6CBD  9725 D581 6730 3B78 9C72
    ```

    Se a saída inclui a frase `BAD signature`, verifique se você executou o procedimento corretamente. Se você continuar recebendo essa resposta, entre em contato com a Amazon Web Services e evite usar o arquivo baixado.

    Observe o aviso sobre confiança. Uma chave somente será confiável se você ou alguém em quem você confia a tiver assinado. Isso não significa que a assinatura é inválida, apenas que você não verificou a chave pública.

# Instalação do atendente do CloudWatch
<a name="install-CloudWatch-Agent-on-EC2-Instance"></a>

Você pode instalar o agente do CloudWatch em instâncias do Amazon EC2 on-premises, servidores on-premises e ambientes conteinerizados para coletar métricas, logs e rastros. O agente é compatível com os sistemas operacionais Linux e Windows e macOS. Existem várias maneiras de instalar o agente: usar o Systems Manager, o console do CloudWatch, a linha de comando ou a um arquivo de configuração. Antes de realizar a instalação, certifique-se de ter as permissões do IAM e o acesso à rede necessários configurados.

**Topics**
+ [Instale e configure o Amazon CloudWatch Agent com detecção de workload no console do CloudWatch](install-cloudwatch-agent-workload-detection.md)
+ [Instalação manual no Amazon EC2](manual-installation.md)
+ [Instalar o agente do CloudWatch usando o AWS Systems Manager](installing-cloudwatch-agent-ssm.md)
+ [Instalar o agente do CloudWatch em servidores on-premises](install-CloudWatch-Agent-on-premise.md)
+ [Instalar o agente do CloudWatch em novas instâncias usando o CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md)
+ [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md)

# Instale e configure o Amazon CloudWatch Agent com detecção de workload no console do CloudWatch
<a name="install-cloudwatch-agent-workload-detection"></a>

## Introdução
<a name="workload-detection-introduction"></a>

Você pode usar o console Conceitos Básicos do CloudWatch para instalar e configurar o agente do CloudWatch em instâncias do Amazon EC2. O agente do Amazon CloudWatch é um componente de software leve que coleta métricas, logs e traços no nível do sistema das instâncias do Amazon EC2. Ao automatizar a coleta e a entrega de dados de monitoramento ao CloudWatch, o agente permite que você obtenha insights acionáveis, otimize a utilização de recursos e garanta que as aplicações funcionem sem problemas com o mínimo esforço de configuração.

Configure o agente do CloudWatch com definições predefinidas específicas da workload que utilizam detecção automática de workload para identificar as aplicações e os serviços executados nas instâncias. Você pode personalizar a coleta de dados com métricas, logs e rastros específicos, o que permite monitorar a performance das aplicações e solucionar problemas com eficácia.

## Como funciona
<a name="workload-detection-how-it-works"></a>

O agente do CloudWatch detecta as workloads executadas nas instâncias do Amazon EC2 por meio de recursos de detecção automática de workload. Esse atributo identifica as aplicações e os serviços em execução nas instâncias, permitindo monitoramento inteligente sem configuração manual.

As soluções de observabilidade fornecem configurações predefinidas específicas da workload, adaptadas para aplicações comuns como Apache Kafka, Apache Tomcat, Java Virtual Machines (JVM), NGINX e workloads GPU NVIDIA. Essas soluções simplificam a configuração do monitoramento ao coletar automaticamente métricas, logs e rastros corretos, específicos para cada workload detectada, eliminando a necessidade de instrumentação e configuração manuais.

Quando a detecção de workload está habilitada, o agente analisa o ambiente da instância e seleciona automaticamente os modelos de monitoramento pré-configurados relevantes. Essas configurações são otimizadas por experts no assunto da AWSpara capturar os dados de telemetria mais importantes para cada tipo de workload, garantindo observabilidade abrangente desde o início.

## Pré-requisitos
<a name="workload-detection-prerequisites"></a>

### Instalação do agente do SSM (obrigatória)
<a name="ssm-agent-installation"></a>

É necessário ter o agente do AWS Systems Manager (SSM) instalado nas instâncias do Amazon EC2. [O agente do SSM vem pré-instalado na maioria das imagens de máquina da Amazon (AMIs) fornecidas pela AWS. Se você precisar instalar ou atualizar manualmente o agente do SSM, consulte a documentação do Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html).

**nota**  
Default Host Management Configuration (DHMC) é um atributo do Systems Manager que concede automaticamente às instâncias do Amazon EC2 permissões para se conectarem ao Systems Manager sem exigir que você anexe manualmente um perfil de instância do IAM a cada instância. Se as instâncias do Amazon EC2 usarem DHMC e o processo de instalação do agente do CloudWatch anexar a política do CloudWatch a elas, a nova política poderá levar até 30 minutos para entrar em vigor. Essa demora pode adiar a publicação de métricas, logs e rastros no CloudWatch. Para mitigar isso, crie as instâncias do Amazon EC2 com um perfil do IAM que contenha a política [AmazonSSMManagedInstanceCore](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html).

### Detecção de workload (recomendável)
<a name="workload-detection-recommended"></a>

A detecção de workload é um atributo opcional que identifica automaticamente as aplicações e os serviços em execução nas instâncias. É recomendável ativar a detecção de workload para aproveitar os modelos pré-configurados de monitoramento específicos da workload. Você pode ativar a detecção de workload nas [Configurações do console do CloudWatch](https://console.aws.amazon.com/cloudwatch/home#settings).

## Introdução
<a name="workload-detection-getting-started"></a>

Abra a página Conceitos básicos do agente Amazon CloudWatch no console do Amazon CloudWatch: [https://console.aws.amazon.com/cloudwatch/home\$1cloudwatch-agent](https://console.aws.amazon.com/cloudwatch/home#cloudwatch-agent)

**Implantação manual de instâncias do agente do CloudWatch**

Selecione manualmente até 50 instâncias para instalação e configuração do agente do CloudWatch. Essa abordagem direcionada permite aprimorar o monitoramento de instâncias específicas do Amazon EC2.

**Implantação baseada em tags do agente do CloudWatch**

Use a implantação baseada em tags para instalar e configurar o agente do CloudWatch em frotas de instâncias do Amazon EC2. Esse método se aplica a todas as instâncias atuais e futuras com tags correspondentes.

**Configuração baseada em tags**

As configurações baseadas em tags permitem organizar, visualizar e modificar eficientemente as configurações, ajudando a gerenciar o agente do CloudWatch e sua configuração em frotas de instâncias do Amazon EC2.

**Instalação do agente do CloudWatch**

Instale o agente do CloudWatch para coletar métricas, logs e rastros de instâncias do Amazon EC2 e servidores on-premises. Essa telemetria fornece importantes dados de integridade e performance sobre da infraestrutura e das aplicações.

**Configuração do agente do CloudWatch**

Configure o agente do CloudWatch com configurações predefinidas, específicas da workload. Você pode personalizar a coleta de dados com métricas, logs e rastros específicos, o que permite monitorar a performance das aplicações e solucionar problemas com eficácia.

## Custos
<a name="workload-detection-costs"></a>

As métricas adicionais acrescentadas durante esse processo são cobradas como métricas personalizadas. Para obter mais informações sobre o preço de métricas do CloudWatch, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

# Instalação manual no Amazon EC2
<a name="manual-installation"></a>

**nota**  
Certifique-se de que os pré-requisitos estejam sendo atendidos antes de instalar o agente do CloudWatch pela primeira vez.

**Topics**
+ [Instalação no Amazon Linux usando o gerenciador de pacotes](#amazon-linux-package)
+ [Instalação no Amazon Linux usando a linha de comando](#linux-manual-install)
+ [Instalar no Windows](#windows-installation)
+ [Instalar no macOS](#macos-installation)

## Instalação no Amazon Linux usando o gerenciador de pacotes
<a name="amazon-linux-package"></a>

O agente do CloudWatch está disponível como um pacote no Amazon Linux 2023 e Amazon Linux 2. Se você estiver usando um destes sistemas operacionais, é possível instalar o pacote ao inserir o seguinte comando:

```
sudo yum install amazon-cloudwatch-agent
```

Também é necessário garantir que a função do IAM anexada à instância tenha o atributo **CloudWatchAgentServerPolicy** anexado.

## Instalação no Amazon Linux usando a linha de comando
<a name="linux-manual-install"></a>

Em todos os sistemas operacionais Linux compatíveis, é possível fazer o download e a instalação do agente do CloudWatch usando a linha de comando.

1. Baixe o atendente do CloudWatch. No caso de um servidor Linux, insira o comando abaixo. No caso de `download-link`, use o link de download correspondente na tabela abaixo.

   ```
   wget download-link
   ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/manual-installation.html)

1. Depois de fazer download do pacote, você pode, opcionalmente, verificar a assinatura do pacote. Para obter mais informações, consulte [Verificar a assinatura do pacote do atendente do CloudWatch](verify-CloudWatch-Agent-Package-Signature.md).

1. Instale o pacote . Se você tiver obtido por download um pacote RPM em um servidor Linux, mude para o diretório que contém o pacote e digite o seguinte:

   ```
   sudo rpm -U ./amazon-cloudwatch-agent.rpm
   ```

   Se você tiver obtido por download um pacote DEB em um servidor Linux, mude para o diretório que contém o pacote e digite o seguinte:

   ```
   sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
   ```

## Instalar no Windows
<a name="windows-installation"></a>

No Windows Server, é possível fazer o download e a instalação do agente do CloudWatch usando a linha de comando.

1. Faça o download do seguinte arquivo:

   ```
   https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi
   ```

1. Depois de fazer download do pacote, você pode, opcionalmente, verificar a assinatura do pacote. Para obter mais informações, consulte [Verificar a assinatura do pacote do atendente do CloudWatch](verify-CloudWatch-Agent-Package-Signature.md).

1. Instale o pacote . Altere para o diretório que contém o pacote e digite o seguinte:

   ```
   msiexec /i amazon-cloudwatch-agent.msi
   ```

   Esse comando também funciona no PowerShell. Para obter mais informações sobre opções de comando MSI, consulte [Opções de linha de comando](https://docs.microsoft.com/en-us/windows/desktop/Msi/command-line-options) na documentação do Microsoft Windows.

## Instalar no macOS
<a name="macos-installation"></a>

Em computadores com macOS, é possível fazer o download e a instalação do agente do CloudWatch usando a linha de comando.

1. Faça o download do pacote apropriado para sua arquitetura:

   ```
   https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg
   ```

   Para a arquitetura ARM64:

   ```
   https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/arm64/latest/amazon-cloudwatch-agent.pkg
   ```

1. Depois de fazer download do pacote, você pode, opcionalmente, verificar a assinatura do pacote. Para obter mais informações, consulte [Verificar a assinatura do pacote do atendente do CloudWatch](verify-CloudWatch-Agent-Package-Signature.md).

1. Instale o pacote . Altere para o diretório que contém o pacote e digite o seguinte:

   ```
   sudo installer -pkg ./amazon-cloudwatch-agent.pkg -target /
   ```

# Instalar o agente do CloudWatch usando o AWS Systems Manager
<a name="installing-cloudwatch-agent-ssm"></a>

 O uso do AWS Systems Manager facilita a instalação do agente do CloudWatch em uma frota de instâncias do Amazon EC2. É possível fazer o download do agente em um servidor e criar um arquivo de configuração do agente do CloudWatch para todos os servidores da frota. Em seguida, é possível usar o arquivo de configuração do Systems Manager que você criou para instalar o agente em outros servidores. Use os tópicos a seguir para instalar e executar o atendente do CloudWatch usando o AWS Systems Manager. 

**Topics**
+ [Instalar ou atualizar o agente do SSM](#update-SSM-Agent-EC2instance-first)
+ [Verifique os pré-requisitos do Systems Manager](#install-CloudWatch-Agent-minimum-requirements-first)
+ [Verificar o acesso à Internet](#install-CloudWatch-Agent-internet-access-first)
+ [Baixar o pacote do agente do CloudWatch para sua primeira instância](#install-CloudWatch-Agent-EC2-first)
+ [Criar e modificar o arquivo de configuração do atendente](#CW-Agent-Instance-Create-Configuration-File-first)
+ [Instalar e iniciar o agente do CloudWatch em instâncias adicionais do EC2 usando sua configuração de agente](#install-CloudWatch-Agent-on-EC2-Instance-fleet)
+ [Instalação do agente do CloudWatch em instâncias adicionais do EC2 usando sua configuração de agente](#install-CloudWatch-Agent-on-EC2-Instance-fleet)
+ [(Opcional) Modificar a configuração comum e o perfil nomeado para o atendente do CloudWatch](#CloudWatch-Agent-profile-instance-fleet)

## Instalar ou atualizar o agente do SSM
<a name="update-SSM-Agent-EC2instance-first"></a>

Em uma instância do Amazon EC2, o agente do CloudWatch exige que a instância esteja executando a versão 2.2.93.0 ou posterior do agente do SSM. Antes de instalar o atendente do CloudWatch, atualize ou instale o SSM Agent na instância, caso ainda não tenha feito isso. 

Para obter informações sobre como instalar ou atualizar o SSM Agent em uma instância que execute o Linux, consulte [Instalar e configurar o SSM Agent em instâncias do Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) no *Manual do usuário do AWS Systems Manager*.

Para obter informações sobre como instalar ou atualizar o SSM Agent, consulte [Trabalhar com o SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) no *Manual do usuário do AWS Systems Manager*.

## Verifique os pré-requisitos do Systems Manager
<a name="install-CloudWatch-Agent-minimum-requirements-first"></a>

Antes de usar o Run Command do Systems Manager para instalar e configurar a integração com o atendente do CloudWatch, verifique se as instâncias atendem aos requisitos mínimos do Systems Manager. Para obter mais informações, consulte [Pré-requisitos do Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html#systems-manager-prereqs) no *Manual do usuário do AWS Systems Manager*.

## Verificar o acesso à Internet
<a name="install-CloudWatch-Agent-internet-access-first"></a>

Suas instâncias do Amazon EC2 devem ser capazes de se conectar aos endpoints do CloudWatch. É possível fazer isso por meio de gateway da internet, gateway NAT ou endpoints da VPC de interface do CloudWatch. Para obter mais informações sobre como configurar o acesso à Internet, consulte [Gateways da Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) no *Manual do usuário da Amazon VPC*.

Os endpoints e portas para configurar em seu proxy são os seguintes:
+ Se estiver usando o atendente para coletar métricas, você deverá incluir os endpoints do CloudWatch das regiões apropriadas na lista de permissões. Esses endpoints são listados no [Amazon CloudWatch](https://docs.aws.amazon.com/general/latest/gr/rande.html#cw_region) no *Referência geral da Amazon Web Services*. 
+ Se estiver usando o atendente para coletar logs, você deverá incluir os endpoints do CloudWatch Logs das regiões apropriadas na lista de permissões. Esses endpoints são listados no [Amazon CloudWatch Logs](https://docs.aws.amazon.com/general/latest/gr/rande.html#cwl_region) no *Referência geral da Amazon Web Services*. 
+ Se estiver usando o Systems Manager para instalar o atendente ou o Parameter Store para armazenar o arquivo de configuração, você deverá incluir os endpoints do Systems Manager das regiões apropriadas na lista de permissões. Esses endpoints são listados no [AWS Systems Manager](https://docs.aws.amazon.com/general/latest/gr/rande.html#ssm_region) no *Referência geral da Amazon Web Services*. 

## Baixar o pacote do agente do CloudWatch para sua primeira instância
<a name="install-CloudWatch-Agent-EC2-first"></a>

Use as seguintes etapas para baixar o pacote do atendente do CloudWatch usando o Systems Manager.

**Para baixar o atendente do CloudWatch usando o Systems Manager**

1. Abra o console do Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, selecione **Executar comando**.

   - ou -

   Se a página inicial do AWS Systems Manager for exibida, role para baixo e escolha **Explore Run Command**.

1. Selecione **Run command**.

1. Na lista **Documento do comando**, escolha **AWS-ConfigureAWSPackage**.

1. Na área **Targets** (Destinos), selecione a instância na qual o atendente do CloudWatch será instalado. Se você não visualizar uma instância específica, ela talvez não esteja configurada como uma instância gerenciada para uso com o Systems Manager. Para obter mais informações, consulte [Configurar o AWS Systems Manager para ambientes híbridos](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html) no *Manual do usuário do AWS Systems Manager*.

1. Na lista **Ação**, escolha **Instalar**.

1. No campo **Name (Nome)**, digite *AmazonCloudWatchAgent*.

1. Deixe a **Version (Versão)** definida como **latest (mais recente)** para instalar a versão mais recente do atendente.

1. Escolha **Executar**.

1. Opcionalmente, nas áreas **Targets and outputs** (Destinos e saídas), selecione o botão ao lado do nome da instância e escolha **View output** (Visualizar saída). O Systems Manager deve exibir que o atendente foi instalado corretamente.

   

## Criar e modificar o arquivo de configuração do atendente
<a name="CW-Agent-Instance-Create-Configuration-File-first"></a>

Depois de baixar o atendente do CloudWatch, você deverá criar o arquivo de configuração antes de iniciar o atendente em qualquer servidor.

Se você salvar o arquivo de configuração do atendente no Systems Manager Parameter Store, use uma instância do EC2 para salvar no Parameter Store. Além disso, é necessário primeiro anexar a função do IAM `CloudWatchAgentAdminRole` a essa instância. Para obter mais informações sobre como anexar perfis, consulte [Anexar um perfil do IAM a uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/iam-roles-for-amazon-ec2.html#attach-iam-role) no *Guia do usuário do Amazon EC2*.

Para obter mais informações sobre como criar o arquivo de configuração do atendente do CloudWatch, consulte [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md).

## Instalar e iniciar o agente do CloudWatch em instâncias adicionais do EC2 usando sua configuração de agente
<a name="install-CloudWatch-Agent-on-EC2-Instance-fleet"></a>

Depois que você tiver uma configuração do atendente do CloudWatch salva no Parameter Store, poderá usá-la quando instalar o atendente em outros servidores.

Para cada um desses servidores, siga as etapas listadas anteriormente nesta seção para verificar os pré-requisitos do Systems Manager, a versão do agente do SSM Agent e o acesso à Internet. Em seguida, acompanhe as instruções a seguir para instalar o agente do CloudWatch nas instâncias adicionais, usando o arquivo de configuração de agente do CloudWatch que você criou.

**Etapa 1: baixar e instalar o agente do CloudWatch**

Para permitir o envio de dados do CloudWatch para uma região diferente, certifique-se de que o perfil do IAM que está vinculado a esta instância tenha permissões para gravar os dados do CloudWatch nessa região.

Abaixo, há um exemplo de uso do comando `aws configure` para criar um perfil nomeado para o atendente do CloudWatch. Esse exemplo pressupõe que você esteja usando o nome de perfil padrão do `AmazonCloudWatchAgent`.

**Para criar o perfil AmazonCloudWatchAgent para o atendente do CloudWatch**
+ Em servidores Linux, digite o comando a seguir e siga os avisos:

  ```
  sudo aws configure --profile AmazonCloudWatchAgent
  ```

  No Windows Server, abra o PowerShell como um administrador, insira o comando apresentado a seguir e siga os prompts fornecidos.

  ```
  aws configure --profile AmazonCloudWatchAgent
  ```

## Instalação do agente do CloudWatch em instâncias adicionais do EC2 usando sua configuração de agente
<a name="install-CloudWatch-Agent-on-EC2-Instance-fleet"></a>

Depois que você tiver uma configuração do atendente do CloudWatch salva no Parameter Store, poderá usá-la quando instalar o atendente em outros servidores.

Para cada um desses servidores, siga as etapas listadas anteriormente nesta seção para verificar os pré-requisitos do Systems Manager, a versão do agente do SSM Agent e o acesso à Internet. Em seguida, acompanhe as instruções a seguir para instalar o agente do CloudWatch nas instâncias adicionais, usando o arquivo de configuração de agente do CloudWatch que você criou.

**Etapa 1: baixar e instalar o agente do CloudWatch**

É necessário instalar o atendente em cada servidor no qual você executará o atendente. O agente do CloudWatch está disponível como um pacote no Amazon Linux 2023 e Amazon Linux 2. Caso esteja usando esse sistema operacional, você pode usar o Systems Manager para instalar o pacote seguindo as etapas abaixo.

**nota**  
Também é necessário garantir que a função do IAM anexada à instância tenha o atributo **CloudWatchAgentServerPolicy** anexado. Para mais informações, consulte [Pré-requisitos](prerequisites.md)﻿.

**Usar o Systems Manager para instalar o pacote de agente do CloudWatch**

1. Abra o console do Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, selecione **Executar comando**.

   - ou -

   Se a página inicial do AWS Systems Manager for exibida, role para baixo e escolha **Explore Run Command**.

1. Selecione **Run command**.

1. Na lista **Documento de comando**, escolha **AWS-RunShellScript**. Em seguida, cole o seguinte nos **Parâmetros de comando**.

   ```
   sudo yum install amazon-cloudwatch-agent
   ```

1. Escolha **Executar**

Em todos os sistemas operacionais compatíveis, é possível baixar o pacote do atendente do CloudWatch usando o Systems Manager Run Command ou um link para download do Amazon S3. 

**nota**  
Quando você instala ou atualiza o atendente do CloudWatch, somente a opção **Uninstall and reinstall** (Desinstalar e reinstalar) é compatível. Não é possível usar a opção **In-place update** (Atualizações no local).

O Systems Manager Run Command permite gerenciar a configuração de suas instâncias. Você especifica um documento do Systems Manager, especifica parâmetros e executa o comando em uma ou mais instâncias. O SSM Agent na instância processa o comando e configura a instância conforme especificado.

**Para baixar o atendente do CloudWatch usando o Run Command**

1. Abra o console do Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, selecione **Executar comando**.

   - ou -

   Se a página inicial do AWS Systems Manager for exibida, role para baixo e escolha **Explore Run Command**.

1. Selecione **Run command**.

1. Na lista **Documento do comando**, escolha **AWS-ConfigureAWSPackage**.

1. Na área **Targets** (Destinos), selecione a instância na qual o atendente do CloudWatch será instalado. Se você não visualizar uma instância específica, ela pode não estar configurada para o Run Command. Para obter mais informações, consulte [Configurar o AWS Systems Manager para ambientes híbridos](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html) no *Manual do usuário do AWS Systems Manager*.

1. Na lista **Ação**, escolha **Instalar**.

1. Na caixa **Name (Nome)**, digite *AmazonCloudWatchAgent*.

1. Deixe a **Version (Versão)** definida como **latest (mais recente)** para instalar a versão mais recente do atendente.

1. Escolha **Executar**.

1. Opcionalmente, nas áreas **Targets and outputs** (Destinos e saídas), selecione o botão ao lado do nome da instância e escolha **View output** (Visualizar saída). O Systems Manager deve exibir que o atendente foi instalado corretamente. 

**Etapa 2: iniciar o agente do CloudWatch usando seu arquivo de configuração do agente**

Siga estas etapas para iniciar o atendente usando o Systems Manager Run Command.

Para obter informações sobre como configurar o agente em um sistema que tenha o Linux com segurança aprimorada (SELinux) habilitado, consulte [Configure o agente do CloudWatch com o Linux com segurança aprimorada (SELinux)](CloudWatch-Agent-SELinux.md).

**Para iniciar o atendente do CloudWatch usando o Run Command**

1. Abra o console do Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, selecione **Executar comando**.

   - ou -

   Se a página inicial do AWS Systems Manager for exibida, role para baixo e escolha **Explore Run Command**.

1. Selecione **Run command**.

1. Na lista **Documento do comando**, escolha **AmazonCloudWatch-ManageAgent**.

1. Na área **Targets** (Destinos), escolha a instância onde você instalou o atendente do CloudWatch.

1. Na lista **Ação**, escolha **configurar**.

1. Na lista **Origem de configuração opcional**, escolha **ssm**.

1. Na caixa **Local de configuração opcional**, insira o nome do arquivo de configuração do agente que você criou e salvou no Systems Manager Parameter Store, conforme explicado em [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md).

1. Na lista **Reinicialização opcional**, escolha **sim** para iniciar o atendente após ter concluído essas etapas.

1. Escolha **Executar**.

1. Opcionalmente, nas áreas **Targets and outputs** (Destinos e saídas), selecione o botão ao lado do nome da instância e escolha **View output** (Visualizar saída). O Systems Manager deve exibir que o atendente foi iniciado corretamente. 

## (Opcional) Modificar a configuração comum e o perfil nomeado para o atendente do CloudWatch
<a name="CloudWatch-Agent-profile-instance-fleet"></a>

O atendente do CloudWatch inclui um arquivo de configuração chamado `common-config.toml`. Opcionalmente, é possível usar esse arquivo para especificar as informações de proxy e região.

Em um servidor que executa o Linux, esse arquivo encontra-se no diretório `/opt/aws/amazon-cloudwatch-agent/etc`. Em um servidor que executa o Windows Server, esse arquivo encontra-se no diretório `C:\ProgramData\Amazon\AmazonCloudWatchAgent`.

O `common-config.toml` padrão é conforme segue:

```
# This common-config is used to configure items used for both ssm and cloudwatch access
 
 
## Configuration for shared credential.
## Default credential strategy will be used if it is absent here:
##            Instance role is used for EC2 case by default.
##            AmazonCloudWatchAgent profile is used for onPremise case by default.
# [credentials]
#    shared_credential_profile = "{profile_name}"
#    shared_credential_file= "{file_name}"
 
## Configuration for proxy.
## System-wide environment-variable will be read if it is absent here.
## i.e. HTTP_PROXY/http_proxy; HTTPS_PROXY/https_proxy; NO_PROXY/no_proxy
## Note: system-wide environment-variable is not accessible when using ssm run-command.
## Absent in both here and environment-variable means no proxy will be used.
# [proxy]
#    http_proxy = "{http_url}"
#    https_proxy = "{https_url}"
#    no_proxy = "{domain}"
```

Todas as linhas são comentadas inicialmente. Para definir o perfil de credencial ou as configurações de proxy, remova o `#` da linha e especifique um valor. É possível editar esse arquivo manualmente ou usando o Run Command `RunShellScript` no Systems Manager:
+ `shared_credential_profile`: para servidores on-premises, essa linha especifica o perfil de credenciais do usuário do IAM a ser usado para enviar dados ao CloudWatch. Se você mantiver esta linha comentada, `AmazonCloudWatchAgent` será usado. 

  Em uma instância do EC2, você poderá usar essa linha para que o atendente do CloudWatch envie dados dessa instância para o CloudWatch em outra região da AWS. Para fazer isso, especifique um perfil nomeado que inclua um campo `region` especificando o nome da região para a qual enviar.

  Se você especificar um `shared_credential_profile`, também deverá remover o símbolo `#` do início da linha `[credentials]`.
+ `shared_credential_file`: para que o atendente procure credenciais em um arquivo localizado em um caminho diferente do padrão, especifique esse caminho completo e o nome do arquivo aqui. O caminho padrão é `/root/.aws` no Linux e `C:\\Users\\Administrator\\.aws` no Windows Server.

  O primeiro exemplo a seguir mostra a sintaxe de uma linha `shared_credential_file` válida para servidores Linux, e o segundo exemplo é válido para o Windows Server. No Windows Server, você deve fazer o escape dos caracteres \$1.

  ```
  shared_credential_file= "/usr/username/credentials"
  ```

  ```
  shared_credential_file= "C:\\Documents and Settings\\username\\.aws\\credentials"
  ```

  Se você especificar um `shared_credential_file`, também deverá remover o símbolo `#` do início da linha `[credentials]`.
+ Configurações do proxy: se seus servidores usarem os proxies HTTP ou HTTPS para entrar em contato com os produtos da AWS, especifique esses proxies nos campos `http_proxy` e `https_proxy`. Se houver URLs que devem ser excluídas do proxy, as especifique no campo `no_proxy`, separadas por vírgulas.

# Instalar o agente do CloudWatch em servidores on-premises
<a name="install-CloudWatch-Agent-on-premise"></a>

 Se você fez o download do agente do CloudWatch em um computador e criou o arquivo de configuração do agente, poderá usar esse arquivo de configuração para instalar o agente em outros servidores on-premises. 

## Baixar o atendente do CloudWatch em um servidor on-premises
<a name="download-CloudWatch-Agent-onprem"></a>

É possível baixar o pacote do atendente do CloudWatch usando o Systems Manager Run Command ou um link para download do Amazon S3. 

### Baixar usando o Systems Manager
<a name="download-CloudWatch-Agent-onprem-fleet-sys"></a>

Para usar o Systems Manager Run Command, registre seu servidor on-premises no Amazon EC2 Systems Manager. Para obter mais informações, consulte [Configurar o Systems Manager em ambientes híbridos](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html) no *Manual do usuário do AWS Systems Manager*.

Se você já registrou o servidor, atualize o SSM Agent para a versão mais recente.

Para obter informações sobre a como atualizar o SSM Agent em um servidor que executa o Linux, consulte [Instalar o SSM Agent para um ambiente híbrido (Linux)](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html#sysman-install-managed-linux) no *Manual do usuário do AWS Systems Manager*.

Para obter informações sobre como atualizar o SSM Agent em um servidor que executa o Windows Server, consulte [Instalar o SSM Agent para um ambiente híbrido (Windows)](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html#sysman-install-managed-win) no *Manual do usuário do AWS Systems Manager*.

**Para usar o SSM Agent para baixar o pacote do atendente do CloudWatch em um servidor on-premises**

1. Abra o console do Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, selecione **Executar comando**.

   - ou -

   Se a página inicial do AWS Systems Manager for exibida, role para baixo e escolha **Explore Run Command**.

1. Selecione **Run command**.

1. Na lista **Documento do comando**, selecione o botão ao lado de **AWS-ConfigureAWSPackage**.

1. Na área **Targets** (Destinos), selecione o servidor no qual o atendente do CloudWatch será instalado. Se você não visualizar um servidor específico, ele pode não estar configurado para o Run Command. Para obter mais informações, consulte [Configurar o AWS Systems Manager para ambientes híbridos](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html) no *Manual do usuário do AWS Systems Manager*.

1. Na lista **Ação**, escolha **Instalar**.

1. Na caixa **Name (Nome)**, digite *AmazonCloudWatchAgent*.

1. Deixe **Version (Versão)** em branco para instalar a versão mais recente do atendente.

1. Escolha **Executar**.

   O pacote do atendente é obtido por download, e as próximas etapas são configurá-lo e iniciá-lo.

## (Instalar um servidor on-premises) Especificar credenciais do IAM e região da AWS
<a name="install-CloudWatch-Agent-iam_user-SSM-onprem"></a>

Para permitir que o CloudWatch envie dados de um servidor on-premises, é necessário especificar a chave de acesso e a chave secreta do usuário do IAM que você criou anteriormente. 

Você também deve especificar a região da AWS para a qual enviar as métricas usando o campo `region`.

Veja a seguir um exemplo desse arquivo.

```
[AmazonCloudWatchAgent]
aws_access_key_id=my_access_key
aws_secret_access_key=my_secret_key
region = us-west-1
```

Para *my\$1access\$1key* e *my\$1secret\$1key*, use as chaves do usuário do IAM que não têm permissões para gravar no Systems Manager Parameter Store. 

Se você chamar esse perfil de `AmazonCloudWatchAgent`, não precisará fazer mais nada. Você também pode fornecer a ela outro nome e especificar esse nome como o valor para `shared_credential_profile` no arquivo ` common-config.toml`, o que é explicado na seção a seguir.

Abaixo, há um exemplo de uso do comando **aws configure** para criar um perfil nomeado para o atendente do CloudWatch. Esse exemplo pressupõe que você esteja usando o nome de perfil padrão do `AmazonCloudWatchAgent`.

**Para criar o perfil AmazonCloudWatchAgent para o atendente do CloudWatch**

1. Caso ainda não tenha feito isso, instale a AWS Command Line Interface. Para obter mais informações, consulte [Instalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html).

1. Em servidores Linux, digite este comando e siga os avisos:

   ```
   sudo aws configure --profile AmazonCloudWatchAgent
   ```

   No Windows Server, abra o PowerShell como administrador, digite o seguinte comando e siga as instruções.

   ```
   aws configure --profile AmazonCloudWatchAgent
   ```

## (Opcional) Modificar a configuração comum e o perfil nomeado para o atendente do CloudWatch
<a name="CloudWatch-Agent-profile-onprem"></a>

O atendente do CloudWatch inclui um arquivo de configuração chamado `common-config.toml`. Você pode, opcionalmente, usar esse arquivo para especificar as informações de proxy e região.

Em um servidor que executa o Linux, esse arquivo encontra-se no diretório `/opt/aws/amazon-cloudwatch-agent/etc`. Em um servidor que executa o Windows Server, esse arquivo encontra-se no diretório `C:\ProgramData\Amazon\AmazonCloudWatchAgent`.

O `common-config.toml` padrão é conforme segue:

```
# This common-config is used to configure items used for both ssm and cloudwatch access
 
 
## Configuration for shared credential.
## Default credential strategy will be used if it is absent here:
##            Instance role is used for EC2 case by default.
##            AmazonCloudWatchAgent profile is used for onPremise case by default.
# [credentials]
#    shared_credential_profile = "{profile_name}"
#    shared_credential_file= "{file_name}"
 
## Configuration for proxy.
## System-wide environment-variable will be read if it is absent here.
## i.e. HTTP_PROXY/http_proxy; HTTPS_PROXY/https_proxy; NO_PROXY/no_proxy
## Note: system-wide environment-variable is not accessible when using ssm run-command.
## Absent in both here and environment-variable means no proxy will be used.
# [proxy]
#    http_proxy = "{http_url}"
#    https_proxy = "{https_url}"
#    no_proxy = "{domain}"
```

Todas as linhas são comentadas inicialmente. Para definir o perfil de credencial ou as configurações de proxy, remova o `#` da linha e especifique um valor. É possível editar esse arquivo manualmente ou usando o Run Command `RunShellScript` no Systems Manager:
+ `shared_credential_profile`: para servidores on-premises, essa linha especifica o perfil de credenciais do usuário do IAM a ser usado para enviar dados ao CloudWatch. Se você mantiver esta linha comentada, `AmazonCloudWatchAgent` será usado. Para obter mais informações sobre a criação desse perfil, consulte [(Instalar um servidor on-premises) Especificar credenciais do IAM e região da AWS](#install-CloudWatch-Agent-iam_user-SSM-onprem). 

  Em uma instância do EC2, você poderá usar essa linha para que o atendente do CloudWatch envie dados dessa instância para o CloudWatch em outra região da AWS. Para fazer isso, especifique um perfil nomeado que inclua um campo `region` especificando o nome da região para a qual enviar.

  Se você especificar um `shared_credential_profile`, também deverá remover o símbolo `#` do início da linha `[credentials]`.
+ `shared_credential_file`: para que o atendente procure credenciais em um arquivo localizado em um caminho diferente do padrão, especifique esse caminho completo e o nome do arquivo aqui. O caminho padrão é `/root/.aws` no Linux e `C:\\Users\\Administrator\\.aws` no Windows Server.

  O primeiro exemplo a seguir mostra a sintaxe de uma linha `shared_credential_file` válida para servidores Linux, e o segundo exemplo é válido para o Windows Server. No Windows Server, você deve fazer o escape dos caracteres \$1.

  ```
  shared_credential_file= "/usr/username/credentials"
  ```

  ```
  shared_credential_file= "C:\\Documents and Settings\\username\\.aws\\credentials"
  ```

  Se você especificar um `shared_credential_file`, também deverá remover o símbolo `#` do início da linha `[credentials]`.
+ Configurações do proxy: se seus servidores usarem os proxies HTTP ou HTTPS para entrar em contato com os produtos da AWS, especifique esses proxies nos campos `http_proxy` e `https_proxy`. Se houver URLs que devem ser excluídas do proxy, as especifique no campo `no_proxy`, separadas por vírgulas.

# Instalar o agente do CloudWatch em novas instâncias usando o CloudFormation
<a name="Install-CloudWatch-Agent-New-Instances-CloudFormation"></a>

 Esta seção descreve como instalar o agente do CloudWatch em novas instâncias do Amazon EC2 usando o AWS CloudFormation. 

**nota**  
 A Amazon fez o upload de diversos modelos do CloudFormation no GitHub que podem ajudar você a instalar e a atualizar o agente do CloudWatch em novas instâncias do Amazon EC2. Para obter mais informações sobre como usar o CloudFormation, consulte [ O que é o AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html). 

O local do modelo é [ Implantar o atendente do Amazon CloudWatch em instâncias do EC2 usando o CloudFormation](https://github.com/aws-cloudformation/aws-cloudformation-templates/tree/main/Solutions/AmazonCloudWatchAgent). Esse local inclui os diretórios `inline` e `ssm`. Cada um desses diretórios contém modelos de ambas as instâncias do Linux e do Windows. 


+ Os modelos no diretório `inline` têm a configuração do atendente do CloudWatch incorporada ao modelo do CloudFormation. Por padrão, os modelos do Linux coletam as métricas `mem_used_percent` e `swap_used_percent`, e os modelos do Windows coletam `Memory % Committed Bytes In Use` e `Paging File % Usage`.

  Para modificar esses modelos para coletar métricas diferentes, modifique a seção a seguir do modelo. O exemplo a seguir é do modelo para servidores do Linux. Siga o formato e a sintaxe do arquivo de configuração do atendente para fazer essas alterações. Para obter mais informações, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

  ```
  {
     "metrics":{
        "append_dimensions":{
           "AutoScalingGroupName":"${!aws:AutoScalingGroupName}",
           "ImageId":"${!aws:ImageId}",
           "InstanceId":"${!aws:InstanceId}",
           "InstanceType":"${!aws:InstanceType}"
        },
        "metrics_collected":{
           "mem":{
              "measurement":[
                 "mem_used_percent"
              ]
           },
           "swap":{
              "measurement":[
                 "swap_used_percent"
              ]
           }
        }
     }
  }
  ```
**nota**  
Nos modelos em linha, todas as variáveis de espaço reservado devem ter um ponto de exclamação (\$1) antes delas como um caractere de escape. Veja isso no modelo de exemplo. Se você adicionar outras variáveis de espaço reservado, adicione um ponto de exclamação antes do nome.
+ Os modelos no diretório `ssm` carregam um arquivo de configuração do atendente do Parameter Store. Para usar esses modelos, é necessário primeiro criar um arquivo de configuração e carregá-lo no Parameter Store. Em seguida, dê o nome Parameter Store do arquivo no modelo. Crie o arquivo de configuração manualmente ou usando o assistente. Para obter mais informações, consulte [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md).

Use ambos os tipos de modelos para instalar o atendente do CloudWatch e atualizar a configuração do atendente.

Para obter informações sobre como configurar o agente em um sistema que tenha o Linux com segurança aprimorada (SELinux) habilitado, consulte [Configure o agente do CloudWatch com o Linux com segurança aprimorada (SELinux)](CloudWatch-Agent-SELinux.md).

## Tutorial: instalar e configurar o atendente do CloudWatch usando um modelo em linha do CloudFormation
<a name="installing-CloudWatch-Agent-using-CloudFormation-Templates-inline"></a>

Esse tutorial mostra como usar o CloudFormation para instalar o atendente do CloudWatch em uma nova instância do Amazon EC2. Esse tutorial faz a instalação em uma nova instância que esteja executando o Amazon Linux 2 usando os modelos em linha, que não exigem o uso do arquivo de configuração JSON nem o Parameter Store. O modelo em linha inclui a configuração do atendente no modelo. Neste tutorial, você usa a configuração do atendente padrão contida no modelo.

Após o procedimento para instalar o atendente, o tutorial continua com como atualizar o atendente.

**Para usar o CloudFormation para instalar o atendente do CloudWatch em uma nova instância**

1. Faça download do modelo do GitHub. Neste tutorial, baixe o modelo em linha do Amazon Linux 2 da seguinte forma:

   ```
   curl -O https://raw.githubusercontent.com/aws-cloudformation/aws-cloudformation-templates/main/Solutions/AmazonCloudWatchAgent/inline/amazon_linux.yaml
   ```

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Selecione **Criar pilha**.

1. Em **Choose a template (Escolher um modelo)**, selecione **Upload a template to Amazon S3 (Fazer upload de um modelo no Amazon S3)**, escolha o modelo obtido por download e **Next (Avançar)**.

1. Na página **Specify Details (Especificar detalhes)**, preencha os parâmetros a seguir e escolha **Next (Próximo)**:
   + **Stack name (Nome da pilha)**: escolha um nome de pilha para a pilha do CloudFormation. 
   + **IAMRole**: escolha um perfil do IAM que tenha permissões para gravar métricas e logs e rastreamentos do CloudWatch. Para obter mais informações, consulte [Pré-requisitos](prerequisites.md).
   + **InstanceAMI**: escolha uma AMI que seja válida na região onde você pretende iniciar a pilha.
   + **InstanceType**: escolha um tipo de instância válido.
   + **KeyName**: para habilitar o acesso SSH à nova instância, escolha um par de chaves do Amazon EC2 existente. Se ainda não tiver um par de chaves do Amazon EC2, você poderá criar um no Console de gerenciamento da AWS. Para obter mais informações, consulte [Pares de chaves do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) no *Guia do usuário do Amazon EC2*.
   + **SSHLocation**: especifica o intervalo de endereços IP que podem ser usados para se conectar à instância usando SSH. O padrão permite o acesso de qualquer endereço IP.

1. Na página **Options (Opções)**, você pode optar por marcar seus recursos de pilha. Escolha **Próximo**.

1. Na página **Review** (Revisão), revise as informações, confirme se a pilha pode criar recursos do IAM e selecione **Create** (Criar).

   Se atualizar o console, você verá que a nova pilha tem o status `CREATE_IN_PROGRESS`.

1. Quando a instância é criada, é possível vê-la no console do Amazon EC2. Também é possível se conectar ao host e verificar o progresso.

   Use o seguinte comando para confirmar se o atendente está instalado:

   ```
   rpm -qa amazon-cloudwatch-agent
   ```

   Use o seguinte comando para confirmar se o atendente está em execução:

   ```
   ps aux | grep amazon-cloudwatch-agent
   ```

O próximo procedimento demonstra como usar o CloudFormation para atualizar o atendente do CloudWatch usando um modelo em linha. O modelo em linha padrão coleta a métrica `mem_used_percent`. Neste tutorial, altere a configuração do atendente para interromper a coleta dessa métrica.

**Para usar o CloudFormation para atualizar o atendente do CloudWatch**

1. No modelo obtido por download no procedimento anterior, remova as seguintes linhas e salve o modelo:

   ```
   "mem": {
                           
        "measurement": [
            "mem_used_percent"
          ]
    },
   ```

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. No painel do CloudFormation, selecione a pilha criada e escolha **Update Stack (Atualizar pilha)**.

1. Em **Select Template (Selecionar modelo)**, selecione **Upload a template to Amazon S3 (Fazer upload de um modelo para o Amazon S3)**, escolha o modelo modificado e **Next (Avançar)**.

1. Na página **Options (Opções)**, escolha **Next (Próximo)** e, depois, **Next (Próximo)**.

1. Na página **Review (Revisar)**, revise as informações e escolha **Update (Atualizar)**.

   Depois de algum tempo, você verá `UPDATE_COMPLETE`.

## Tutorial: instalar o atendente do CloudWatch usando o CloudFormation e Parameter Store
<a name="installing-CloudWatch-Agent-using-CloudFormation-Templates"></a>

Esse tutorial mostra como usar o CloudFormation para instalar o atendente do CloudWatch em uma nova instância do Amazon EC2. Este tutorial instala em uma nova instância na qual o Amazon Linux 2 esteja em execução usando um arquivo de configuração do atendente que você criou e salvo no Parameter Store.

Após o procedimento para instalar o atendente, o tutorial continua com como atualizar o atendente.

**Para usar o CloudFormation para instalar o atendente do CloudWatch em uma nova instância usando uma configuração do Parameter Store**

1. Se ainda não o fez, baixe o pacote do atendente do CloudWatch em um de seus computadores para poder criar o arquivo de configuração do atendente. Para obter mais informações mais detalhadas e baixar o atendente com o Parameter Store, consulte [Baixar o pacote do atendente do CloudWatch](download-CloudWatch-Agent-on-EC2-Instance-commandline-first.md).

1. Crie o arquivo de configuração do atendente e salve-o no Parameter Store. Para obter mais informações, consulte [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md).

1. Faça download do modelo do GitHub da seguinte forma:

   ```
   curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/ssm/amazon_linux.template
   ```

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Selecione **Criar pilha**.

1. Em **Choose a template (Escolher um modelo)**, selecione **Upload a template to Amazon S3 (Fazer upload de um modelo no Amazon S3)**, escolha o modelo obtido por download e **Next (Avançar)**.

1. Na página **Specify Details (Especificar detalhes)**, preencha os seguintes parâmetros conforme necessário e, depois, escolha **Next (Próximo)**:
   + **Stack name (Nome da pilha)**: escolha um nome de pilha para a pilha do CloudFormation. 
   + **IAMRole**: escolha um perfil do IAM que tenha permissões para gravar métricas e logs e rastreamentos do CloudWatch. Para obter mais informações, consulte [Pré-requisitos](prerequisites.md).
   + **InstanceAMI**: escolha uma AMI que seja válida na região onde você pretende iniciar a pilha.
   + **InstanceType**: escolha um tipo de instância válido.
   + **KeyName**: para habilitar o acesso SSH à nova instância, escolha um par de chaves do Amazon EC2 existente. Se ainda não tiver um par de chaves do Amazon EC2, você poderá criar um no Console de gerenciamento da AWS. Para obter mais informações, consulte [Pares de chaves do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) no *Guia do usuário do Amazon EC2*.
   + **SSHLocation**: especifica o intervalo de endereços IP que podem ser usados para se conectar à instância usando SSH. O padrão permite o acesso de qualquer endereço IP.
   + **SSMKey**: especifica o arquivo de configuração do atendente que você criou e salvou no Parameter Store.

1. Na página **Options (Opções)**, você pode optar por marcar seus recursos de pilha. Escolha **Próximo**.

1. Na página **Review** (Revisão), revise as informações, confirme se a pilha pode criar recursos do IAM e selecione **Create** (Criar).

   Se atualizar o console, você verá que a nova pilha tem o status `CREATE_IN_PROGRESS`.

1. Quando a instância é criada, é possível vê-la no console do Amazon EC2. Também é possível se conectar ao host e verificar o progresso.

   Use o seguinte comando para confirmar se o atendente está instalado:

   ```
   rpm -qa amazon-cloudwatch-agent
   ```

   Use o seguinte comando para confirmar se o atendente está em execução:

   ```
   ps aux | grep amazon-cloudwatch-agent
   ```

O procedimento a seguir demonstra como usar o CloudFormation para atualizar o atendente do CloudWatch com uma configuração do atendente salva no Parameter Store.

**Para usar o CloudFormation para atualizar o atendente do CloudWatch com uma configuração no Parameter Store**

1. Altere o arquivo de configuração do atendente armazenado no Parameter Store para a nova configuração desejada.

1. No modelo do CloudFormation obtido por download no tópico [Tutorial: instalar o atendente do CloudWatch usando o CloudFormation e Parameter Store](#installing-CloudWatch-Agent-using-CloudFormation-Templates), altere o número da versão. Por exemplo, você poderia alterar `VERSION=1.0` para `VERSION=2.0`.

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. No painel do CloudFormation, selecione a pilha criada e escolha **Update Stack (Atualizar pilha)**.

1. Em **Select Template (Selecionar modelo)**, selecione **Upload a template to Amazon S3 (Fazer upload de um modelo para o Amazon S3)**, selecione o modelo recém-modificado e **Next (Avançar)**.

1. Na página **Options (Opções)**, escolha **Next (Próximo)** e, depois, **Next (Próximo)**.

1. Na página **Review (Revisar)**, revise as informações e escolha **Update (Atualizar)**.

   Depois de algum tempo, você verá `UPDATE_COMPLETE`.

## Solução de problemas de instalação do atendente do CloudWatch com o CloudFormation
<a name="CloudWatch-Agent-CloudFormation-troubleshooting"></a>

Esta seção ajuda a solucionar problemas na instalação e na atualização do atendente do CloudWatch usando o CloudFormation.

### Detectar quando uma atualização falha
<a name="CloudWatch-Agent-troubleshooting-Detecting-CloudFormation-update-issues"></a>

Se você usar o CloudFormation para atualizar a configuração do atendente do CloudWatch e usar uma configuração inválida, o atendente deixará de enviar métricas para o CloudWatch. Uma maneira rápida de verificar se uma atualização da configuração do atendente foi bem-sucedida é procurar no arquivo `cfn-init-cmd.log`. Em um servidor do Linux, o arquivo está localizado em `/var/log/cfn-init-cmd.log`. Em uma instância do Windows, o arquivo está localizado em `C:\cfn\log\cfn-init-cmd.log`.

### As métricas não foram encontradas
<a name="CloudWatch-Agent-troubleshooting-Cloudformation-missing-metrics"></a>

Se você não vir métricas que deveria ver depois de instalar ou atualizar o atendente, confirme se o atendente está configurado para coletar essa métrica. Para fazer isso, verifique o arquivo `amazon-cloudwatch-agent.json` para garantir que a métrica esteja listada e que você esteja procurando no namespace de métrica correto. Para obter mais informações, consulte [Arquivos e locais do atendente do CloudWatch](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-files-and-locations).

# Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm
<a name="install-CloudWatch-Observability-EKS-addon"></a>

Você pode usar o complemento de observabilidade do EKS do Amazon CloudWatch ou o chart do Helm de observabilidade do Amazon CloudWatch para instalar o agente do CloudWatch e o do Fluent Bit em um cluster do Amazon EKS. Você também pode usar o chart do Helm para instalar o agente do CloudWatch e o do Fluent-bit em um cluster do Kubernetes que não esteja hospedado no Amazon EKS.

O uso de qualquer um dos métodos em um cluster do Amazon EKS habilita o [Container Insights](ContainerInsights.md) com observabilidade aprimorada para o Amazon EKS e o [CloudWatch Application Signals](CloudWatch-Application-Monitoring-Sections.md) por padrão. Os dois recursos ajudam a coletar métricas de infraestrutura, a telemetria de performance da aplicação e os logs de contêiner do cluster.

Com a versão `v6.0.1-eksbuild.1` ou posterior do complemento, o Container Insights com métricas do OpenTelemetry está habilitado, o que coleta métricas usando o OpenTelemetry Protocol (OTLP) e é compatível com consultas do PromQL. Para obter mais informações, consulte [Métricas do Container Insights com OpenTelemetry para Amazon EKS](container-insights-otel-metrics.md).

Com o Container Insights com capacidade de observabilidade aprimorada para o Amazon EKS, as métricas do Container Insights são cobradas por observação, em vez de serem cobradas por métrica armazenada ou log ingerido. Para o Application Signals, o faturamento é baseado nas solicitações de entrada para as aplicações, nas solicitações de saída das aplicações e em cada objetivo de nível de serviço (SLO) configurado. Cada solicitação de entrada recebida gera um sinal de aplicação e cada solicitação de saída realizada gera um sinal de aplicação. Cada SLO cria dois sinais de aplicações por período de medição. Para obter mais informações sobre os preços do CloudWatch, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

Os dois métodos habilitam o Container Insights em nós de processamento do Linux e do Windows no cluster do Amazon EKS. Para habilitar o Container Insights no Windows, é necessário usar a versão 1.5.0 ou versões posteriores do chart do Helm ou do complemento do Amazon EKS. O Application Signals não é compatível com o sistema Windows em clusters do Amazon EKS.

O complemento Amazon CloudWatch Observability do EKS é compatível com os clusters do Amazon EKS executados com a versão 1.23 ou com versões posteriores do Kubernetes.

Ao instalar o complemento ou o chart do Helm, também é necessário conceder permissões do IAM para possibilitar que o agente do CloudWatch envie métricas, logs e rastreamentos para o CloudWatch. Há duas maneiras de fazer isso:
+ Anexe uma política à função do IAM dos nós de processamento. Essa opção concede permissões aos nós de processamento para enviar telemetria ao CloudWatch. 
+ Use um perfil do IAM para contas de serviço dos pods de agentes e anexe a política a esse perfil. Funciona somente para clusters do Amazon EKS. Essa opção dá ao CloudWatch acesso apenas aos pods de agente adequados. 

**Topics**
+ [Opção 1: Instalar usando a Identidade de Pods do EKS](#install-CloudWatch-Observability-EKS-pod-identity)
+ [Opção 2: instalar com permissões do IAM nos nós de processamento](#install-CloudWatch-Observability-EKS-addon-workernodes)
+ [Opção 3: instalar usando o perfil da conta de serviço do IAM (aplica-se somente ao uso do complemento)](#install-CloudWatch-Observability-EKS-addon-serviceaccountrole)
+ [Considerações sobre o Amazon EKS Hybrid Nodes](#install-CloudWatch-Observability-EKS-addon-hybrid)
+ [(Opcional) Configuração adicional](#install-CloudWatch-Observability-EKS-addon-configuration)
+ [Coletar métricas do Java Management Extensions (JMX)](#install-CloudWatch-Observability-EKS-addon-JMX-metrics)
+ [Habilitar métricas do Kueue](#enable-Kueue-metrics)
+ [Anexar arquivos de configuração do coletor do OpenTelemetry](#install-CloudWatch-Observability-EKS-addon-OpenTelemetry)
+ [Habilitar APM usando o Application Signals para o cluster do Amazon EKS](#Container-Insights-setup-EKS-appsignalsconfiguration)
+ [Solução de problemas do complemento de observabilidade do EKS do Amazon CloudWatch ou do chart do Helm](#Container-Insights-setup-EKS-addon-troubleshoot)
+ [Optar por não usar o Application Signals](#Opting-out-App-Signals)

## Opção 1: Instalar usando a Identidade de Pods do EKS
<a name="install-CloudWatch-Observability-EKS-pod-identity"></a>

Se você usa a versão 3.1.0 ou posterior do complemento, pode usar a Identidade de Pods do EKS para conceder as permissões necessárias ao complemento. A Identidade de Pods do EKS é a opção recomendada e oferece benefícios como privilégio mínimo, alternância de credenciais e auditabilidade. Além disso, o uso da Identidade de Pods do EKS permite instalar o complemento do EKS como parte da própria criação do cluster.

Para usar este método, primeiro siga as etapas de [Associação da Identidade de Pods do EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html#pod-id-association-create/) para criar o perfil do IAM e configurar o agente da Identidade de Pods do EKS.

Em seguida, instale o complemento de observabilidade do EKS do Amazon CloudWatch. Para instalar o complemento, você pode usar a AWS CLI, o console do Amazon EKS, o CloudFormation ou o Terraform.

------
#### [ AWS CLI ]

**Como usar a AWS CLI para instalar o complemento Amazon CloudWatch Observability do EKS**  
Insira os comandos a seguir: Substitua `my-cluster-name` pelo nome do cluster e *111122223333* pelo ID da conta. Substitua *my-role* pelo perfil do IAM que você criou na etapa de associação da Identidade de Pods do EKS.

```
aws iam attach-role-policy \
--role-name my-role \
--policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

aws eks create-addon \
--addon-name amazon-cloudwatch-observability \
--cluster-name my-cluster-name \
--pod-identity-associations serviceAccount=cloudwatch-agent,roleArn=arn:aws:iam::111122223333:role/my-role
```

------
#### [ Amazon EKS console ]

**Como usar o console do Amazon EKS para adicionar o complemento Amazon CloudWatch Observability do EKS**

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. No painel de navegação à esquerda, escolha **Clusters**.

1. Escolha o nome do cluster para o qual você deseja configurar o complemento Amazon CloudWatch Observability do EKS.

1. Escolha a guia **Add-ons** (Complementos).

1. Escolha **Obter mais complementos**.

1. Na página **Selecionar complementos**, faça o seguinte:

   1. Na seção **Amazon EKS-addons**, marque a caixa de seleção **Observabilidade do Amazon CloudWatch**.

   1. Escolha **Próximo**.

1. Na página **Definir as configurações dos complementos selecionados**:

   1. Selecione a **Versão** que deseja usar.

   1. Em **Acesso ao complemento**, escolha **Identidade de Pods do EKS**.

   1. Se você não tiver um perfil do IAM configurado, escolha **Criar perfil recomendado** e, em seguida, escolha **Avançar** até chegar à **Etapa 3 Nomear, revisar e criar**. Se desejar, você poderá alterar o nome do perfil. Caso contrário, escolha **Criar perfil** e, em seguida, retorne à página do complemento e selecione o perfil do IAM que acabou de criar.

   1. (Opcional) Você pode expandir **Definições de configuração opcionais**. Se você selecionar **Substituir** como **Método de resolução de conflitos**, uma ou mais configurações do complemento existente poderão ser substituídas pelas configurações do complemento do Amazon EKS. Se você não habilitar esta opção e houver um conflito com suas configurações existentes, a operação falhará. É possível usar a mensagem de erro resultante para solucionar o conflito. Antes de selecionar essa opção, certifique-se de que o complemento do Amazon EKS não gerencie as configurações que você precisa autogerenciar.

   1. Escolha **Próximo**.

1. Na página **Adicionar tags**, escolha **Criar**. Depois que a instalação do complemento for concluída, você verá o complemento instalado.

------
#### [ CloudFormation ]

**Como usar o CloudFormation para instalar o complemento Amazon CloudWatch Observability do EKS**

1. Primeiro, execute o comando da AWS CLI a seguir para anexar a política do IAM necessária ao seu perfil do IAM. Substitua *my-role* pelo perfil que você criou na etapa de associação da Identidade de Pods do EKS.

   ```
   aws iam attach-role-policy \
   --role-name my-role \
   --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
   ```

1. Depois, crie o recurso a seguir. Substitua `my-cluster-name` pelo nome do seu cluster, *111122223333* pelo ID da sua conta e *my-role* pelo perfil do IAM criado na etapa de associação do EKS Pod Identity. Para obter mais informações, consulte [AWS::EKS::Addon](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html).

   ```
   {
       "Resources": {
           "EKSAddOn": {
               "Type": "AWS::EKS::Addon",
               "Properties": {
                   "AddonName": "amazon-cloudwatch-observability",
                   "ClusterName": "my-cluster-name",
                   "PodIdentityAssociations": [
                       {
                           "ServiceAccount": "cloudwatch-agent",
                           "RoleArn": "arn:aws:iam::111122223333:role/my-role"
                       }
                   ]
               }
           }
       }
   }
   ```

------
#### [ Terraform ]

**Como usar o Terraform para instalar o complemento Amazon CloudWatch Observability do EKS**

1. Siga as instruções abaixo. Substitua `my-cluster-name` pelo nome do seu cluster, *111122223333* pelo ID da sua conta e *my-service-account-role* pelo perfil do IAM criado na etapa de associação do EKS Pod Identity.

   Para obter mais informações, consulte [Recurso: aws\$1eks\$1addon](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_addon) na documentação do Terraform.

1. 

   ```
   resource "aws_iam_role_policy_attachment" "CloudWatchAgentServerPolicy" {
     policy_arn = "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy"
     role       = "my-role"
   }
   
   resource "aws_eks_addon" "example" {
     cluster_name = "my-cluster-name"
     addon_name   = "amazon-cloudwatch-observability"
     pod_identity_associations {
         roleArn = "arn:aws:iam::111122223333:role/my-role"
         serviceAccount = "cloudwatch-agent"
     }
   }
   ```

------

## Opção 2: instalar com permissões do IAM nos nós de processamento
<a name="install-CloudWatch-Observability-EKS-addon-workernodes"></a>

Para usar esse método, primeiro anexe a política do IAM **CloudWatchAgentServerPolicy** aos nós de processamento, digitando o comando a seguir. Nesse comando, substitua *my-worker-node-role* pelo perfil do IAM usado por seus nós de processamento do Kubernetes.

```
aws iam attach-role-policy \
--role-name my-worker-node-role \
--policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
```

Em seguida, instale o complemento de observabilidade do EKS do Amazon CloudWatch. Para instalar o complemento, você pode usar a AWS CLI, o console, o CloudFormation ou o Terraform.

------
#### [ AWS CLI ]

**Como usar a AWS CLI para instalar o complemento Amazon CloudWatch Observability do EKS**  
Insira o comando a seguir. Substitua o `my-cluster-name` pelo nome do cluster.

```
aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name
```

------
#### [ Amazon EKS console ]

**Como usar o console do Amazon EKS para adicionar o complemento Amazon CloudWatch Observability do EKS**

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. No painel de navegação à esquerda, escolha **Clusters**.

1. Escolha o nome do cluster para o qual você deseja configurar o complemento Amazon CloudWatch Observability do EKS.

1. Escolha a guia **Add-ons** (Complementos).

1. Escolha **Obter mais complementos**.

1. Na página **Selecionar complementos**, faça o seguinte:

   1. Na seção **Amazon EKS-addons**, marque a caixa de seleção **Observabilidade do Amazon CloudWatch**.

   1. Escolha **Próximo**.

1. Na página **Definir as configurações dos complementos selecionados**:

   1. Selecione a **Versão** que deseja usar.

   1. (Opcional) Você pode expandir **Definições de configuração opcionais**. Se você selecionar **Substituir** como **Método de resolução de conflitos**, uma ou mais configurações do complemento existente poderão ser substituídas pelas configurações do complemento do Amazon EKS. Se você não habilitar esta opção e houver um conflito com suas configurações existentes, a operação falhará. É possível usar a mensagem de erro resultante para solucionar o conflito. Antes de selecionar essa opção, certifique-se de que o complemento do Amazon EKS não gerencie as configurações que você precisa autogerenciar.

   1. Escolha **Próximo**.

1. Na página **Adicionar tags**, escolha **Criar**. Depois que a instalação do complemento for concluída, você verá o complemento instalado.

------
#### [ CloudFormation ]

**Como usar o CloudFormation para instalar o complemento Amazon CloudWatch Observability do EKS**  
Substitua o `my-cluster-name` pelo nome do cluster. Para obter mais informações, consulte [AWS::EKS::Addon](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html).

```
{
    "Resources": {
        "EKSAddOn": {
            "Type": "AWS::EKS::Addon",
            "Properties": {
                "AddonName": "amazon-cloudwatch-observability",
                "ClusterName": "my-cluster-name"
            }
        }
    }
}
```

------
#### [ Helm chart ]

**Para usar o chart do Helm `amazon-cloudwatch-observability`**

1. Você deve ter o Helm instalado para usar esse chart. Para obter mais informações sobre como instalar o Helm, consulte a [documentação do Helm](https://helm.sh/docs/).

1. Depois de instalar o Helm, insira os comandos a seguir. Substitua *my-cluster-name* pelo nome do seu cluster e *my-cluster-region* pela região em que o cluster é executado.

   ```
   helm repo add aws-observability https://aws-observability.github.io/helm-charts
   helm repo update aws-observability
   helm install --wait --create-namespace --namespace amazon-cloudwatch amazon-cloudwatch-observability aws-observability/amazon-cloudwatch-observability --set clusterName=my-cluster-name --set region=my-cluster-region
   ```

------
#### [ Terraform ]

**Como usar o Terraform para instalar o complemento Amazon CloudWatch Observability do EKS**  
Substitua o `my-cluster-name` pelo nome do cluster. Para obter mais informações, consulte [Recurso: aws\$1eks\$1addon](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_ad).

```
resource "aws_eks_addon" "example" {
  addon_name   = "amazon-cloudwatch-observability"
  cluster_name = "my-cluster-name"
}
```

------

## Opção 3: instalar usando o perfil da conta de serviço do IAM (aplica-se somente ao uso do complemento)
<a name="install-CloudWatch-Observability-EKS-addon-serviceaccountrole"></a>

Este método será válido somente se você estiver usando o complemento de observabilidade do EKS do Amazon CloudWatch. Antes de usar esse método, verifique os seguintes pré-requisitos:
+ Você possui um cluster funcional do Amazon EKS com nós conectados em uma das Regiões da AWS que são compatíveis com o Container Insights. Para obter a lista de regiões compatíveis, consulte [Container Insights](ContainerInsights.md).
+ Você instalou o `kubectl` e configurou o cluster. Para obter mais informações, consulte [Instalar o `kubectl`](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) no *Manual do usuário do Amazon EKS*.
+ Você tem o `eksctl` instalado. Para obter mais informações, consulte [Instalação ou atualização do `eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html) no *Guia do usuário do Amazon EKS*.

------
#### [ AWS CLI ]

**Para usar a AWS CLI para instalar o complemento de observabilidade do EKS do Amazon CloudWatch usando o perfil de conta de serviço do IAM**

1. Insira o comando seguir para criar um provedor do OpenID Connect (OIDC), se o cluster ainda não tiver um. Para obter mais informações, consulte [Configuração de uma conta de serviço do Kubernetes para assumir um perfil do IAM](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) no *Guia do usuário do Amazon EKS*.

   ```
   eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve
   ```

1. Insira o comando a seguir para criar o perfil do IAM com a política **CloudWatchAgentServerPolicy** anexada e configure a conta do serviço de agente para assumir esse perfil usando o OIDC. Substitua *my-cluster-name* pelo nome do seu cluster e substitua *my-service-account-role* pelo nome do perfil ao qual você deseja associar a conta de serviço. Se o perfil ainda não existir, o `eksctl` o criará para você. 

   ```
   eksctl create iamserviceaccount \
     --name cloudwatch-agent \
     --namespace amazon-cloudwatch --cluster my-cluster-name \
     --role-name my-service-account-role \
     --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
     --role-only \
     --approve
   ```

1. Instale o complemento inserindo o comando a seguir. Substitua *my-cluster-name* pelo nome do seu cluster, substitua *111122223333* pela ID da sua conta e substitua *my-service-account-role* pelo perfil do IAM criado na etapa anterior.

   ```
   aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::111122223333:role/my-service-account-role
   ```

------
#### [ Amazon EKS console ]

**Para usar o console para instalar o complemento de observabilidade do EKS do Amazon CloudWatch usando o perfil de conta de serviço do IAM**

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. No painel de navegação à esquerda, escolha **Clusters**.

1. Escolha o nome do cluster para o qual você deseja configurar o complemento Amazon CloudWatch Observability do EKS.

1. Escolha a guia **Add-ons** (Complementos).

1. Escolha **Obter mais complementos**.

1. Na página **Selecionar complementos**, faça o seguinte:

   1. Na seção **Amazon EKS-addons**, marque a caixa de seleção **Observabilidade do Amazon CloudWatch**.

   1. Escolha **Próximo**.

1. Na página **Definir as configurações dos complementos selecionados**:

   1. Selecione a **Versão** que deseja usar.

   1. Para **Acesso ao complemento**, selecione **Perfis do IAM para contas de serviço (IRSA)**

   1. Selecione o perfil do IAM na caixa **Acesso ao complemento**.

   1. (Opcional) Você pode expandir **Definições de configuração opcionais**. Se você selecionar **Substituir** como **Método de resolução de conflitos**, uma ou mais configurações do complemento existente poderão ser substituídas pelas configurações do complemento do Amazon EKS. Se você não habilitar esta opção e houver um conflito com suas configurações existentes, a operação falhará. É possível usar a mensagem de erro resultante para solucionar o conflito. Antes de selecionar essa opção, certifique-se de que o complemento do Amazon EKS não gerencie as configurações que você precisa autogerenciar.

   1. Escolha **Próximo**.

1. Na página **Adicionar tags**, escolha **Criar**. Depois que a instalação do complemento for concluída, você verá o complemento instalado.

------

## Considerações sobre o Amazon EKS Hybrid Nodes
<a name="install-CloudWatch-Observability-EKS-addon-hybrid"></a>

As métricas no nível de nós não estão disponíveis para nós híbridos porque o [Container Insights](ContainerInsights.md) depende da disponibilidade do [Serviço de metadados de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) (IMDS) para métricas no nível de nós. Métricas no nível de cluster, Pod, workload e contêiner estão disponíveis para nós híbridos.

Depois de instalar o complemento seguindo as etapas nas seções anteriores, você deve atualizar o manifesto do complemento para que o agente possa ser executado com êxito em nós híbridos. Edite o recurso `amazoncloudwatchagents` no cluster para adicionar a variável `RUN_WITH_IRSA` de ambiente que corresponda ao abaixo.

```
kubectl edit amazoncloudwatchagents -n amazon-cloudwatch cloudwatch-agent
```

```
apiVersion: v1
       items:
       - apiVersion: cloudwatch.aws.amazon.com/v1alpha1
         kind: AmazonCloudWatchAgent
         metadata:
           ...
           name: cloudwatch-agent
           namespace: amazon-cloudwatch
           ...
         spec:
           ...
           env:
           - name: RUN_WITH_IRSA # <-- Add this
             value: "True" # <-- Add this
           - name: K8S_NODE_NAME
             valueFrom:
               fieldRef:
                 fieldPath: spec.nodeName
                 ...
```

## (Opcional) Configuração adicional
<a name="install-CloudWatch-Observability-EKS-addon-configuration"></a>

**Topics**
+ [Opte por não coletar logs de contêineres](#CloudWatch-Observability-EKS-addon-OptOutContainerLogs)
+ [Usar uma configuração personalizada do Fluent Bit](#CloudWatch-Observability-EKS-addon-CustomFluentBit)
+ [Gerenciar as tolerações do Kubernetes para as workloads do pod instalado](#CloudWatch-Observability-EKS-addon-Tolerations)
+ [Excluir a coleta acelerada de métricas de computação](#CloudWatch-Observability-EKS-addon-OptOutAccelerated)
+ [Como usar uma configuração personalizada do agente do CloudWatch](#CloudWatch-Observability-EKS-addon-CustomAgentConfig)
+ [Gerenciamento de certificados TLS para o webhook de admissão](#CloudWatch-Observability-EKS-addon-Webhook)
+ [Coletar IDs de volume do Amazon EBS](#CloudWatch-Observability-EKS-addon-VolumeIDs)

### Opte por não coletar logs de contêineres
<a name="CloudWatch-Observability-EKS-addon-OptOutContainerLogs"></a>

Por padrão, o complemento usa o Fluent Bit para coletar logs de contêineres de todos os pods e, em seguida, envia os logs para o CloudWatch Logs. Para obter informações sobre quais logs são coletados, consulte [Configurar o Fluent Bit](Container-Insights-setup-logs-FluentBit.md#Container-Insights-FluentBit-setup).

**nota**  
Nem o complemento nem o chart do Helm gerenciam os recursos existentes do Fluentd ou do FluentBit em um cluster. Você pode excluir os recursos existentes do Fluentd ou do Fluent Bit antes de instalar o complemento ou o chart do Helm. Como alternativa, para manter sua configuração existente e evitar que o complemento ou o chart do Helm também instalem o Fluent Bit, você pode desabilitá-lo seguindo as instruções nesta seção. 

Para desativar a coleta de logs de contêineres, caso esteja usando o complemento de observabilidade do EKS do Amazon CloudWatch, passe a seguinte opção ao criar ou atualizar o complemento:

```
--configuration-values '{ "containerLogs": { "enabled": false } }'
```

Para desativar a coleta de logs de contêineres, caso esteja usando o chart do Helm, passe a seguinte opção ao criar ou atualizar o complemento:

```
--set containerLogs.enabled=false
```

### Usar uma configuração personalizada do Fluent Bit
<a name="CloudWatch-Observability-EKS-addon-CustomFluentBit"></a>

A partir da versão 1.7.0 do complemento de observabilidade do EKS do Amazon CloudWatch, você pode modificar a configuração do Fluent Bit ao criar ou atualizar o complemento ou o chart do Helm. Você fornece a configuração personalizada do Fluent Bit na seção de nível raiz `containerLogs` da configuração avançada do complemento ou das substituições de valores no chart do Helm. Nesta seção, você fornece a configuração personalizada do Fluent Bit na seção `config` (para Linux) ou na seção `configWindows` (para Windows). A seção `config` ainda é dividida nas seguintes subseções:
+ `service`: esta seção representa a configuração de `SERVICE` para definir o comportamento global do mecanismo do Fluent Bit.
+ `customParsers`: esta seção representa qualquer `PARSER` global que você deseje incluir que seja capaz de pegar entradas de logs não estruturadas e fornecer a elas uma estrutura para facilitar o processamento e a filtragem adicional.
+ `extraFiles`: esta seção pode ser usada para fornecer arquivos adicionais de `conf` do Fluent Bit a serem incluídos. Por padrão, os três arquivos de `conf` abaixo estão incluídos:
  + `application-log.conf`: um arquivo de `conf` para enviar logs de aplicações do seu cluster para o grupo de logs `/aws/containerinsights/my-cluster-name/application` no CloudWatch Logs.
  + `dataplane-log.conf`: um arquivo de `conf` para enviar logs correspondentes aos componentes do plano de dados do seu cluster, incluindo os logs de CRI, logs de kubelet, logs de kube-proxy e logs de CNI da Amazon VPC para o grupo de logs `/aws/containerinsights/my-cluster-name/dataplane` no CloudWatch Logs.
  + `host-log.conf`: um `conf` para enviar logs de `/var/log/dmesg`, `/var/log/messages` e `/var/log/secure` no Linux, e `winlogs` do sistema no Windows, para o grupo de logs `/aws/containerinsights/my-cluster-name/host` no CloudWatch.

**nota**  
Forneça a configuração completa para cada uma dessas seções individuais, mesmo se você estiver modificando somente um campo em uma subseção. Recomendamos que você use a configuração padrão fornecida abaixo como linha de base e, então, modifique-a de acordo para não desabilitar a funcionalidade que é habilitada por padrão. Você pode usar a configuração YAML a seguir ao modificar a configuração avançada do complemento do Amazon EKS ou ao fornecer substituições de valores para o chart do Helm. 

Para encontrar a seção `config` do seu cluster, consulte [aws-observability / helm-charts](https://github.com/aws-observability/helm-charts/releases) no GitHub e encontre a versão correspondente à versão do complemento ou do chart do Helm que você está instalando. Em seguida, navegue até `/charts/amazon-cloudwatch-observability/values.yaml` para encontrar a seção `config` (para Linux) e a seção `configWindows` (para Windows) na seção `fluentBit` em `containerLogs`.

Como exemplo, a configuração padrão do Fluent Bit para a versão 1.7.0 pode ser encontrada [aqui](https://github.com/aws-observability/helm-charts/blob/v1.7.0/charts/amazon-cloudwatch-observability/values.yaml#L44)).

Recomendamos que você forneça a `config` como YAML ao fornecê-la usando a configuração avançada do complemento do Amazon EKS ou ao fornecê-la como substituições de valor para sua instalação do Helm. Certifique-se de que o YAML esteja em conformidade com a estrutura a seguir.

```
containerLogs:
  fluentBit:
    config:
      service: |
        ...
      customParsers: |
        ...
      extraFiles:
        application-log.conf: |
          ...
        dataplane-log.conf: |
          ...
        host-log.conf: |
          ...
```

O exemplo a seguir de `config` altera a configuração global do intervalo de descarga para 45 segundos. Mesmo que a única modificação seja no campo `Flush`, você ainda deve fornecer a definição completa de `SERVICE` para a subseção do serviço. Como esse exemplo não especificou substituições para as outras subseções, os padrões foram usados para elas.

```
containerLogs:
  fluentBit:
    config:
      service: |
        [SERVICE]
          Flush                     45
          Grace                     30
          Log_Level                 error
          Daemon                    off
          Parsers_File              parsers.conf
          storage.path              /var/fluent-bit/state/flb-storage/
          storage.sync              normal
          storage.checksum          off
          storage.backlog.mem_limit 5M
```

O exemplo de configuração a seguir inclui um arquivo extra de `conf` do Fluent Bit. Neste exemplo, estamos adicionando um `my-service.conf` personalizado em `extraFiles`, e ele será incluído além dos três `extraFiles` padrão.

```
containerLogs:
  fluentBit:
    config:
      extraFiles:
        my-service.conf: |
          [INPUT]
            Name              tail
            Tag               myservice.*
            Path              /var/log/containers/*myservice*.log
            DB                /var/fluent-bit/state/flb_myservice.db
            Mem_Buf_Limit     5MB
            Skip_Long_Lines   On
            Ignore_Older      1d
            Refresh_Interval  10
          
          [OUTPUT]
            Name                cloudwatch_logs
            Match               myservice.*
            region              ${AWS_REGION}
            log_group_name      /aws/containerinsights/${CLUSTER_NAME}/myservice
            log_stream_prefix   ${HOST_NAME}-
            auto_create_group   true
```

O próximo exemplo remove totalmente um arquivo de `conf` existente de `extraFiles`. Isso exclui `application-log.conf` totalmente, substituindo-o por uma string vazia. Simplesmente omitir `application-log.conf` de `extraFiles` implicaria usar o padrão, o que não é o que estamos tentando alcançar neste exemplo. O mesmo se aplica à remoção de qualquer arquivo personalizado de `conf` que você possa ter adicionado anteriormente a `extraFiles`.

```
containerLogs:
  fluentBit:
    config:
      extraFiles:
        application-log.conf: ""
```

### Gerenciar as tolerações do Kubernetes para as workloads do pod instalado
<a name="CloudWatch-Observability-EKS-addon-Tolerations"></a>

A partir da versão 1.7.0 do complemento de observabilidade do EKS do Amazon CloudWatch, o complemento e o chart do Helm definem, por padrão, as *tolerâncias* do Kubernetes para tolerar todos os taints nas workloads do pod instalados pelo complemento ou pelo chart do Helm. Isso garante que daemonsets, como o agente CloudWatch e o Fluent Bit, possam programar pods em todos os nós do seu cluster por padrão. Para obter mais informações sobre taints e tolerâncias, consulte [Taints e Tolerâncias](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) na documentação do Kubernetes. 

As tolerâncias padrão definidas pelo complemento ou pelo chart do Helm são as seguintes:

```
tolerations:
- operator: Exists
```

Você pode substituir as tolerâncias padrão definindo o campo `tolerations` no nível raiz ao usar a configuração avançada do complemento ou ao instalar ou atualizar o chart do Helm com substituições de valores. Um exemplo pode ser o seguinte:

```
tolerations:
- key: "key1"
  operator: "Exists"
  effect: "NoSchedule"
```

Para omitir completamente as tolerâncias, você pode usar uma configuração que seja como a seguinte:

```
tolerations: []
```

Todas as alterações nas tolerâncias se aplicam a todas as workloads do pod instaladas pelo complemento ou pelo chart do Helm.

### Excluir a coleta acelerada de métricas de computação
<a name="CloudWatch-Observability-EKS-addon-OptOutAccelerated"></a>

Por padrão, o Container Insights com observabilidade aprimorada coleta métricas para monitoramento acelerado de computação, incluindo métricas de GPU da NVIDIA, métricas do AWS Neuron para AWS Trainium e AWS Inferentia e métricas do AWS Elastic Fabric Adapter (EFA).

As métricas de GPU da NVIDIA das workloads do Amazon EKS são coletadas por padrão, começando com a versão `v1.3.0-eksbuild.1` do complemento do EKS ou do chart do Helm e a versão `1.300034.0` do agente do CloudWatch. Para obter uma lista das métricas coletadas e dos pré-requisitos, consulte [Métricas da GPU NVIDIA](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EKS-GPU).

As métricas do AWS Neuron para aceleradores do AWS Trainium e AWS Inferentia são coletadas por padrão, começando com a versão `v1.5.0-eksbuild.1` do complemento EKS ou do chart do Helm e a versão `1.300036.0` do agente do CloudWatch. Para obter uma lista das métricas coletadas e dos pré-requisitos, consulte [Métricas do AWS Neuron para o AWS Trainium e para o AWS Inferentia](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EKS-Neuron).

As métricas do AWS Elastic Fabric Adapter (EFA) dos nós do Linux nos clusters do Amazon EKS são coletadas por padrão, começando com a versão `v1.5.2-eksbuild.1` do complemento EKS ou do chart do Helm e a versão `1.300037.0` do agente do CloudWatch. Para obter uma lista das métricas coletadas e dos pré-requisitos, consulte [Métricas do AWS Elastic Fabric Adapter (EFA)](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EFA).

Você pode optar por não coletar essas métricas definindo o campo `accelerated_compute_metrics` no arquivo de configuração do agente do CloudWatch como `false`. Esse campo está na seção `kubernetes` da seção `metrics_collected` no arquivo de configuração do CloudWatch. Este é um exemplo de uma configuração de exclusão. Para obter mais informações sobre como usar as configurações personalizadas do agente do CloudWatch, consulte a seção a seguir, [Como usar uma configuração personalizada do agente do CloudWatch](#CloudWatch-Observability-EKS-addon-CustomAgentConfig).

```
{
  "logs": {
    "metrics_collected": {
      "kubernetes": {
        "enhanced_container_insights": true,
        "accelerated_compute_metrics": false
      }
    }
  }
}
```

### Como usar uma configuração personalizada do agente do CloudWatch
<a name="CloudWatch-Observability-EKS-addon-CustomAgentConfig"></a>

Para coletar métricas, logs ou rastreamentos adicionais usando o agente do CloudWatch, é possível especificar uma configuração personalizada e, ao mesmo tempo, manter o Container Insights e o CloudWatch Application Signals habilitados. Para fazê-lo, incorpore o arquivo de configuração do agente do CloudWatch na chave de configuração em chave do agente da configuração avançada que você pode usar ao criar ou atualizar o chart do Helm ou o complemento do EKS. Veja a seguir uma representação da configuração padrão do agente quando nenhuma configuração adicional é fornecida.

**Importante**  
Qualquer configuração personalizada fornecida usando as definições de configurações adicionais substitui a configuração padrão usada pelo agente. Tenha cuidado para não desabilitar acidentalmente as funcionalidades que são habilitadas por padrão, como o Container Insights com uma observabilidade aprimorada e o CloudWatch Application Signals. Diante do cenário em que é necessário fornecer uma configuração do agente personalizada, recomendamos usar a configuração padrão apresentada a seguir como linha de base e, em seguida, modificá-la com base nas suas necessidades.
+ Para usar o complemento de observabilidade do EKS do Amazon CloudWatch

  ```
  --configuration-values '{
    "agent": {
      "config": {
        "logs": {
          "metrics_collected": {
            "application_signals": {},
            "kubernetes": {
              "enhanced_container_insights": true
            }
          }
        },
        "traces": {
          "traces_collected": {
            "application_signals": {}
          }
        }
      }
    }   
  }'
  ```
+ Para usar o chart do Helm

  ```
  --set agent.config='{
    "logs": {
      "metrics_collected": {
        "application_signals": {},
        "kubernetes": {
          "enhanced_container_insights": true
        }
      }
    },
    "traces": {
      "traces_collected": {
        "application_signals": {}
      }
    }
  }'
  ```

O exemplo apresentado a seguir mostra a configuração padrão do agente do CloudWatch no Windows. O agente do CloudWatch no Windows não oferece suporte à configuração personalizada.

```
{
  "logs": {
    "metrics_collected": {
      "kubernetes": {
        "enhanced_container_insights": true
      },
    }
  }
}
```

### Gerenciamento de certificados TLS para o webhook de admissão
<a name="CloudWatch-Observability-EKS-addon-Webhook"></a>

O complemento de observabilidade do EKS do Amazon CloudWatch e o chart do Helm utilizam [webhooks de admissão](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/) do Kubernetes para validar e alterar solicitações de recursos personalizados (CR) do `AmazonCloudWatchAgent` e de `Instrumentation`, e, opcionalmente, solicitações de pod do Kubernetes no cluster, se o CloudWatch Application Signals estiver habilitado. No Kubernetes, os webhooks requerem um certificado TLS no qual o servidor de API esteja configurado para confiar, a fim de garantir uma comunicação segura.

Por padrão, o complemento de observabilidade do EKS do Amazon CloudWatch e o chart do Helm geram automaticamente uma CA autoassinada e um certificado TLS assinado por essa CA para proteger a comunicação entre o servidor de API e o servidor de webhook. O certificado gerado automaticamente tem uma expiração padrão de dez anos e não é renovado de forma automática após expirar. Além disso, o pacote da CA e o certificado são gerados novamente sempre que o complemento ou o chart do Helm é atualizado ou reinstalado, redefinindo, assim, a expiração. Caso deseje alterar a expiração padrão do certificado gerado automaticamente, você poderá usar as configurações adicionais apresentadas a seguir ao criar ou atualizar o complemento. Substitua *expiry-in-days* pelo período de expiração desejado em dias. 
+ Usar para o complemento de observabilidade do EKS do Amazon CloudWatch

  ```
  --configuration-values '{ "admissionWebhooks": { "autoGenerateCert": { "expiryDays": expiry-in-days } } }' 
  ```
+ Usar para o chart do Helm

  ```
  --set admissionWebhooks.autoGenerateCert.expiryDays=expiry-in-days
  ```

Para obter uma solução mais segura e repleta de recursos da autoridade de certificação, o complemento tem suporte opcional para o [cert-manager](https://cert-manager.io/docs/), uma solução amplamente adotada para o gerenciamento de certificados TLS no Kubernetes que simplifica o processo de obtenção, renovação, gerenciamento e uso desses certificados. A solução garante que os certificados sejam válidos e estejam atualizados, bem como busca renová-los em um momento configurado antes da expiração. Além disso, o cert-manager facilita a emissão de certificados de diversas fontes com suporte, incluindo o [AWS Certificate Manager Private Certificate Authority](https://aws.amazon.com/private-ca/).

Recomendamos analisar as práticas recomendadas para o gerenciamento de certificados TLS em seus clusters e aconselhamos a opção pelo cert-manager para ambientes de produção. Observe que, se você optar por habilitar o cert-manager para gerenciar os certificados TLS para o webhook de admissão, será necessário instalar previamente o cert-manager no cluster do Amazon EKS antes de instalar o complemento de observabilidade do EKS do Amazon CloudWatch ou o chart do Helm. Para obter mais informações sobre as opções de instalação disponíveis, consulte a [documentação do cert-manager](https://cert-manager.io/docs/installation/). Após a instalação, é possível optar por usar o cert-manager para o gerenciamento dos certificados TLS para o webhook de admissão usando a configuração adicional apresentada a seguir.
+ Se estiver usando o complemento de observabilidade do EKS do Amazon CloudWatch

  ```
  --configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }' 
  ```
+ Se estiver usando o chart do Helm

  ```
  --set admissionWebhooks.certManager.enabled=true
  ```

```
--configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }' 
```

A configuração avançada debatida nesta seção usará, por padrão, um emissor [SelfSigned](https://cert-manager.io/docs/configuration/selfsigned/).

### Coletar IDs de volume do Amazon EBS
<a name="CloudWatch-Observability-EKS-addon-VolumeIDs"></a>

Se quiser coletar IDs de volume do Amazon EBS nos logs de performance, será necessário adicionar outra política ao perfil do IAM que está anexado aos nós de processamento ou à conta de serviço. Adicione o seguinte como uma política em linha. Para obter mais informações, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ec2:DescribeVolumes"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

## Coletar métricas do Java Management Extensions (JMX)
<a name="install-CloudWatch-Observability-EKS-addon-JMX-metrics"></a>

O agente do CloudWatch é compatível com a coleta de métricas do Java Management Extensions (JMX) no Amazon EKS. Isso permite que você colete métricas adicionais de aplicações Java executadas em clusters do Amazon EKS, possibilitando insights de performance, uso de memória, tráfego e outras métricas cruciais. Para obter mais informações, consulte [Coletar métricas do Java Management Extensions (JMX)](CloudWatch-Agent-JMX-metrics.md).

## Habilitar métricas do Kueue
<a name="enable-Kueue-metrics"></a>

A partir da versão `v2.4.0-eksbuild.1` do complemento CloudWatch Observability EKS, o Container Insights para Amazon EKS coleta automaticamente as métricas do Kueue de clusters do Amazon EKS. Para ter mais informações sobre essas métricas, consulte [Métricas do Kueue](Container-Insights-metrics-EKS.md#Container-Insights-metrics-Kueue).

Se você estiver usando o complemento Amazon SageMaker AI Hyperpod Task Governance EKS, você pode pular as etapas na seção **Pré-requisitos** e apenas seguir as etapas apresentadas em [Habilitar o sinalizador de configuração](#enable-Kueue-metrics-flag).

### Pré-requisitos
<a name="enable-Kueue-metrics-prerequisites"></a>

Antes de instalar o Kueue no cluster do Amazon EKS, faça as seguintes atualizações no arquivo de manifesto:

1. Habilite as métricas opcionais de recursos de filas de clusters do Kueue. Para fazer isso, modifique o `controller_manager_config.yaml` em linha no ConfigMap `kueue-system`. Na seção `metrics`, adicione ou remova o comentário da linha `enableClusterQueueResources: true`.

   ```
   apiVersion: v1
   data:
     controller_manager_config.yaml: |
       apiVersion: config.kueue.x-k8s.io/v1beta1
       kind: Configuration
       health:
         healthProbeBindAddress: :8081
       metrics:
         bindAddress: :8080
         enableClusterQueueResources: true  <-- ADD/UNCOMMENT THIS LINE
   ```

1. Por padrão, todos os serviços do `k8s` estão disponíveis em todo o cluster. O Kueue cria um serviço `kueue-controller-manager-metrics-service` para expor métricas. Para evitar observações duplicadas para métricas, modifique esse serviço para permitir acesso somente ao serviço de métricas no mesmo nó. Para fazer isso, adicione a linha `internalTrafficPolicy: Local` à definição `kueue-controller-manager-metrics-service`.

   ```
   apiVersion: v1
   kind: Service
   metadata:
     labels:
       ...
     name: kueue-controller-manager-metrics-service
     namespace: kueue-system
   spec:
     ports:
     - name: https
       port: 8443
       protocol: TCP
       targetPort: https
     internalTrafficPolicy: Local   <-- ADD THIS LINE
     selector:
       control-plane: controller-manager
   ```

1. Por fim, o pod `kueue-controller-manager` cria um contêiner `kube-rbac-proxy`. Atualmente, esse contêiner tem um alto nível de detalhamento de registro em log, o que faz com que o token portador do cluster seja registrado em log por esse contêiner quando o extrator de métricas acessar o `kueue-controller-manager-metrics-service`. Recomendamos que você diminua o detalhamento do registro em log. O valor padrão no manifesto distribuído pelo Kueue é 10. Recomendamos alterá-lo para 0.

   ```
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     labels:
       ...
     name: kueue-controller-manager
     namespace: kueue-system
   spec:
     ...
     template:
       ...
       spec:
         containers:
         ...
         - args:
           - --secure-listen-address=0.0.0.0:8443
           - --upstream=http://127.0.0.1:8080/
           - --logtostderr=true
           - --v=0  <-- CHANGE v=10 TO v=0
           image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
           name: kube-rbac-proxy
           ...
   ```

### Habilitar o sinalizador de configuração
<a name="enable-Kueue-metrics-flag"></a>

Para habilitar as métricas do Kueue, você deve habilitar `kueue_container_insights` na configuração adicional do complemento. Você pode fazer isso usando a AWS CLI para configurar o complemento EKS Observability, ou usando o console do Amazon EKS.

Depois de instalar com êxito o complemento EKS Observability com um dos métodos a seguir, você pode visualizar as métricas do cluster do Amazon EKS na guia **Painel** do console do HyperPod.

------
#### [ AWS CLI ]

**Para habilitar as métricas do Kueue usando a AWS CLI**
+ Insira o comando da AWS CLI a seguir para instalar o complemento.

  ```
  aws eks create-addon --cluster-name cluster-name --addon-name amazon-cloudwatch-observability --configuration-values "configuration_json_file"
  ```

  Veja abaixo um exemplo do arquivo JSON com os valores de configuração.

  ```
  {
      "agent": {
          "config": {
              "logs": {
                  "metrics_collected": {
                      "kubernetes": {
                          "kueue_container_insights": true,
                          "enhanced_container_insights": true
                      },
                      "application_signals": { }
                  }
              },
              "traces": {
                  "traces_collected": {
                      "application_signals": { }
                  }
              }
          },
      },
  }
  ```

------
#### [ Amazon EKS console ]

**Para habilitar as métricas do Kueue usando o console do Amazon EKS**

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Selecione o nome do seu cluster.

1. Escolha **Complementos**.

1. Encontre o complemento **Amazon CloudWatch Observability** na lista e instale-o. Ao fazer isso, escolha **Configuração opcional** e inclua os valores de configuração JSON a seguir.

   ```
   {
       "agent": {
           "config": {
               "logs": {
                   "metrics_collected": {
                       "kubernetes": {
                           "kueue_container_insights": true,
                           "enhanced_container_insights": true
                       },
                       "application_signals": { }
                   }
               },
               "traces": {
                   "traces_collected": {
                       "application_signals": { }
                   }
               }
           },
       },
   }
   ```

------

## Anexar arquivos de configuração do coletor do OpenTelemetry
<a name="install-CloudWatch-Observability-EKS-addon-OpenTelemetry"></a>

O agente do CloudWatch é compatível com os arquivos de configuração suplementares do coletor do OpenTelemetry junto com seus próprios arquivos de configuração. Esse recurso permite que você use os recursos do agente do CloudWatch, como o CloudWatch Application Signals ou o Container Insights, por meio da configuração do agente do CloudWatch, e inclua a configuração existente do coletor do OpenTelemetry com um único agente.

Para evitar conflitos de mesclagem com pipelines criados automaticamente pelo agente do CloudWatch, recomendamos que você adicione um sufixo personalizado a cada um dos componentes e pipelines na configuração do coletor do OpenTelemetry. Isso evitará conflitos de atrito e mesclagem.
+ Se estiver usando o complemento de observabilidade do EKS do Amazon CloudWatch

  ```
  --configuration-values file://values.yaml
  ```

  ou

  ```
  --configuration-values '
    agent:
      otelConfig:
        receivers:
          otlp/custom-suffix:
            protocols:
              http: {}
        exporters:
          awscloudwatchlogs/custom-suffix:
            log_group_name: "test-group"
            log_stream_name: "test-stream"
        service:
          pipelines:
            logs/custom-suffix:
              receivers: [otlp/custom-suffix]
              exporters: [awscloudwatchlogs/custom-suffix]
  '
  ```
+ Se estiver usando o chart do Helm

  ```
  --set agent.otelConfig='
    receivers:
      otlp/custom-suffix:
        protocols:
          http: {}
    exporters:
      awscloudwatchlogs/custom-suffix:
        log_group_name: "test-group"
        log_stream_name: "test-stream"
    service:
      pipelines:
        logs/custom-suffix:
          receivers: [otlp/custom-suffix]
          exporters: [awscloudwatchlogs/custom-suffix]
  '
  ```

## Habilitar APM usando o Application Signals para o cluster do Amazon EKS
<a name="Container-Insights-setup-EKS-appsignalsconfiguration"></a>

Por padrão, o monitoramento de performance de aplicações (APM) baseado em OpenTelemetry (OTEL) é habilitado usando o Application Signals ao instalar o complemento CloudWatch Observability para o EKS (V5.0.0 ou acima) ou o chart do Helm. É possível personalizar configurações específicas usando a configuração avançada para o complemento do Amazon EKS ou sobrescrevendo valores no chart do Helm.

**nota**  
Se você usar alguma solução de APM baseada em OpenTelemetry (OTEL), a habilitação do Application Signals afetará a configuração de observabilidade existente. Revise a implementação atual antes de continuar. Para manter a configuração de APM existente depois de atualizar para a V5.0.0 ou posterior, consulte [Optar por não usar o Application Signals](#Opting-out-App-Signals).

**Monitoramento automático do Application Signals**

A versão 5.0.0 do complemento de observabilidade do Amazon EKS do CloudWatch e do chart do Helm introduz uma nova funcionalidade. Agora, é possível habilitar automaticamente o Application Signals para todas as workloads ou para workloads de serviços específicas em seu cluster do EKS por meio da configuração Monitoramento automático. As configurações de `autoMonitor`, apresentadas a seguir, devem ser especificadas na seção `applicationSignals`, que está dentro da seção `manager` da configuração avançada.
+ *monitorAllServices*: uma sinalização booleana para habilitar (“true”) ou desabilitar (“false”) o monitoramento de todas as workloads de serviços pela funcionalidade Monitoramento automático. O valor padrão é verdadeiro. Habilitar essa sinalização garantirá que todas as workloads do Kubernetes (incluindo Deployments, DaemonSets e StatefulSets) presentes no cluster, que estejam associadas a um serviço do Kubernetes, estejam incluídas no escopo para a habilitação automática do Application Signals quando forem iniciadas pela primeira vez (ou reiniciadas, no caso de workloads existentes). O sistema exclui, por padrão, as workloads presentes nos namespaces `kube-system` e `amazon-cloudwatch`.
+ *languages*: uma lista de strings que especifica o conjunto de linguagens com as quais o Application Signals tentará instrumentar automaticamente seus serviços, quando a configuração `monitorAllServices` estiver habilitada. O valor padrão é todas as [linguagens compatíveis](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Sections.html).
+ *restartPods*: uma sinalização booleana que controla se as workloads serão reiniciadas após as alterações de configuração. O padrão é falso. Habilitar essa sinalização como `true` determina se as workloads do Kubernetes que estão incluídas no escopo do Monitoramento automático serão reiniciadas automaticamente com o salvamento das alterações na configuração. Qualquer configuração presente nas workloads do Kubernetes que influencie a reinicialização dos pods, como `updateStrategy`, será considerada. Tenha em mente que o reinício pode causar tempo de inatividade para o serviço.
+ *customSelector*: configurações para selecionar namespaces ou workloads do Kubernetes que são específicos para o Monitoramento automático.
  + *java*: especifica workloads para instrumentação automática com Java
  + *python*: especifica workloads para instrumentação automática com Python
  + *nodejs*: especifica workloads para instrumentação automática com Node.js
  + *dotnet*: especifica workloads para instrumentação automática com .NET

  Para cada uma das linguagens mencionadas acima, os campos apresentados a seguir podem ser configurados.
  + *namespaces*: uma lista de strings que especifica os namespaces a serem selecionados. O valor padrão corresponde a uma lista vazia, representada por [].
  + *deployments*: uma lista de strings que especifica as implantações a serem selecionadas. Especifique usando o formato `namespace/deployment`. O valor padrão corresponde a uma lista vazia, representada por [].
  + *daemonsets*: uma lista de strings que especifica os daemonsets a serem selecionados. Especifique usando o formato `namespace/daemonset`. O valor padrão corresponde a uma lista vazia, representada por [].
  + *statefulsets*: uma lista de strings que especifica os statefulsets a serem selecionados. Especifique usando o formato `namespace/statefulset`. O valor padrão corresponde a uma lista vazia, representada por [].
+ *exclude*: configurações para excluir namespaces ou workloads do Kubernetes que são específicos do Monitoramento automático. A exclusão de uma workload prevalece quando uma workload semelhante está simultaneamente incluída em `monitorAllServices` ou `customSelector`.
  + *java*: especifica workloads que devem ser excluídas da instrumentação automática com Java
  + *python*: especifica workloads que devem ser excluídas da instrumentação automática com Python
  + *nodejs*: especifica workloads que devem ser excluídas da instrumentação automática com Node.js
  + *dotnet*: especifica workloads que devem ser excluídas da instrumentação automática com .NET

  Para cada uma das linguagens mencionadas acima, os campos apresentados a seguir podem ser configurados.
  + *namespaces*: uma lista de strings que especifica os namespaces a serem excluídos. O valor padrão corresponde a uma lista vazia, representada por [].
  + *deployments*: uma lista de strings que especifica as implantações a serem excluídas. Especifique usando o formato `namespace/deployment`. O valor padrão corresponde a uma lista vazia, representada por [].
  + *daemonsets*: uma lista de strings que especifica os daemonsets a serem excluídos. Especifique usando o formato `namespace/daemonset`. O valor padrão corresponde a uma lista vazia, representada por [].
  + *statefulsets*: uma lista de strings que especifica os statefulsets a serem excluídos. Especifique usando o formato `namespace/statefulset`. O valor padrão corresponde a uma lista vazia, representada por [].

Confira, a seguir, um exemplo de configuração que habilita automaticamente o Application Signals para todas as workloads de serviços existentes e novas presentes no cluster.

```
manager:
  applicationSignals:
    autoMonitor:
      monitorAllServices: true
      restartPods: true
```

Confira, a seguir, um exemplo de configuração que habilita automaticamente o Application Signals para qualquer nova workload de serviço que for iniciada e para qualquer workload de serviço existente que seja explicitamente reiniciada no cluster.

```
manager:
  applicationSignals:
    autoMonitor:
      monitorAllServices: true
```

Confira, a seguir, um exemplo de configuração que habilita automaticamente o Application Signals com a linguagem Java para todos os pods existentes e novos correspondentes a uma workload no namespace `pet-warehouse`.

```
manager:
  applicationSignals:
    autoMonitor:
      restartPods: true
      customSelector:
        java:
          namespaces: ["pet-warehouse"]
```

Confira, a seguir, um exemplo de configuração que habilita automaticamente o Application Signals com a linguagem Python para todas as workloads de serviços existentes e novas presentes no cluster, excluindo a implantação `pet-clinic`.

```
manager:
  applicationSignals:
    autoMonitor:
      monitorAllServices: true
      languages: ["python"]
      restartPods: true
      exclude:
        python:
          deployments: ["pet-warehouse/pet-clinic"]
```

Confira, a seguir, um exemplo de configuração que habilita automaticamente o Application Signals com a linguagem Java para todas as workloads de serviços presentes no cluster, exceto aquelas no namespace `python-apps`, e que habilita o Application Signals com a linguagem Python especificamente para a implantação `sample-python-app` no namespace `python-apps`.

```
manager:
  applicationSignals:
    autoMonitor:
      monitorAllServices: true
      languages: ["java"]
      restartPods: true
      customSelector:
        python:
          deployments: ["python-apps/sample-python-app"]
      exclude:
        java:
          namespaces: ["python-apps"]
```

## Solução de problemas do complemento de observabilidade do EKS do Amazon CloudWatch ou do chart do Helm
<a name="Container-Insights-setup-EKS-addon-troubleshoot"></a>

Use as informações apresentadas a seguir para ajudar a solucionar problemas relacionados ao complemento de observabilidade do EKS do Amazon CloudWatch ou ao chart do Helm.

**Topics**
+ [Atualizar e excluir o complemento de observabilidade do EKS do Amazon CloudWatch ou o chart do Helm](#EKS-addon-troubleshoot-update)
+ [Verificar a versão do agente do CloudWatch usado pelo complemento de observabilidade do EKS do Amazon CloudWatch ou pelo chart do Helm](#EKS-addon-troubleshoot-version)
+ [Tratamento de um ConfigurationConflict ao gereciar o complemento ou o chart do Helm](#EKS-addon-troubleshoot-conflict)

### Atualizar e excluir o complemento de observabilidade do EKS do Amazon CloudWatch ou o chart do Helm
<a name="EKS-addon-troubleshoot-update"></a>

Para obter instruções sobre como atualizar ou excluir o complemento Amazon CloudWatch Observability do EKS, consulte [Gerenciar complementos do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/managing-add-ons.html). Use `amazon-cloudwatch-observability` como o nome do complemento. 

Para excluir o chart do Helm em um cluster, insira o comando a seguir.

```
helm delete amazon-cloudwatch-observability -n amazon-cloudwatch --wait
```

### Verificar a versão do agente do CloudWatch usado pelo complemento de observabilidade do EKS do Amazon CloudWatch ou pelo chart do Helm
<a name="EKS-addon-troubleshoot-version"></a>

O complemento de observabilidade do EKS do Amazon CloudWatch ou o chart do Helm instala um recurso personalizado do tipo `AmazonCloudWatchAgent` que controla o comportamento do daemonset do agente do CloudWatch no cluster, incluindo a versão do agente do CloudWatch que está sendo usada. É possível obter uma lista de todos os recursos personalizados do tipo `AmazonCloudWatchAgent`, que estão instalados em seu cluster, ao inserir o seguinte comando:

```
kubectl get amazoncloudwatchagent -A
```

Na saída desse comando, você poderá verificar a versão do agente do CloudWatch. Como alternativa, também é possível descrever o recurso `amazoncloudwatchagent` ou um dos pods do `cloudwatch-agent-*` em execução no cluster para inspecionar a imagem que está sendo usada.

### Tratamento de um ConfigurationConflict ao gereciar o complemento ou o chart do Helm
<a name="EKS-addon-troubleshoot-conflict"></a>

Ao instalar ou atualizar o complemento de observabilidade do EKS do Amazon CloudWatch ou o chart do Helm, se você perceber uma falha causada por recursos existentes, é provável que você já tenha o agente do CloudWatch e os componentes associados, como o ServiceAccount, o ClusterRole e o ClusterRoleBinding, instalados no cluster.

O erro exibido pelo complemento incluirá . `Conflicts found when trying to apply. Will not continue due to resolve conflicts mode`, 

O erro exibido pelo chart do Helm será semelhante a `Error: INSTALLATION FAILED: Unable to continue with install and invalid ownership metadata.`.

Quando o complemento ou o chart do Helm tentar instalar o agente do CloudWatch e os componentes associados, se ele detectar quaisquer alterações no conteúdo, por padrão, apresentará falhas na instalação ou na atualização para evitar a substituição do estado dos recursos no cluster.

Se você estiver tentando realizar a integração do complemento de observabilidade do EKS do Amazon CloudWatch e verificar essa falha, recomendamos excluir uma configuração existente do agente do CloudWatch instalada anteriormente no cluster e, em seguida, instalar o chart do Helm ou o complemento do EKS. Certifique-se de fazer backup de quaisquer personalizações que você possa ter executado na configuração original do agente do CloudWatch, como uma configuração do agente personalizada, e fornecê-las ao complemento ou ao chart do Helm na próxima instalação ou atualização. Se você realizou a instalação do agente do CloudWatch para a integração com o Container Insights, consulte [Exclusão do agente do CloudWatch e do Fluent Bit para o Container Insights](ContainerInsights-delete-agent.md) para obter mais informações.

Como alternativa, o complemento oferece suporte a uma opção de configuração de resolução de conflitos que tem a funcionalidade de especificar `OVERWRITE`. É possível usar essa opção para prosseguir com a instalação ou a atualização do complemento ao substituir os conflitos no cluster. Se você estiver usando o console do Amazon EKS, encontrará o **Método de resolução de conflitos** ao escolher as **Definições de configuração opcionais** na criação ou na atualização do complemento. Caso esteja usando a AWS CLI, você poderá fornecer o comando `--resolve-conflicts OVERWRITE` para criar ou atualizar o complemento. 

## Optar por não usar o Application Signals
<a name="Opting-out-App-Signals"></a>

Ajuste suas preferências de monitoramento de serviços no console do CloudWatch ou com o SDK.

Para versões anteriores à 5.0.0, para desabilitar o monitoramento automático do Application Signals, siga o procedimento abaixo:

**Usando a CLI ou o SDK**

A configuração a seguir pode ser aplicada como uma configuração avançada no complemento EKS ou como uma substituição de valores ao usar o chart do Helm.

```
{
  "manager": {
    "applicationSignals": {
      "autoMonitor": {
        "monitorAllServices": false
      }
    }
  }
}
```

Reinicie os serviços para que alterações entrarem em vigor.

**Utilizar o console**

Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, em **Application Signals (APM)** escolha **Serviços**.

1.  Escolha **Habilitar o Application Signals** para visualizar a página de habilitação.

1. Desmarque a caixa de seleção **Monitoramento automático** de cada serviço que você não desejar monitorar.

1. Reinicie os serviços para que alterações entrarem em vigor.

# Configure o agente do CloudWatch com o Linux com segurança aprimorada (SELinux)
<a name="CloudWatch-Agent-SELinux"></a>

Se seu sistema tiver o Linux com segurança aprimorada (SELinux) habilitado, você deverá aplicar as políticas de segurança apropriadas para garantir que o agente do CloudWatch seja executado em um domínio confinado. 

## Pré-requisitos
<a name="CloudWatch-Agent-SELinux-prerequisites"></a>

Antes de configurar o SELinux para o agente, verifique os seguintes **pré-requisitos**:

**Para concluir os pré-requisitos para usar o agente do CloudWatch com o SELinux**

1. Caso você ainda não tenha feito isso, instale os seguintes pacotes de desenvolvimento de políticas do SELinux:

   ```
   sudo yum update
   sudo yum install -y selinux-policy-devel policycoreutils-devel rpm-build git
   ```

1. Execute o seguinte comando para verificar o status do SELinux do sistema:

   ```
   sestatus
   ```

   Resultado do exemplo:

   ```
   SELinux status:                 enabled
   SELinuxfs mount:                /sys/fs/selinux
   SELinux root directory:         /etc/selinux
   Loaded policy name:             targeted
   Current mode:                   permissive
   Mode from config file:          permissive
   Policy MLS status:              enabled
   Policy deny_unknown status:     allowed
   Memory protection checking:     actual (secure)
   Max kernel policy version:      33
   ```

   Se você descobrir que o SELinux está desabilitado no momento, faça o seguinte:

   1. Abra o arquivo do SELinux ao inserir o seguinte comando:

      ```
      sudo vi /etc/selinux/config
      ```

   1. Defina o parâmetro `SELINUX` como `permissive` ou `enforcing`. Por exemplo:

      ```
      SELINUX=enforcing
      ```

   1. Salve o arquivo e reinicie o sistema para aplicar as alterações.

      ```
      sudo reboot
      ```

1. Certifique-se de que o agente do CloudWatch esteja em execução como um serviço `systemd`. Isso é necessário para uso em um domínio SELinux confinado.

   ```
   sudo systemctl status amazon-cloudwatch-agent
   ```

   Se o agente estiver configurado corretamente, a saída deverá indicar que ele está `active (running)` e `enabled` na inicialização.

## Configurar o SELinux para o agente
<a name="CloudWatch-Agent-SELinux-configure"></a>

Depois que concluir os pré-requisitos, você poderá configurar o SELinux.

**Para configurar o SELinux para o agente do CloudWatch**

1. Clone a política do SELinux para o agente do CloudWatch ao inserir o seguinte comando:

   ```
   git clone https://github.com/aws/amazon-cloudwatch-agent-selinux.git
   ```

1. Navegue até o repositório clonado e, em seguida, atualize as permissões do script ao inserir os seguintes comandos:

   ```
   cd amazon-cloudwatch-agent-selinux  
   chmod +x amazon_cloudwatch_agent.sh
   ```

1. Use `sudo` para executar o script de instalação da política do SELinux ao inserir o comando a seguir. Durante a execução, o script solicita que você insira `y` ou `n` para permitir a reinicialização automática. Essa reinicialização garante que o agente faça a transição para o domínio SELinux correto.

   ```
   sudo ./amazon_cloudwatch_agent.sh
   ```

1. Se o agente do CloudWatch ainda não tiver sido reiniciado, reinicie-o para garantir que ele faça a transição para o domínio SELinux correto:

   ```
   sudo systemctl restart amazon-cloudwatch-agent
   ```

1. Verifique se o agente do CloudWatch está em execução no domínio confinado ao inserir o seguinte comando:

   ```
   ps -efZ | grep amazon-cloudwatch-agent
   ```

   Se o agente estiver confinado corretamente, a saída deverá indicar um domínio SELinux confinado em vez de `unconfined_service_t`.

   A seguir, é mostrado um exemplo de saída quando o agente está confinado corretamente.

   ```
   system_u:system_r:confined_t:s0 root 1234 1 0 12:00 ? 00:00:10 /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent
   ```

Depois que o SELinux for configurado, você poderá continuar com a configuração do agente para coletar métricas, logs e rastreamentos. Para obter mais informações, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

# Criar o arquivo de configuração do atendente do CloudWatch
<a name="create-cloudwatch-agent-configuration-file"></a>

Antes de executar o agente do CloudWatch em qualquer servidor, crie um ou mais arquivos de configuração do atendente do CloudWatch. 

O arquivo de configuração do agente é um arquivo JSON que especifica as métricas, logs e rastreamentos que o agente deverá coletar, inclusive métricas personalizadas. Você pode criá-lo usando o assistente ou criando-o do zero. Você também pode usar o assistente para criar inicialmente o arquivo de configuração e, depois, modificá-lo manualmente. Se você criar ou modificar o arquivo manualmente, o processo será mais complexo, mas você terá maior controle sobre as métricas coletadas e poderá especificar métricas não disponíveis pelo assistente.

Sempre que você alterar o atendente do arquivo de configuração do atendente, deverá reiniciar o atendente para que as alterações entrem em vigor. Para reiniciar o atendente, siga as instruções em [(Opcional) Modificar a configuração comum e o perfil nomeado para o atendente do CloudWatch](installing-cloudwatch-agent-ssm.md#CloudWatch-Agent-profile-instance-fleet).

Depois de criar um arquivo de configuração, você poderá salvá-lo manualmente como um arquivo JSON e, depois, usar esse arquivo ao instalar o atendente em seus servidores. Se prererir, você tabém pode armazená-lo no Systems Manager Parameter Store se pretende usar o Systems Manager ao instalar o atendente em servidores.

O agente do CloudWatch aceita o uso de vários arquivos de configuração. Para obter mais informações, consulte [Criação de vários arquivos de configuração para o agente do CloudWatch](#CloudWatch-Agent-multiple-config-files).

Métricas, logs e rastreamentos coletados pelo agente do CloudWatch incorrem em cobranças. Para obter mais informações sobre a definição de preço, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [Criar o arquivo de configuração do atendente do CloudWatch com o assistente](create-cloudwatch-agent-configuration-file-wizard.md)
+ [Criação de vários arquivos de configuração para o agente do CloudWatch](#CloudWatch-Agent-multiple-config-files)
+ [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md)

# Criar o arquivo de configuração do atendente do CloudWatch com o assistente
<a name="create-cloudwatch-agent-configuration-file-wizard"></a>

 O assistente de arquivo de configuração do agente, `amazon-cloudwatch-agent-config-wizard`, faz uma série de perguntas para ajudá-lo a configurar o agente do CloudWatch para suas necessidades. Esta seção descreve as credenciais necessárias para o arquivo de configuração. A seção descreve como executar o assistente de configuração do agente do CloudWatch. Ela também descreve as métricas que são predefinidas no assistente. 

## Credenciais necessárias
<a name="create-cloudwatch-agent-wizard-credentials"></a>

O assistente poderá detectar automaticamente as credenciais e a região da AWS a serem usadas se você tiver as credenciais e os arquivos de configuração da AWS antes de iniciar o assistente. Para obter mais informações sobre esses arquivos, consulte [ Arquivos de configuração e credenciais](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html) no *Manual do usuário do AWS Systems Manager*.

No arquivo de credenciais da AWS, o assistente verifica a existência de credenciais padrão e também procura uma seção `AmazonCloudWatchAgent` como a seguinte:

```
[AmazonCloudWatchAgent]
aws_access_key_id = my_access_key
aws_secret_access_key = my_secret_key
```

O assistente exibe as credenciais padrão, as credenciais do `AmazonCloudWatchAgent` e uma opção `Others`. Você pode selecionar as credenciais a serem usadas. Se você escolher `Others`, insira as credenciais.

Para *my\$1access\$1key* e *my\$1secret\$1key*, use as chaves do usuário do IAM que têm permissões para gravar no Systems Manager Parameter Store. 

No arquivo de configuração da AWS, especifique a região para a qual o atendente enviará métricas, se ela for diferente da seção `[default]`. O padrão é publicar as métricas na região na qual a instância do Amazon EC2 está localizada. Se as métricas precisarem ser publicadas em uma região diferente, especifique-a aqui. No exemplo a seguir, as métricas são publicadas na região `us-west-1`.

```
[AmazonCloudWatchAgent]
region = us-west-1
```

## Executar o assistente de configuração do atendente do CloudWatch
<a name="cloudwatch-agent-running-wizard"></a>

**Para criar o arquivo de configuração do atendente do CloudWatch**

1. Inicie o assistente de configuração do atendente do CloudWatch inserindo o seguinte:

   ```
   sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
   ```

   Em um servidor com o Windows Server, execute os comandos a seguir para iniciar o agente:

   ```
   cd "C:\Program Files\Amazon\AmazonCloudWatchAgent"
   ```

   ```
   .\amazon-cloudwatch-agent-config-wizard.exe
   ```

1. Responda às perguntas para personalizar o arquivo de configuração para o servidor.

1. Se você estiver armazenando o arquivo de configuração localmente, o arquivo de configuração `config.json` será armazenado em `/opt/aws/amazon-cloudwatch-agent/bin/` em servidores Linux e armazenado em `C:\Program Files\Amazon\AmazonCloudWatchAgent` no Windows Server. Depois, você pode copiar esse arquivo em outros servidores em que você deseja instalar o atendente.

   Se você for usar o Systems Manager para instalar e configurar o atendente, responda **Yes** (Sim) quando solicitado para armazenar o arquivo no Systems Manager Parameter Store. Você também pode optar por armazenar o arquivo no Parameter Store mesmo que não esteja usando o SSM Agent para instalar o atendente do CloudWatch. Para poder armazenar o arquivo no Parameter Store, você deve usar uma função do IAM com permissões suficientes. 

## Conjuntos de métricas predefinidas do atendente CloudWatch
<a name="cloudwatch-agent-preset-metrics"></a>

O assistente está configurado com conjuntos de métricas predefinidos, com diferentes níveis de detalhes. Esses conjuntos de métricas são mostrados nas tabelas a seguir. Para ter mais informações sobre essas métricas, consulte [Métricas coletadas pelo atendente do CloudWatch](metrics-collected-by-CloudWatch-agent.md). 

**nota**  
O Parameter Store oferece suporte a parâmetros nos níveis padrão e avançado. Esses níveis de parâmetro não estão relacionados aos níveis Básico, Padrão e Avançado de detalhes da métrica descritos nessas tabelas.

**Instâncias do Amazon EC2 que executam o Linux**


| Nível de detalhes | Métricas incluídas | 
| --- | --- | 
|  **Básico** |  **Mem:** mem\$1used\$1percent **Disk:** disk\$1used\$1percent As métricas de `disk`, como, `disk_used_percent`, têm uma dimensão para `Partition`, o que significa que o número de métricas personalizadas geradas depende do número de partições associadas à instância. O número de partições de disco que você tem depende da AMI usada e do número de volumes do Amazon EBS que estão sendo anexados ao servidor.  | 
|  **Standard** |  **CPU:** `cpu_usage_idle`, `cpu_usage_iowait`, `cpu_usage_user`, `cpu_usage_system` **Disco:** `disk_used_percent`, `disk_inodes_free` **Diskio:** `diskio_io_time` **Mem:** `mem_used_percent` **Swap:** `swap_used_percent`  | 
|  **Advanced (Avançado** |  **CPU:** `cpu_usage_idle`, `cpu_usage_iowait`, `cpu_usage_user`, `cpu_usage_system` **Disco:** `disk_used_percent`, `disk_inodes_free` **Diskio:** `diskio_io_time`, `diskio_write_bytes`, `diskio_read_bytes`, `diskio_writes`, `diskio_reads` **Mem:** `mem_used_percent` **Netstat:** `netstat_tcp_established`, `netstat_tcp_time_wait` **Swap:** `swap_used_percent`  | 

**Servidores on-premises que executam o Linux**


| Nível de detalhes | Métricas incluídas | 
| --- | --- | 
|  **Básico** |  **Disco:** `disk_used_percent` **Diskio:** `diskio_write_bytes`, `diskio_read_bytes`, `diskio_writes`, `diskio_reads` **Mem:** `mem_used_percent` **Rede:** `net_bytes_sent`, `net_bytes_recv`, `net_packets_sent`, `net_packets_recv` **Swap:** `swap_used_percent`  | 
|  **Standard** |  **CPU:** `cpu_usage_idle`, `cpu_usage_iowait` **Disco:** `disk_used_percent`, `disk_inodes_free` **Diskio:** `diskio_io_time`, `diskio_write_bytes`, `diskio_read_bytes`, `diskio_writes`, `diskio_reads` **Mem:** `mem_used_percent` **Rede:** `net_bytes_sent`, `net_bytes_recv`, `net_packets_sent`, `net_packets_recv` **Swap:** `swap_used_percent`  | 
|  **Advanced (Avançado** |  **CPU:** `cpu_usage_guest`, `cpu_usage_idle`, `cpu_usage_iowait`, `cpu_usage_steal`, `cpu_usage_user`, `cpu_usage_system` **Disco:** `disk_used_percent`, `disk_inodes_free` **Diskio:** `diskio_io_time`, `diskio_write_bytes`, `diskio_read_bytes`, `diskio_writes`, `diskio_reads`  **Mem:** `mem_used_percent`  **Rede:** `net_bytes_sent`, `net_bytes_recv`, `net_packets_sent`, `net_packets_recv` **Netstat:** `netstat_tcp_established`, `netstat_tcp_time_wait` **Swap:** `swap_used_percent`  | 

**Instâncias do Amazon EC2 que executam o Windows Server**

**nota**  
Os nomes das métricas listados nesta tabela mostram como a métrica aparece quando visualizada no console. O nome real da métrica pode não incluir a primeira palavra. Por exemplo, o nome real da métrica `LogicalDisk % Free Space` é apenas `% Free Space`.


| Nível de detalhes | Métricas incluídas | 
| --- | --- | 
|  **Básico** |  **Memory" (Memória:** `Memory % Committed Bytes In Use` **LogicalDisk:** `LogicalDisk % Free Space`  | 
|  **Standard** |  **Memory" (Memória:** `Memory % Committed Bytes In Use` **Paginação:** `Paging File % Usage` **Processador:** `Processor % Idle Time`, `Processor % Interrupt Time`, `Processor % User Time` **PhysicalDisk:** `PhysicalDisk % Disk Time` **LogicalDisk:** `LogicalDisk % Free Space`  | 
|  **Advanced (Avançado** |  **Memory" (Memória:** `Memory % Committed Bytes In Use` **Paginação:** `Paging File % Usage` **Processador:** `Processor % Idle Time`, `Processor % Interrupt Time`, `Processor % User Time` **LogicalDisk:** `LogicalDisk % Free Space` **PhysicalDisk:** `PhysicalDisk % Disk Time`, `PhysicalDisk Disk Write Bytes/sec`, `PhysicalDisk Disk Read Bytes/sec`, `PhysicalDisk Disk Writes/sec`, `PhysicalDisk Disk Reads/sec` **TCP:** `TCPv4 Connections Established`, `TCPv6 Connections Established`  | 

**Servidor on-premises que executa o Windows Server**

**nota**  
Os nomes das métricas listados nesta tabela mostram como a métrica aparece quando visualizada no console. O nome real da métrica pode não incluir a primeira palavra. Por exemplo, o nome real da métrica `LogicalDisk % Free Space` é apenas `% Free Space`.


| Nível de detalhes | Métricas incluídas | 
| --- | --- | 
|  **Básico** |  **Paginação: **`Paging File % Usage` **Processador:** `Processor % Processor Time` **LogicalDisk:**`LogicalDisk % Free Space`  **PhysicalDisk:** `PhysicalDisk Disk Write Bytes/sec`, `PhysicalDisk Disk Read Bytes/sec`, `PhysicalDisk Disk Writes/sec`, `PhysicalDisk Disk Reads/sec` **Memory" (Memória:** `Memory % Committed Bytes In Use` **Interface de rede:** `Network Interface Bytes Sent/sec`, `Network Interface Bytes Received/sec`, `Network Interface Packets Sent/sec`, `Network Interface Packets Received/sec`  | 
|  **Standard** |  **Paginação:** `Paging File % Usage` **Processador:** `Processor % Processor Time`, `Processor % Idle Time`, `Processor % Interrupt Time` **LogicalDisk:** `LogicalDisk % Free Space` **PhysicalDisk:** `PhysicalDisk % Disk Time`, `PhysicalDisk Disk Write Bytes/sec`, `PhysicalDisk Disk Read Bytes/sec`, `PhysicalDisk Disk Writes/sec`, `PhysicalDisk Disk Reads/sec` **Memory" (Memória:** `Memory % Committed Bytes In Use` **Interface de rede:** `Network Interface Bytes Sent/sec`, `Network Interface Bytes Received/sec`, `Network Interface Packets Sent/sec`, `Network Interface Packets Received/sec`  | 
|  **Advanced (Avançado** |  **Paginação:**`Paging File % Usage` **Processador:** `Processor % Processor Time`, `Processor % Idle Time`, `Processor % Interrupt Time`, `Processor % User Time` **LogicalDisk:** `LogicalDisk % Free Space` **PhysicalDisk:** `PhysicalDisk % Disk Time`, `PhysicalDisk Disk Write Bytes/sec`, `PhysicalDisk Disk Read Bytes/sec`, `PhysicalDisk Disk Writes/sec`, `PhysicalDisk Disk Reads/sec` **Memory" (Memória:** `Memory % Committed Bytes In Use` **Interface de rede:** `Network Interface Bytes Sent/sec`, `Network Interface Bytes Received/sec`, `Network Interface Packets Sent/sec`, `Network Interface Packets Received/sec` **TCP:** `TCPv4 Connections Established`, `TCPv6 Connections Established`  | 

# Exemplos de arquivos de configuração
<a name="create-cloudwatch-agent-configuration-file-examples"></a>

**Configuração básica de métricas do sistema** 

```
{
  "agent": {
    "metrics_collection_interval": 60,
    "region": "us-east-1"
  },
  "metrics": {
    "namespace": "MySystem",
    "metrics_collected": {
      "cpu": {
        "resources": ["*"],
        "measurement": ["usage_active", "usage_system", "usage_user"]
      },
      "mem": {
        "measurement": ["used_percent"]
      },
      "disk": {
        "resources": ["/"],
        "measurement": ["used_percent"]
      }
    },
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    }
  }
}
```

**Configuração de monitoramento do servidor web ** 

```
{
  "agent": {
    "metrics_collection_interval": 60,
    "region": "us-east-1"
  },
  "metrics": {
    "namespace": "WebServer",
    "metrics_collected": {
      "cpu": {
        "resources": ["*"],
        "measurement": ["usage_active"]
      },
      "mem": {
        "measurement": ["used_percent"]
      },
      "net": {
        "resources": ["eth0"],
        "measurement": ["bytes_sent", "bytes_recv"]
      }
    }
  },
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "/var/log/apache2/access.log",
            "log_group_name": "apache-access-logs",
            "log_stream_name": "{instance_id}-access"
          },
          {
            "file_path": "/var/log/apache2/error.log",
            "log_group_name": "apache-error-logs",
            "log_stream_name": "{instance_id}-error"
          }
        ]
      }
    }
  }
}
```

**Configuração do servidor de banco de dados **

```
{
  "agent": {
    "metrics_collection_interval": 30,
    "region": "us-east-1"
  },
  "metrics": {
    "namespace": "DatabaseServer",
    "metrics_collected": {
      "cpu": {
        "resources": ["*"],
        "measurement": ["usage_active", "usage_iowait"]
      },
      "mem": {
        "measurement": ["used_percent", "available_percent"]
      },
      "disk": {
        "resources": ["/", "/data"],
        "measurement": ["used_percent", "inodes_free"]
      },
      "diskio": {
        "resources": ["*"],
        "measurement": ["read_bytes", "write_bytes", "io_time"]
      }
    },
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}",
      "InstanceType": "${aws:InstanceType}",
      "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
    }
  }
}
```

## Criação de vários arquivos de configuração para o agente do CloudWatch
<a name="CloudWatch-Agent-multiple-config-files"></a>

É possível configurar o agente do CloudWatch para usar vários arquivos de configuração em servidores Linux e Windows. Por exemplo, é possível usar um arquivo de configuração comum que coleta um conjunto de métricas, logs e rastreamentos que você sempre deseja coletar de todos os servidores em sua infraestrutura. Depois, você pode usar arquivos de configuração adicionais que coletam métricas de determinadas aplicações ou em certas situações.

Para configurar isso, primeiro crie os arquivos de configuração que você deseja usar. Todos os arquivos de configuração que serão usados em conjunto no mesmo servidor devem ter diferentes nomes de arquivos. É possível armazenar os arquivos de configuração em servidores ou no Parameter Store.

Inicie o atendente do CloudWatch usando a opção `fetch-config` e especifique o primeiro arquivo de configuração. Para anexar o segundo arquivo de configuração para o atendente em execução, use o mesmo comando, mas com a opção `append-config`. Todas as métricas, logs e rastreamentos listados no arquivo de configuração serão coletados. No exemplo a seguir, os comandos ilustram esse cenário usando armazenamentos de configurações como arquivos. A primeira linha inicia o atendente usando o arquivo de configuração de `infrastructure.json`, e a segunda linha acrescenta o arquivo de configuração `app.json`.

Use os comandos a seguir para 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
```

Use os comandos a seguir para 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"
```

No exemplo a seguir, arquivos de configuração ilustram um uso para esse recurso. O primeiro arquivo de configuração é usado para todos os servidores na infraestrutura, e o segundo recolhe apenas logs de um determinada aplicação e é anexado a servidores que executam essa aplicação.

**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"
                    }
                ]
            }
        }
    }
}
```

Todos os arquivos de configuração anexados à configuração devem ter nomes de arquivos que sejam diferentes entre si e do arquivo de configuração inicial. Se você usar `append-config` com um arquivo de configuração com o mesmo nome do arquivo que um arquivo de configuração que o atendente já está usando, o comando append substituirá as informações do primeiro arquivo de configuração, em vez de anexar a ele. Isso é verdade mesmo se dois arquivos de configuração com o mesmo nome de arquivo estejam em diferentes caminhos de arquivo.

O exemplo anterior mostra o uso de dois arquivos de configuração, mas não há um limite para o número de arquivos de configuração que você pode anexar à configuração do atendente. Também é possível combinar o uso de arquivos de configuração localizados em servidores e configurações localizadas no Parameter Store.

# Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch
<a name="CloudWatch-Agent-Configuration-File-Details"></a>

 O arquivo de configuração do agente do CloudWatch é um arquivo no formato JSON, que contém quatro seções: `agent`, `metrics`, `logs` e `traces`. 
+ A seção `agent` inclui campos de configuração geral do atendente. 
+ A seção `metrics` especifica as métricas personalizadas para coleta e publicação do CloudWatch. Se estiver usando o atendente apenas para coletar logs, você poderá omitir a seção `metrics` do arquivo.
+ A seção `logs` especifica quais arquivos de log sewrão publicados no CloudWatch Logs. Isso pode incluir eventos do Log de Eventos do Windows se o servidor executar o Windows Server.
+ A seção `traces` especifica as fontes de rastreamentos que são coletados e enviados para AWS X-Ray. 

 Esta seção explica a estrutura e os campos do arquivo de configuração do agente do CloudWatch. É possível visualizar a definição do esquema para este arquivo de configuração. A definição do esquema está localizada em `installation-directory/doc/amazon-cloudwatch-agent-schema.json` em servidores do Linux e em `installation-directory/amazon-cloudwatch-agent-schema.json` em servidores que executam o Windows Server. 

Se criar ou editar o arquivo de configuração do atendente do manualmente, você poderá atribuir qualquer nome a ele. Para simplificar a solução de problemas, recomendamos que você nomeie-o `/opt/aws/amazon-cloudwatch-agent/etc/cloudwatch-agent.json` em um servidor Linux e `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json` nos servidores que executam o Windows Server. Depois de criar o arquivo, copie-o em outros servidores em que você deseja instalar o atendente.

Quando o agente é iniciado, ele cria uma cópia de cada arquivo de configuração no diretório `/opt/aws/amazon-cloudwatch/etc/amazon-cloudwatch-agent.d`, com o nome do arquivo prefixado com `file_` (para fontes de arquivo locais) ou `ssm_` (para fontes de armazenamento de parâmetros do Systems Manager) para indicar a origem da configuração.

**nota**  
Métricas, logs e rastreamentos coletados pelo agente do CloudWatch incorrem em cobranças. Para obter mais informações sobre a definição de preço, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

## Arquivo de configuração do atendente do CloudWatch: seção do atendente
<a name="CloudWatch-Agent-Configuration-File-Agentsection"></a>

A seção `agent` pode incluir os seguintes campos. O assistente não cria uma seção `agent`. Em vez disso, o assistente a omite e usa os valores padrão para todos os campos nesta seção.
+ `metrics_collection_interval`: opcional. Especifica a frequência com que todas as métricas especificadas nesse arquivo de configuração serão coletadas. Você pode substituir esse valor por tipos específicos de métricas.

  Esse valor é especificado em segundos. Por exemplo, a especificação de 10 faz com que as métricas sejam coletadas a cada 10 segundos. Uma configuração de 300 especifica que as métricas sejam coletadas a cada 5 minutos.

  Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações sobre as métricas de alta resolução, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 

  O valor padrão é 60. 
+ `region`: especifica a região a ser usada para o endpoint do CloudWatch quando uma instância do Amazon EC2 está sendo monitorada. As métricas coletadas são enviadas para essa região, como `us-west-1`. Se você omitir esse campo, o atendente enviará métricas para a região onde a instância do Amazon EC2 está localizada.

  Se você estiver monitorando um servidor on-premises, esse campo não será usado, e o atendente lerá a região do perfil `AmazonCloudWatchAgent` do arquivo de configuração da AWS.
+ `credentials`: especifica um perfil do IAM a ser usado ao enviar métricas, logs e rastreamentos a uma conta da AWS diferente. Se especificado, esse campo contém um parâmetro, `role_arn`.
  + `role_arn`: especifica o nome do recurso da Amazon (ARN) de um perfil do IAM a ser usado para autenticação ao enviar métricas, logs e rastreamentos a uma conta da AWS diferente. Para obter mais informações, consulte [Envio de métricas, logs e rastreamentos a uma conta diferente](CloudWatch-Agent-common-scenarios.md#CloudWatch-Agent-send-to-different-AWS-account).
+ `debug`: opcional. Especifica a execução do atendente do CloudWatch com mensagens do log de depuração. O valor padrão é `false`. 
+ `aws_sdk_log_level`: opcional. Com suporte somente para a versão 1.247350.0 e para as versões posteriores do agente do CloudWatch.

  Você pode especificar esse campo para que o atendente realizar o registro em log para endpoints do AWS SDK. O valor desse campo pode incluir uma ou mais das opções a seguir. Separe várias opções com o caractere `|`.
  + `LogDebug`
  + `LogDebugWithSigning`
  + `LogDebugWithHTTPBody`
  + `LogDebugRequestRetries`
  + `LogDebugWithEventStreamBody`

  Para mais informações sobre essas opções, consulte [LogLevelType](https://docs.aws.amazon.com/sdk-for-go/api/aws/#LogLevelType).
+ `logfile`: especifica o local onde o atendente do CloudWatch grava mensagens de log. Se você especificar uma string vazia, o log irá para stderr. Se você não especificar essa opção, os locais padrão são os seguintes:
  + Linux: `/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log`
  + Windows Server: `c:\\ProgramData\\Amazon\\CloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log` 

  O atendente do CloudWatch alterna automaticamente o arquivo de log criado. Um arquivo de log é alternado quando ele atinge 100 MB de tamanho. O atendente mantém os arquivos de log alternados por até sete dias, e ele mantém até cinco arquivos de log de backup que foram alternados. Os arquivos de log de backup têm um timestamp anexado ao seu nome de arquivo. O timestamp mostra a data e a hora em que o arquivo foi alternado: por exemplo, `amazon-cloudwatch-agent-2018-06-08T21-01-50.247.log.gz`.
+ `omit_hostname`: opcional. Por padrão, o nome do host é publicado como uma dimensão de métricas coletadas pelo atendente, a menos que você esteja usando o campo `append_dimensions` da seção `metrics`. Defina `omit_hostname ` como `true` para impedir que o nome do host seja publicado como uma dimensão, mesmo se você não estiver usando `append_dimensions`. O valor padrão é `false`. 
+ `run_as_user`: opcional. Especifica um usuário a ser usado para executar o atendente do CloudWatch. Se você não especificar esse parâmetro, o usuário raiz será usado. Essa opção é válida apenas em servidores Linux.

  Se você especificar essa opção, o usuário deverá existir antes que o atendente do CloudWatch seja iniciado. Para obter mais informações, consulte [Executar o atendente do CloudWatch como um usuário diferente](CloudWatch-Agent-common-scenarios.md#CloudWatch-Agent-run-as-user).
+ `user_agent`: opcional. Especifica a string `user-agent` que é usada pelo atendente do CloudWatch quando ele faz chamadas de API ao backend do CloudWatch. O valor padrão é uma string que consiste na versão do atendente, a versão da linguagem de programação Go que foi usada para compilar o atendente, o sistema operacional e a arquitetura de runtime, o tempo de compilação e os plugins habilitados.
+ `usage_data`: opcional. Por padrão, o agente do CloudWatch envia dados de integridade e performande sobre si mesmo para o CloudWatch sempre que publica métricas ou logs no CloudWatch. Esses dados não geram custos para você. É possível impedir que o agente envie esses dados especificando `false` em `usage_data`. Se você omitir esse parâmetro, o padrão `true` será usado e o agente enviará dados de integridade e performance.

  Se você definir esse valor como `false`, deverá interromper e reiniciar o agente para que ele tenha efeito.
+ `service.name`: opcional. Especifica o nome do serviço a ser usado para preencher a entidade para [encontrar a telemetria relacionada](ExploreRelated.md).
+ `deployment.environment`: opcional. Especifica o nome do ambiente a ser usado para preencher a entidade para [encontrar a telemetria relacionada](ExploreRelated.md).
+ `use_dualstack_endpoint`: opcional. Se for `true`, o agente do CloudWatch usará [endpoints de pilha dupla para](https://docs.aws.amazon.com/general/latest/gr/rande.html#dual-stack-endpoints) todas as chamadas de API.

A seguir, temos um exemplo de uma seção `agent`.

```
"agent": {
   "metrics_collection_interval": 60,
   "region": "us-west-1",
   "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log",
   "debug": false,
   "run_as_user": "cwagent"
  }
```

## Arquivo de configuração do atendente do CloudWatch: seção de métricas
<a name="CloudWatch-Agent-Configuration-File-Metricssection"></a>

### Campos comuns ao Linux e Windows
<a name="CloudWatch-Agent-Common"></a>

Em servidores que executam o Linux ou o Windows Server, a seção `metrics` inclui os seguintes campos:
+ `namespace`: opcional. O namespace a ser usado para as métricas coletadas pelo atendente. O valor padrão é `CWAgent`. O tamanho máximo é de 255 caracteres. Este é um exemplo:

  ```
  {
    "metrics": {
      "namespace": "Development/Product1Metrics",
     ......
     },
  }
  ```
+ `append_dimensions`: opcional. Adiciona dimensões de métrica do Amazon EC2 a todas as métricas coletadas pelo atendente. Isso também faz com que o atendente não publique o nome do host como dimensão.

  Os únicos pares de chave-valor compatíveis com `append_dimensions` são exibidos na lista a seguir. Todos os outros pares de chave-valor são ignorados. O agente oferece suporte a esses pares de chave-valor exatamente da forma como são mostrados na lista a seguir. Não é possível alterar os valores de chaves para publicar nomes de dimensões diferentes para eles.
  + `"ImageId":"${aws:ImageId}"` define o ID da AMI da instância como o valor da dimensão `ImageId`.
  + `"InstanceId":"${aws:InstanceId}"` define o ID da instância como o valor da dimensão `InstanceId`.
  + `"InstanceType":"${aws:InstanceType}"` define o tipo de instância da instância como o valor da dimensão `InstanceType`.
  + `"AutoScalingGroupName":"${aws:AutoScalingGroupName}"` define o nome do grupo do Auto Scaling da instância como o valor da dimensão `AutoScalingGroupName`.

  Se você quiser anexar dimensões a métricas com pares de chave/valor arbitrários, use o parâmetro `append_dimensions` no campo para esse tipo específico de métrica.

  Se você especificar um valor que depende dos metadados do Amazon EC2 e usar proxies, deverá verificar se o servidor pode acessar o endpoint do Amazon EC2. Para obter mais informações sobre esses endpoints, consulte [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region) no *Referência geral da Amazon Web Services*.
+ `aggregation_dimensions`: opcional. Especifica as dimensões nas quais as métricas coletadas serão agregadas. Por exemplo, se você acumular métricas na dimensão `AutoScalingGroupName`, as métricas de todas as instâncias em cada grupo do Auto Scaling serão agregadas e poderão ser visualizadas como um todo.

  Você pode acumular métricas em dimensões únicas ou múltiplas. Por exemplo, se você especificar `[["InstanceId"], ["InstanceType"], ["InstanceId","InstanceType"]]`, agregará métricas para ID de instância individualmente, tipo de instância individualmente e para a combinação das duas dimensões.

  Você também pode especificar `[]` para acumular todas as métricas em uma única coleção, desconsiderando todas as dimensões.
+ `endpoint_override`: especifica um endpoint FIPS ou um link privado a ser usado como o endpoint onde o atendente envia métricas. Especificá-lo e definir um link privado permite enviar as métricas para um endpoint da Amazon VPC. Para obter mais informações, consulte [O que é a Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)? 

  O valor de `endpoint_override` deve ser uma string que seja um URL.

  Por exemplo, a parte a seguir da seção de métricas do arquivo de configuração define o atendente para usar um VPC endpoint ao enviar métricas. 

  ```
  {
    "metrics": {
      "endpoint_override": "vpce-XXXXXXXXXXXXXXXXXXXXXXXXX.monitoring.us-east-1.vpce.amazonaws.com",
     ......
     },
  }
  ```
+ `metrics_collected`: obrigatório. Especifica quais métricas serão coletadas, incluindo métricas personalizadas coletadas por meio do `StatsD` ou `collectd`. Essa seção inclui várias subseções. 

  O conteúdo da seção `metrics_collected` varia dependendo do arquivo de configuração ser para um servidor que executa o Linux ou o Windows Server.
+ `metrics_destinations`: opcional. Especifica um ou mais destinos para todas as métricas definidas em `metrics_collected`. Se especificado aqui, substitui o destino padrão do `cloudwatch`. 
  + `cloudwatch`: Amazon CloudWatch.
  + `amp`: Amazon Managed Service for Prometheus.
    + `workspace_id`: o ID correspondente ao espaço de trabalho do Amazon Managed Service for Prometheus.

  ```
  {
    "metrics": {
      "metrics_destinations": {
        "cloudwatch": {},
        "amp": {
          "workspace_id": "ws-abcd1234-ef56-7890-ab12-example"
        }
      }
    }
  }
  ```
+ `force_flush_interval`: especifica em segundos a quantidade máxima de tempo em que as métricas permanecem no buffer da memória antes de serem enviadas ao servidor. Qualquer que seja o valor configurado, se o volume de métricas no buffer atingir 1 MB ou 1000 métricas diferentes, as métricas serão enviadas imediatamente para o servidor.

  O valor padrão é 60.
+ `credentials`: especifica uma função do IAM a ser usada ao enviar métricas a uma conta diferente. Se especificado, esse campo contém um parâmetro, `role_arn`.
  + `role_arn`: especifica o ARN de uma função do IAM a ser usada para autenticação ao enviar métricas a uma conta diferente. Para obter mais informações, consulte [Envio de métricas, logs e rastreamentos a uma conta diferente](CloudWatch-Agent-common-scenarios.md#CloudWatch-Agent-send-to-different-AWS-account). Se especificado aqui, esse valor substituirá o `role_arn` especificado na seção `agent` do arquivo de configuração, se houver.
  + `service.name`: opcional. Especifica o nome do serviço a ser usado para preencher a entidade para [encontrar a telemetria relacionada](ExploreRelated.md).
  + `deployment.environment`: opcional. Especifica o nome do ambiente a ser usado para preencher a entidade para [encontrar a telemetria relacionada](ExploreRelated.md).

### Seção Linux
<a name="CloudWatch-Agent-Linux-section"></a>

Em servidores que executem o Linux, a seção `metrics_collected` do arquivo de configuração também pode conter os campos a seguir.

Muitos desses campos podem incluir seções `measurement` que listam as métricas que você deseja coletar para esse recurso. Essas seções `measurement` podem especificar o nome completo da métrica, como `swap_used`, ou apenas a parte do nome da métrica que será acrescentada ao tipo de recurso. Por exemplo, especificar `reads` na seção `measurement` da seção `diskio` fará com que a métrica `diskio_reads` a seja coletada.
+ `collectd`: opcional. Especifica que você deseja recuperar métricas personalizadas usando o protocolo `collectd`. USe o software `collectd` para enviar as métricas ao atendente do CloudWatch. Para obter mais informações sobre as opções de configuração disponíveis para o collectd, consulte [Recuperar métricas personalizadas com o collectd](CloudWatch-Agent-custom-metrics-collectd.md). 
+ `cpu`: opcional. Especifica que as métricas da CPU deverão ser coletadas. Essa seção é válida apenas para instâncias do Linux. É necessário incluir pelo menos um dos campos `resources` e `totalcpu` para todas as métricas de CPU a serem coletadas. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `resources`: opcional. Especifique esse campo com um valor de `*` para fazer com que as métricas por CPU sejam coletadas. O único valor permitido é . `*`. 
  + `totalcpu`: opcional. Especifica se as métricas de cpu agregadas em todos os núcleos de cpu serão relatadas. O padrão é true.
  + `measurement`: especifica a matriz de métricas de cpu a serem coletadas. Os valores possíveis são `time_active`, `time_guest`, `time_guest_nice`, `time_idle`, `time_iowait`, `time_irq`, `time_nice`, `time_softirq`, `time_steal`, `time_system`, `time_user`, `usage_active`, `usage_guest`, `usage_guest_nice`, `usage_idle`, `usage_iowait`, `usage_irq`, `usage_nice`, `usage_softirq`, `usage_steal`, `usage_system` e `usage_user`. Esse campo será obrigatório se você incluir `cpu`.

    Por padrão, a unidade para métricas de `cpu_usage_*` é `Percent`, e as métricas `cpu_time_*` não têm uma unidade.

    Dentro da entrada de cada métrica individual, você também poderá especificar opcionalmente uma ou ambas as opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de cpu, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

    Esse valor é especificado em segundos. Por exemplo, a especificação de 10 faz com que as métricas sejam coletadas a cada 10 segundos. Uma configuração de 300 especifica que as métricas sejam coletadas a cada 5 minutos.

    Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações sobre as métricas de alta resolução, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 
  + `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de cpu. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` global que é usado para todos os tipos de métricas coletadas pelo atendente.
+ `disk`: opcional. Especifica que as métricas de disco deverão ser coletadas. Coleta métricas somente para volumes montados. Essa seção é válida apenas para instâncias do Linux. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `resources`: opcional. Especifica uma matriz de pontos de montagem de disco. Esse campo limita o CloudWatch a coletar métricas apenas dos pontos de montagem listados. Você pode especificar `*` como o valor para coletar métricas de todos os pontos de montagem. O valor padrão é coletar métricas de todos os pontos de montagem. 
  + `measurement`: especifica a matriz de métricas de disco a serem coletadas. Os valores possíveis são `free`, `total`, `used`, `used_percent`, `inodes_free`, `inodes_used` e `inodes_total`. Esse campo será obrigatório se você incluir `disk`.
**nota**  
As métricas de `disk` têm uma dimensão para `Partition`, o que significa que o número de métricas personalizadas geradas depende do número de partições associadas à instância. O número de partições de disco que você tem depende da AMI usada e do número de volumes do Amazon EBS que estão sendo anexados ao servidor.

    Para ver as unidades padrão para cada métrica de `disk`, consulte [Métricas coletadas pelo atendente do CloudWatch em instâncias do Linux e macOS](metrics-collected-by-CloudWatch-agent.md#linux-metrics-enabled-by-CloudWatch-agent).

    Dentro da entrada de cada métrica individual, você também poderá especificar opcionalmente uma ou ambas as opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + `ignore_file_system_types`: especifica os tipos de sistema de arquivos a serem excluídos ao coletar métricas de disco. Os valores válidos incluem `sysfs`, `devtmpfs`, e assim por diante.
  + `drop_device`: definir isso como `true` fará com que `Device` não seja incluído como uma dimensão para as métricas de disco.

    Impedir que `Device` seja usado como uma dimensão pode ser útil em instâncias que usam o sistema Nitro porque, nessas instâncias, os nomes dos dispositivos mudam para cada montagem de disco quando a instância é reinicializada. Isso pode causar dados inconsistentes em suas métricas e fazer com que os alarmes com base nessas métricas entrem no estado `INSUFFICIENT DATA`.

    O padrão é `false`.
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de disco, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

    Esse valor é especificado em segundos.

    Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 
  + `append_dimensions`: opcional. Especifique pares de chave-valor para serem usadas como dimensões adicionais apenas para métricas de disco. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` que é usado para todos os tipos de métricas coletadas pelo atendente.

    Veja a seguir um par de chave-valor que você pode usar. Você também pode especificar outros pares personalizados de chave-valor.
    + `"VolumeId":"${aws:VolumeId}"` adiciona uma dimensão `VolumeId` às métricas de disco do dispositivo de blocos. Para volumes do Amazon EBS, esse será o ID do volume do Amazon EBS. Para o armazenamento de instâncias do EC2, essa será a série do dispositivo. Usar isso requer que o parâmetro `drop_device` seja definido como `false`.
+ `diskio`: opcional. Especifica que as métricas de e/s de disco deverão ser coletadas. Essa seção é válida apenas para instâncias do Linux. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `resources`: opcional. Se você especificar uma matriz de dispositivos, o CloudWatch coletará métricas apenas desses dispositivos. Caso contrário, serão coletadas métricas para todos os dispositivos. Você também pode especificar \$1 como valor para coletar métricas de todos os dispositivos.
  + `measurement`: especifica a matriz de métricas de E/S de disco e do driver AWS NVMe a serem coletadas para volumes do Amazon EBS e de armazenamento de instância anexados às instâncias do Amazon EC2. Os valores de E/S de disco possíveis são: `reads`, `writes`, `read_bytes`, `write_bytes`, `read_time`, `write_time`, `io_time` e `iops_in_progress`. Para obter uma lista das métricas do driver NVMe para volumes do Amazon EBS e de armazenamento de instância do Amazon EC2, consulte [Coletar métricas do driver do Amazon EBS NVMe](Container-Insights-metrics-EBS-Collect.md) e [Coletar métricas do driver NVMe do volume de armazenamento de instância do Amazon EC2](Container-Insights-metrics-instance-store-Collect.md). Esse campo será obrigatório se você incluir `diskio`.

    Dentro da entrada de cada métrica individual, você também poderá especificar opcionalmente uma ou ambas as opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).

    Para obter informações sobre unidades padrão e descrição das métricas, consulte [Coletar métricas do driver do Amazon EBS NVMe](Container-Insights-metrics-EBS-Collect.md).
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de diskio, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

    Esse valor é especificado em segundos.

    Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações sobre as métricas de alta resolução, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 
  + `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de diskio. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` que é usado para todos os tipos de métricas coletadas pelo atendente.
+ `swap`: opcional. Especifica que as métricas de memória de permuta deverão ser coletadas. Essa seção é válida apenas para instâncias do Linux. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `measurement`: especifica a matriz de métricas de swap a serem coletadas. Os valores possíveis são `free`, `used` e `used_percent`. Esse campo será obrigatório se você incluir `swap`.

    Para ver as unidades padrão para cada métrica de `swap`, consulte [Métricas coletadas pelo atendente do CloudWatch em instâncias do Linux e macOS](metrics-collected-by-CloudWatch-agent.md#linux-metrics-enabled-by-CloudWatch-agent).

    Dentro da entrada de cada métrica individual, você também poderá especificar opcionalmente uma ou ambas as opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de memória de permuta, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

    Esse valor é especificado em segundos. 

    Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações sobre as métricas de alta resolução, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 
  + `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de memória de permuta. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` global que é usado para todos os tipos de métricas coletadas pelo atendente. É coletado como uma métrica de alta resolução. 
+ `mem`: opcional. Especifica que as métricas de memória deverão ser coletadas. Essa seção é válida apenas para instâncias do Linux. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `measurement`: especifica a matriz de métricas de memória a serem coletadas. Os valores possíveis são `active`, `available`, `available_percent`, `buffered`, `cached`, `free`, `inactive`, `shared`, `total`, `used` e `used_percent`. Esse campo será obrigatório se você incluir `mem`.

    Para ver as unidades padrão para cada métrica de `mem`, consulte [Métricas coletadas pelo atendente do CloudWatch em instâncias do Linux e macOS](metrics-collected-by-CloudWatch-agent.md#linux-metrics-enabled-by-CloudWatch-agent).

    Dentro da entrada de cada métrica individual, você também poderá especificar opcionalmente uma ou ambas as opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de memória, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

    Esse valor é especificado em segundos.

    Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações sobre as métricas de alta resolução, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 
  + `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de memória. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` que é usado para todos os tipos de métricas coletadas pelo atendente.
+ `net`: opcional. Especifica que as métricas de redes deverão ser coletadas. Essa seção é válida apenas para instâncias do Linux. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `resources`: opcional. Se você especificar uma matriz de interfaces de rede, o CloudWatch coletará métricas apenas dessas interfaces. Caso contrário, serão coletadas métricas para todos os dispositivos. Você também pode especificar `*` como o valor para coletar métricas de todas as interfaces.
  + `measurement`: especifica a matriz de métricas de redes a serem coletadas. Os valores possíveis são `bytes_sent`, `bytes_recv`, `drop_in`, `drop_out`, `err_in`, `err_out`, `packets_sent` e `packets_recv`. Esse campo será obrigatório se você incluir `net`.

    Para ver as unidades padrão para cada métrica de `net`, consulte [Métricas coletadas pelo atendente do CloudWatch em instâncias do Linux e macOS](metrics-collected-by-CloudWatch-agent.md#linux-metrics-enabled-by-CloudWatch-agent).

    Dentro da entrada de cada métrica individual, você também poderá especificar opcionalmente uma ou ambas as opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de redes, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

    Esse valor é especificado em segundos. Por exemplo, a especificação de 10 faz com que as métricas sejam coletadas a cada 10 segundos. Uma configuração de 300 especifica que as métricas sejam coletadas a cada 5 minutos.

    Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações sobre as métricas de alta resolução, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 
  + `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de redes. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` que é usado para todos os tipos de métricas coletadas pelo atendente.
+ `netstat`: opcional. Especifica que as métricas de estado de conexão TCP e conexão UDP deverão ser coletadas. Essa seção é válida apenas para instâncias do Linux. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `measurement`: especifica a matriz de métricas de netstat a serem coletadas. Os valores possíveis são `tcp_close`, `tcp_close_wait`, `tcp_closing`, `tcp_established`, `tcp_fin_wait1`, `tcp_fin_wait2`, `tcp_last_ack`, `tcp_listen`, `tcp_none`, `tcp_syn_sent`, `tcp_syn_recv`, `tcp_time_wait` e `udp_socket`. Esse campo será obrigatório se você incluir `netstat`.

    Para ver as unidades padrão para cada métrica de `netstat`, consulte [Métricas coletadas pelo atendente do CloudWatch em instâncias do Linux e macOS](metrics-collected-by-CloudWatch-agent.md#linux-metrics-enabled-by-CloudWatch-agent).

    Dentro da entrada de cada métrica individual, você também poderá especificar opcionalmente uma ou ambas as opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de netstat, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

    Esse valor é especificado em segundos.

    Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações sobre as métricas de alta resolução, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics).
  + `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de netstat. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` que é usado para todos os tipos de métricas coletadas pelo atendente.
+ `processes`: opcional. Especifica que as métricas de processo deverão ser coletadas. Essa seção é válida apenas para instâncias do Linux. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `measurement`: especifica a matriz de métricas de processos a serem coletadas. Os valores possíveis são `blocked`, `dead`, `idle`, `paging`, `running`, `sleeping`, `stopped`, `total`, `total_threads`, `wait` e `zombies`. Esse campo será obrigatório se você incluir `processes`.

    Para todas as métricas `processes`, a unidade padrão é `None`.

    Dentro da entrada de cada métrica individual, você também poderá especificar opcionalmente uma ou ambas as opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de processos, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

    Esse valor é especificado em segundos. Por exemplo, a especificação de 10 faz com que as métricas sejam coletadas a cada 10 segundos. Uma configuração de 300 especifica que as métricas sejam coletadas a cada 5 minutos.

    Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 
  + `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de processo. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` que é usado para todos os tipos de métricas coletadas pelo atendente.
+ `nvidia_gpu`: opcional. Especifica que as métricas de GPU NVIDIA deverão ser coletadas. Esta seção é válida somente para instâncias Linux em hosts configurados com um acelerador de GPU NVIDIA e que tenham a NVIDIA System Management Interface (nvidia-smi) instalada.

  As métricas de GPU NVIDIA coletadas são prefixadas com a string `nvidia_smi_` para distingui-las das métricas coletadas para outros tipos de acelerador. A seção pode incluir os seguintes campos:
  + `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
  + `measurement`: especifica a matriz de métricas GPU NVIDIA a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Metric** (Métrica) na tabela em [Colete métricas de GPU NVIDIA](CloudWatch-Agent-NVIDIA-GPU.md).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão de `None` para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas GPU NVIDIA, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.
+ `jmx`: opcional. Especifica que você deseja recuperar métricas do Java Management Extensions (JMX) da instância. Para obter mais informações sobre os parâmetros que você pode usar nesta seção e as métricas que pode coletar, consulte [Coletar métricas do Java Management Extensions (JMX)](CloudWatch-Agent-JMX-metrics.md). 
+  `otlp`: opcional. Especifica que você deseja coletar métricas do SDK do OpenTelemetry. Para obter mais informações sobre os campos que você pode usar nesta seção, consulte [Coletar métricas e rastreamentos com o OpenTelemetry](CloudWatch-Agent-OpenTelemetry-metrics.md). 
+ `procstat`: opcional. Especifica se você deseja recuperar métricas de processos individuais. Para obter mais informações sobre as opções de configuração disponíveis para o procstat, consulte [Coletar métricas de processo com o plugin procstat](CloudWatch-Agent-procstat-process-metrics.md). 
+ `statsd`: opcional. Especifica que você deseja recuperar métricas personalizadas usando o protocolo `StatsD`. O atendente do CloudWatch funciona como daemon para o protocolo. Use qualquer cliente do `StatsD` padrão para enviar as métricas ao atendente do CloudWatch. Para obter mais informações sobre as opções de configuração disponíveis para o StatsD, consulte [Recuperar métricas personalizadas com o StatsD](CloudWatch-Agent-custom-metrics-statsd.md). 
+ `ethtool`: opcional. Especifica que você deseja recuperar métricas de rede usando o plugin `ethtool`. Este plugin pode importar as métricas coletadas pelo utilitário ethtool padrão, bem como métricas de performance de rede das instâncias do Amazon EC2. Para obter mais informações sobre as opções de configuração disponíveis para o ethtool, consulte [Coletar métricas de performance da rede](CloudWatch-Agent-network-performance.md). 

Veja a seguir o exemplo de uma seção `metrics` para um servidor Linux. Neste exemplo, três métricas de CPU, três métricas de netstat, três métricas de processo e uma métrica de disco são coletadas, e o atendente é configurado para receber métricas adicionais a partir de um cliente `collectd`.

```
"metrics": {
    "aggregation_dimensions" : [["AutoScalingGroupName"], ["InstanceId", "InstanceType"],[]],
    "metrics_collected": {
      "collectd": {},
      "cpu": {
        "resources": [
          "*"
        ],
        "measurement": [
          {"name": "cpu_usage_idle", "rename": "CPU_USAGE_IDLE", "unit": "Percent"},
          {"name": "cpu_usage_nice", "unit": "Percent"},
          "cpu_usage_guest"
        ],
        "totalcpu": false,
        "drop_original_metrics": [ "cpu_usage_guest" ],
        "metrics_collection_interval": 10,
        "append_dimensions": {
          "test": "test1",
          "date": "2017-10-01"
        }
      },
      "netstat": {
        "measurement": [
          "tcp_established",
          "tcp_syn_sent",
          "tcp_close"
        ],
        "metrics_collection_interval": 60
      },
       "disk": {
        "measurement": [
          "used_percent"
        ],
        "resources": [
          "*"
        ],
        "drop_device": true
      },  
      "processes": {
        "measurement": [
          "running",
          "sleeping",
          "dead"
        ]
      }
    },
    "append_dimensions": {
      "ImageId": "${aws:ImageId}",
      "InstanceId": "${aws:InstanceId}",
      "InstanceType": "${aws:InstanceType}",
      "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
    }
  }
```

### Windows Server
<a name="CloudWatch-Agent-Windows-section"></a>

Na seção `metrics_collected` para Windows Server, você pode ter subseções para cada objeto de performance do Windows, como `Memory`, `Processor` e `LogicalDisk`. Para obter informações sobre quais objetos e contadores estão disponíveis, consulte [Contadores de performance](https://learn.microsoft.com/en-us/windows/win32/perfctrs/performance-counters-portal) na documentação do Microsoft Windows.

Na subseção de cada objeto, você especifica uma matriz de `measurement` de contadores a serem coletados. A matriz `measurement` é necessária para cada objeto que você especifica no arquivo de configuração. Você também pode especificar um campo `resources` para nomear as instâncias das quais as métricas serão coletadas. Você também pode especificar `*` para `resources` para coletar métricas separadas para cada instância. Se você omitir `resources` para contadores que tenham instâncias, os dados de todas as instâncias serão agregados em um conjunto. Se você omitir `resources` para contadores que não tenham instâncias, os contadores não são coletados pelo agente do CloudWatch. Para determinar se os contadores têm instâncias, é possível usar um dos comandos a seguir.

Powershell:

```
Get-Counter -ListSet *
```

Linha de comando (não na Powershell):

```
TypePerf.exe –q
```

Dentro de cada seção de objeto, você também pode especificar os campos opcionais a seguir:
+ `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas para esse objeto, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

  Esse valor é especificado em segundos. Por exemplo, a especificação de 10 faz com que as métricas sejam coletadas a cada 10 segundos. Uma configuração de 300 especifica que as métricas sejam coletadas a cada 5 minutos.

  Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 
+ `append_dimensions`: opcional. Especifica dimensões adicionais a serem usadas somente para métricas desse objeto. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` global que é usado para todos os tipos de métricas coletadas pelo atendente. 
+ `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.

Dentro de cada seção de contador, você também pode especificar os campos opcionais a seguir:
+ `rename`: especifica um nome diferente a ser usado no CloudWatch para essa métrica.
+ `unit`: especifica a unidade a ser usada para essa métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).

Existem outras seções opcionais que podem ser incluídas em `metrics_collected`:
+ `statsd`: permite recuperar métricas personalizadas usando o protocolo `StatsD`. O atendente do CloudWatch funciona como daemon para o protocolo. Use qualquer cliente do `StatsD` padrão para enviar as métricas ao atendente do CloudWatch. Para obter mais informações, consulte [Recuperar métricas personalizadas com o StatsD](CloudWatch-Agent-custom-metrics-statsd.md).
+ `procstat`: permite recuperar métricas de processos individuais. Para obter mais informações, consulte [Coletar métricas de processo com o plugin procstat](CloudWatch-Agent-procstat-process-metrics.md).
+  `jmx`: opcional. Especifica que você deseja recuperar métricas do Java Management Extensions (JMX) da instância. Para obter mais informações sobre os campos que você pode usar nesta seção e as métricas que pode coletar, consulte [Coletar métricas do Java Management Extensions (JMX)](CloudWatch-Agent-JMX-metrics.md). 
+  `otlp`: opcional. Especifica que você deseja coletar métricas do SDK do OpenTelemetry. Para obter mais informações sobre os campos que você pode usar nesta seção, consulte [Coletar métricas e rastreamentos com o OpenTelemetry](CloudWatch-Agent-OpenTelemetry-metrics.md). 

Veja a seguir um exemplo de uma seção `metrics` para uso em um Windows Server. Neste exemplo, muitas métricas do Windows são coletadas e o computador também é definido de modo a receber métricas adicionais de um cliente `StatsD`.

```
"metrics": {
    "metrics_collected": {
      "statsd": {},
      "Processor": {
        "measurement": [
          {"name": "% Idle Time", "rename": "CPU_IDLE", "unit": "Percent"},
          "% Interrupt Time",
          "% User Time",
          "% Processor Time"
        ],
        "resources": [
          "*"
        ],
        "append_dimensions": {
          "d1": "win_foo",
          "d2": "win_bar"
        }
      },
      "LogicalDisk": {
        "measurement": [
          {"name": "% Idle Time", "unit": "Percent"},
          {"name": "% Disk Read Time", "rename": "DISK_READ"},
          "% Disk Write Time"
        ],
        "resources": [
          "*"
        ]
      },
      "Memory": {
        "metrics_collection_interval": 5,
        "measurement": [
          "Available Bytes",
          "Cache Faults/sec",
          "Page Faults/sec",
          "Pages/sec"
        ],
        "append_dimensions": {
          "d3": "win_bo"
        }
      },
      "Network Interface": {
        "metrics_collection_interval": 5,
        "measurement": [
          "Bytes Received/sec",
          "Bytes Sent/sec",
          "Packets Received/sec",
          "Packets Sent/sec"
        ],
        "resources": [
          "*"
        ],
        "append_dimensions": {
          "d3": "win_bo"
        }
      },
      "System": {
        "measurement": [
          "Context Switches/sec",
          "System Calls/sec",
          "Processor Queue Length"
        ],
        "append_dimensions": {
          "d1": "win_foo",
          "d2": "win_bar"
        }
      }
    },
    "append_dimensions": {
      "ImageId": "${aws:ImageId}",
      "InstanceId": "${aws:InstanceId}",
      "InstanceType": "${aws:InstanceType}",
      "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
    },
    "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]]
    }
  }
```

## Arquivo de configuração do atendente do CloudWatch: seção do Logs
<a name="CloudWatch-Agent-Configuration-File-Logssection"></a>

A seção `logs` inclui os seguintes campos:
+ `service.name`: opcional. Especifica o nome do serviço a ser usado para preencher a entidade para [encontrar a telemetria relacionada](ExploreRelated.md).
+ `deployment.environment`: opcional. Especifica o nome do ambiente a ser usado para preencher a entidade para [encontrar a telemetria relacionada](ExploreRelated.md).
+ `backpressure_mode`: opcional. Especifica o comportamento quando o agente do CloudWatch está ingerindo logs mais depressa do que consegue enviar para o CloudWatch Logs, o que gera contrapressão. A contrapressão pode ocorrer por problemas de rede, controle de utilização da API ou alto volume de logs.

  O agente comporta os seguintes valores:
  + `fd_release`: libera descritores de arquivos para arquivos excluídos durante condições de contrapressão. Essa opção pode ajudar a evitar o esgotamento do espaço em disco quando os processos externos de limpeza ou rodízio de logs removem arquivos enquanto o agente mantém os descritores de arquivos abertos. A opção `auto_removal` tem precedência sobre a opção `backpressure_mode` que está sendo definida como `fd_release`. Quando `auto_removal` está habilitado, o agente do CloudWatch processa o arquivo até o fim, sem liberar o descritor de arquivo.
**Importante**  
Usar `fd_release` pode impedir que o agente do CloudWatch leia os arquivos de log até o fim, o que causa perda de log.
+ `concurrency`: opcional. Especifica o número de publicadores de log compartilhados usados para publicar simultaneamente arquivos de log no CloudWatch Logs.

  Se você omitir esse campo, cada destino de arquivo de log (grupo de logs, combinação de fluxos) terá um único publicador de log compartilhado, o que pode causar gargalos com arquivos grandes ou durante a gravação de vários arquivos no mesmo destino. Habilitar a simultaneidade pode ajudar no throughput.
+ `logs_collected`: obrigatório, se a seção `logs` for incluída. Especifica quais arquivos de log e logs de eventos do Windows deverão ser coletados no servidor. Pode incluir dois campos: `files` e `windows_events`.
  + `files`: especifica os arquivos de log regulares que deverão ser coletados pelo atendente do CloudWatch. Contém um campo, `collect_list`, que define melhor esses arquivos.
    + `collect_list`: obrigatório se `files` for incluído. Contém uma matriz de entradas, sendo que cada uma delas especifica um arquivo de log para coletar. Cada uma dessas entradas pode incluir os seguintes campos:
      + `file_path`: especifica o caminho do arquivo de log para carregar para o CloudWatch Logs. Regras correspondentes de glob do Unix padrão são aceitas, com a adição de `**` como um *superasterisco*. Por exemplo, se você especificar `/var/log/**.log`, isso fará com que todos os arquivos `.log` na árvore de diretórios `/var/log` sejam coletados. Para obter mais exemplos, consulte a [Biblioteca do glob](https://github.com/gobwas/glob).

        Você também pode usar o asterisco padrão como um curinga padrão. Por exemplo, `/var/log/system.log*` corresponde a arquivos, como `system.log_1111`, `system.log_2222`, e assim por diante em `/var/log`.

        Somente o arquivo mais recente é enviado ao CloudWatch Logs com base no tempo de modificação do arquivo. Recomendamos usar caracteres curinga para especificar uma série de arquivos do mesmo tipo, como `access_log.2018-06-01-01` e `access_log.2018-06-01-02`, mas não vários tipos de arquivos, como `access_log_80` e `access_log_443`. Para especificar vários tipos de arquivos, adicione outra entrada de stream de log ao arquivo de configuração de atendente para que cada tipo de arquivo de log vá para um fluxo de logs diferente.
      + `auto_removal`: opcional. Se isso for `true`, o agente do CloudWatch excluirá automaticamente esse arquivo de log depois de lê-lo e de ele ter sido rotacionado. Normalmente, os arquivos de log são excluídos depois que todo o conteúdo é carregado no CloudWatch Logs, mas se o agente chegar ao EOF (fim do arquivo) e detectar outro arquivo de log mais novo que corresponda ao mesmo `file_path`, o agente exclui o arquivo ANTIGO. Portanto, verifique se terminou de gravar no arquivo ANTIGO antes de criar o arquivo NOVO. A [biblioteca de rastreamento RUST](https://docs.rs/tracing/latest/tracing/) tem uma incompatibilidade conhecida porque é provável que crie um NOVO arquivo de log e ainda tente gravar no arquivo de log ANTIGO.

        O atendente remove somente arquivos completos dos logs que criam vários arquivos, como logs que criam arquivos separados para cada data. Se um log gravar continuamente em um único arquivo, ele não será removido.

        Se você já tiver um método de rotação ou remoção do arquivo de log em vigor, recomendamos que você omita esse campo ou defina-o como `false`.

        Se você omitir esse campo, o valor padrão de `false` será usado.
      + `log_group_name`: opcional. Especifica o que usar como nome de grupo de logs no CloudWatch Logs.

        Recomendamos que você use esse campo para especificar um nome para o grupo de logs com a finalidade de evitar confusões. Se você omitir `log_group_name`, o valor de `file_path` até o ponto final será usado como o nome do grupo de logs. Por exemplo, se o caminho do arquivo for `/tmp/TestLogFile.log.2017-07-11-14`, o nome do grupo de logs será `/tmp/TestLogFile.log`. 

        Caso especifique um nome para o grupo de logs, você poderá usar `{instance_id}`, `{hostname}`, `{local_hostname}` e `{ip_address}` como variáveis no nome. `{hostname}` recupera o nome do host usando os metadados do EC2 e `{local_hostname}` usa o nome do host do arquivo de configuração de rede.

        Se você usar essas variáveis para criar diferentes grupos de logs, lembre-se do limite de 1.000.000 de grupos de log por conta, por região.

        Os caracteres permitidos incluem a-z, A-Z, 0-9, “\$1” (sublinhado), “-” (hífen), “/” (barra) e “.” (ponto).
      + `log_group_class`: opcional. Especifica qual classe do grupo de logs será usada para o novo grupo de logs. Para obter mais informações sobre as classes do grupo de logs, consulte [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html).

        Os valores válidos são `STANDARD` e `INFREQUENT_ACCESS`. Se você omitir esse campo, o padrão de `STANDARD` será usado.
**Importante**  
Após a criação de um grupo de logs, a classe não poderá ser alterada.
      + `log_stream_name`: opcional. Especifica o que usar como nome do fluxo de logs no CloudWatch Logs. Como parte do nome, você pode usar `{instance_id}`, `{hostname}`, `{local_hostname}` e `{ip_address}` como variáveis dentro do nome. O `{hostname}` recupera o nome do host de metadados do EC2, e o `{local_hostname}` usa o nome de host do arquivo de configuração de rede.

        Se você omitir esse campo, o valor do parâmetro `log_stream_name` na seção global de `logs` será usado. Se isso também for omitido, o valor padrão de `{instance_id}` será usado.

        Caso um fluxo de logs ainda não exista, ele será criado automaticamente.
      + `retention_in_days`: opcional. Especifica o número de dias em que os eventos de log serão retidos no grupo de logs especificado.
        + Se o agente estiver criando esse grupo de logs agora e você omitir esse campo, a retenção desse novo grupo será definida para nunca expirar.
        + Se esse grupo de logs já existir e você especificar esse campo, a nova retenção definida será utilizada. Se você omitir esse campo para um grupo de logs existente, a retenção do grupo de logs não será alterada.

          O assistente do agente do CloudWatch usará `-1` como valor padrão esse campo quando ele for usado para criar o arquivo de configuração do agente e você não especificar um valor para a retenção de logs. Esse valor `-1` definido pelo assistente especifica que os eventos no grupo de logs não expiram. No entanto, editar manualmente esse valor para não `-1` tem efeito.

        Os valores válidos são 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288 e 3653..

        Se você configurar o atendente para gravar vários fluxos de log no mesmo grupo de logs, especificar o `retention_in_days` em um só lugar definirá a retenção de log para todo o grupo de logs. Se você especificar `retention_in_days` para o mesmo grupo de logs em vários locais, a retenção será definida se todos esses valores forem iguais. No entanto, se diferentes valores de `retention_in_days` forem especificados para o mesmo grupo de logs em vários locais, a retenção de log não será definida e o atendente será interrompido, retornando um erro.
**nota**  
A função do IAM do atendente ou o usuário do IAM deve ter o `logs:PutRetentionPolicy` para poder definir políticas de retenção. 
**Atenção**  
Se você definir `retention_in_days` para um grupo de logs que já existe, todos os logs nesse grupo de logs publicados antes do número de dias que você especificar são excluídos. Por exemplo, configurá-lo como 3 faria com que todos os logs de 3 dias atrás e anteriores a isso fossem excluídos. 
      + `filters`: opcional. Pode conter uma matriz de entradas, cada uma das quais especifica uma expressão regular e um tipo de filtro para especificar se as entradas de log que correspondem ao filtro devem ser publicadas ou soltas. Se você omitir esse campo, todos os logs no arquivo de log serão publicados no CloudWatch Logs. Se você incluir esse campo, o atendente processará cada mensagem de log com todos os filtros especificados, e somente os eventos de log que passam todos os filtros serão publicados no CloudWatch Logs. As entradas de registro que não passam todos os filtros ainda permanecerão no arquivo de log do host, mas não serão enviadas para o CloudWatch Logs.

        Cada entrada na matriz de filtros pode incluir os seguintes campos:
        + `type`: denota o tipo de filtro. Os valores válidos são `include` e `exclude`. Com `include`, a entrada de log deve corresponder à expressão a ser publicada no CloudWatch Logs. Com `exclude`, cada entrada de log que corresponde ao filtro não é enviada para o CloudWatch Logs.
        + `expression`: uma string de expressão regular que segue a [Sintaxe RE2](https://github.com/google/re2/wiki/Syntax).
**nota**  
O atendente do CloudWatch não verifica a performance de nenhuma expressão regular que você fornece nem restringe o runtime da avaliação das expressões regulares. Recomendamos que você tenha cuidado para não escrever uma expressão que seja cara de avaliar. Para obter mais informações sobre possíveis problemas, consulte [Negação de serviço de expressão regular – REDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS)

        Por exemplo, o trecho a seguir do arquivo de configuração do atendente CloudWatch publica logs que são solicitações PUT e POST para o CloudWatch Logs, mas exclui logs provenientes do Firefox.

        ```
        "collect_list": [ 
          {
            "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/test.log", 
            "log_group_name": "test.log", 
            "log_stream_name": "test.log",
            "filters": [
              {
                "type": "exclude",
                "expression": "Firefox"
              },
              {
                "type": "include",
                "expression": "P(UT|OST)"
              }
            ]
          },
          .....
        ]
        ```
**nota**  
A ordem dos filtros no arquivo de configuração é importante para a performance. No exemplo anterior, o atendente descarta todos os logs que correspondem a `Firefox` antes de começar a avaliar o segundo filtro. Para fazer com que menos entradas de log sejam avaliadas por mais de um filtro, coloque o filtro do qual você espera descartar mais logs primeiro no arquivo de configuração.
      + `timezone`: opcional. Especifica o fuso horário a ser usado durante a colocação de time stamps em eventos de log. Os valores válidos são `UTC` e `Local`. O valor padrão é `Local`.

        Esse parâmetro será ignorado se você não especificar um valor para `timestamp_format`.
      + `timestamp_format`: opcional. Especifica o formato do time stamp, usando texto simples e símbolos especiais que começam com %. Se você omitir esse campo, o tempo atual será usado. Se você usar esse campo, poderá usar os símbolos na lista a seguir como parte do formato.
**nota**  
Esse parâmetro não é levado em consideração quando `file_path` está definido como `amazon-cloudwatch-agent.log` 

        Se uma única entrada de log contiver dois time stamps correspondentes ao formato, o primeiro time stamp será usado.

        Esta lista de símbolos é diferente da lista usada pelo atendente do CloudWatch Logs mais antigo. Para obter um resumo dessas diferenças, consulte . [Diferenças de carimbo de data e hora entre o agente do CloudWatch e o agente anterior do CloudWatch Logs](CloudWatch-Agent-common-scenarios.md#CloudWatch-Agent-logs-timestamp-differences)  
`%y`  
Ano sem o século como um número decimal preenchido com zero. Por exemplo, `19` para representar 2019.  
`%Y`  
Ano com o século como um número decimal. Por exemplo, `2019`.  
`%b`  
Mês como o nome abreviado da localidade  
`%B`  
Mês como o nome completo da localidade  
`%m`  
mês como um número decimal preenchido com zeros  
`%-m`  
Mês como um número decimal (não preenchido com zeros)  
`%d`  
dia do mês como um número decimal preenchido com zeros  
`%-d`  
Dia do mês como um número decimal (não preenchido com zeros)  
`%A`  
Nome completo do dia da semana, como `Monday`  
`%a`  
Abreviação do dia da semana, como `Mon`  
`%H`  
Hora (no formato de 24 horas) como um número decimal preenchido com zeros  
`%I`  
Hora (no formato de 12 horas) como um número decimal preenchido com zeros  
`%-I`  
Hora (no formato de 12 horas) como número decimal (não preenchido com zeros)  
`%p`  
AM ou PM  
`%M`  
Minutos como um número decimal preenchido com zeros  
`%-M`  
Minutos como um número decimal (não preenchido com zeros)  
`%S`  
Segundos como um número decimal preenchido com zeros  
`%-S`  
Segundos como um número decimal (não preenchido com zeros)  
`%f`  
Segundos fracionários como um número decimal (1 a 9 dígitos), preenchido com zeros à esquerda.  
`%Z`  
Fuso horário, por exemplo `PST`  
`%z`  
Fuso horário, expresso como a diferença entre o fuso horário local e o UTC. Por exemplo, `-0700`. Há suporte apenas para esse formato. Por exemplo, `-07:00` não é um formato válido.  

      + `multi_line_start_pattern`: especifica o padrão para identificar o início de uma mensagem de log. Uma mensagem de log é feita de uma linha em conformidade com o padrão e as linhas subsequentes que não correspondem ao padrão.

        Se você omitir esse campo, o modo multilinhas será desabilitado, e qualquer linha que comece com um caractere diferente de espaço fechará a mensagem de log anterior e iniciará uma nova mensagem de log.

        Se incluir esse campo, você poderá especificar `{timestamp_format}` para usar a mesma expressão regular como o formato de time stamp. Caso contrário, você pode especificar uma expressão regular diferente para o CloudWatch Logs usar para determinar as linhas de entradas de multilinha.
      + `encoding`: especifica a codificação do arquivo de log para que o arquivo possa ser lido corretamente. Se você especificar uma codificação incorreta, poderá haver perda de dados porque os caracteres que não podem ser decodificados serão substituídos por outros caracteres.

        O valor padrão é `utf-8`. Os valores a seguir são todos possíveis:

         `ascii, big5, euc-jp, euc-kr, gbk, gb18030, ibm866, iso2022-jp, iso8859-2, iso8859-3, iso8859-4, iso8859-5, iso8859-6, iso8859-7, iso8859-8, iso8859-8-i, iso8859-10, iso8859-13, iso8859-14, iso8859-15, iso8859-16, koi8-r, koi8-u, macintosh, shift_jis, utf-8, utf-16, utf-16le, UTF-16, UTF-16LE, windows-874, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, x-mac-cyrillic` 
      + `service.name`: opcional. Especifica o nome do serviço a ser usado para preencher a entidade para [encontrar a telemetria relacionada](ExploreRelated.md).
      + `deployment.environment`: opcional. Especifica o nome do ambiente a ser usado para preencher a entidade para [encontrar a telemetria relacionada](ExploreRelated.md).
      + `trim_timestamp`: opcional. Se for true, o agente do CloudWatch removerá o timestamp correspondente a `timestamp_format` da linha antes de enviá-lo para o CloudWatch Logs. O LogEvent ainda conterá o campo `timestamp`.

        Se você omitir esse campo, o valor padrão de `false` será usado.
  + A seção `windows_events` especifica os tipos de eventos do Windows a serem coletados de servidores que executam o Windows Server. Isso inclui os seguintes campos:
    + `collect_list`: obrigatório se `windows_events` for incluído. Especifica os tipos e os níveis de eventos do Windows a serem coletados. Cada log a ser coletados tem uma entrada nessa seção, que pode incluir os seguintes campos:
      + `event_name`: especifica os tipos de eventos do Windows a serem registrados em log. Isso é equivalente ao nome do canal de log de eventos do Windows: por exemplo, `System`, `Security`, `Application`, etc. Esse campo é necessário para cada tipo de evento do Windows a ser registrado em log.
**nota**  
Quando o CloudWatch recupera mensagens de um canal de log do Windows, ele procura o canal de log com base na propriedade `Full Name`. Enquanto isso, o painel de navegação do Windows Event Viewer exibe a propriedade `Log Name` dos canais de log. O `Full Name` e o `Log Name` nem sempre são correspondentes. Para confirmar o `Full Name` de um canal, clique com o botão direito do mouse nele no Visualizador de Eventos do Windows e abra **Propriedades**.
      + `event_levels`: opcional. Especifica os níveis de evento a serem registrados em log. Você deve especificar cada nível a ser registrado em log. Os valores possíveis incluem `INFORMATION`, `WARNING`, `ERROR`, `CRITICAL` e `VERBOSE`. Esse campo é opcional para cada tipo de evento do Windows a ser registrado em log, e pode ser usado com outras opções de filtragem, como `event_ids` e `filters`.
      + `event_ids`: opcional. Contém uma matriz de IDs de eventos do Windows para especificar quais eventos coletar do log de eventos do Windows. Quando esse campo é excluído, todos os eventos do log de eventos especificado são coletados. Quando esse campo é incluído, o agente coleta somente eventos que correspondem aos IDs de eventos especificados.

        Cada entrada na matriz `event_ids` deve ser um valor numérico de ID do evento e pode ser usada com outras opções de filtragem. Confira a terceira entrada no exemplo de configuração abaixo.
**nota**  
O uso de `event_ids` para filtragem é recomendado em vez de expressões regex quando você precisa filtrar por ID de evento, pois oferece melhor performance.
      + `filters`: opcional. Contém uma matriz de entradas. Cada entrada especifica uma expressão regular e um tipo de filtro para especificar se as entradas de log que correspondem ao filtro devem ser publicadas ou descartadas. Quando o campo está incluído, o agente processa cada mensagem de log com todos os filtros especificados, e somente os eventos de logs que passam em todos os filtros são publicados no CloudWatch Logs. Os logs de eventos do Windows que não passarem em todos os filtros serão descartados e não serão enviados para o CloudWatch Logs. A seção de filtros também pode ser usada com outros mecanismos de filtragem, como IDs de eventos [4624, 4625] e níveis do sistema (Informações, Erro ou Crítico), para filtrar logs de forma eficaz e enviá-los para o CloudWatch.

        Cada entrada na matriz de filtros pode incluir os seguintes campos:
        + `type`: especifica o tipo de filtro. Os valores válidos são `include` e `exclude`. Com include, a entrada de eventos do Windows deve corresponder à expressão a ser publicada no CloudWatch Logs. Com exclude, toda entrada de log de eventos do Windows que corresponde ao filtro não é enviada para o CloudWatch Logs.
        + `expression`: uma string de expressão regular que segue a sintaxe RE2.
**nota**  
O agente do CloudWatch não valida as expressões regulares que você fornece. Também não limita o tempo de avaliação. Escreva suas expressões com cuidado para evitar problemas de performance. Para obter mais informações sobre ameaças à segurança, consulte [Regular expression Denial of Service - ReDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS).

        No exemplo de configuração do agente abaixo:

        Na primeira entrada, o agente envia logs que contêm mensagens de falha do banco de dados, todas as atividades relacionadas à autenticação e todos os eventos de login (tentativas com êxito e com falha) para o CloudWatch. Qualquer log que não corresponda a esse padrão é descartado.

        Na segunda entrada, a filtragem inicial é feita com base nos IDs de eventos da assinatura de eventos do Windows. O agente coleta todos os logs que contêm a string user, descartando os logs que não correspondem a esses padrões. O agente então descarta os logs que contêm `successful` antes de enviar os logs restantes para o CloudWatch Logs. Todo tipo de filtro é aplicado a cada log de eventos do Windows antes de ser enviado para o CloudWatch.

        ```
        "collect_list": [ 
          {
                "event_name": "Application",
                "log_group_name": "ApplicationEvents",
                "log_stream_name": "ApplicationEvents", 
                "filters": [
                    {
                        "type": "include",
                        "expression": "Database.*failed|Authentication.*|login.*"
                    }
                ]
            },
            {
                "event_name": "System", 
                "log_group_name": "SystemEvents",
                "log_stream_name": "Logon-events",
                "event_ids": [
                    4624,
                    4625
                 ],
                "filters": [
                    {
                        "type": "include",
                        "expression": ".*user.*"
                    },
                    {
                        "type": "exclude",
                        "expression": ".*successful.*"
                    }
                 ]
             }
          .....
        ]
        ```
**nota**  
A ordem dos filtros na configuração afetará a performance. Na segunda entrada, o agente descarta todos os logs que não correspondem ao usuário antes de começar a avaliar a segunda expressão de filtro. Para uma performance ideal, ordene os filtros da maior para a menor taxa de exclusão.

        Embora você possa filtrar logs por IDs de eventos e níveis do sistema na expressão de filtro, é recomendável usar `event_ids` e `log_level`, conforme mostrado na segunda entrada, para melhorar a performance.
**Atenção**  
Embora todos os mecanismos de filtragem (event\$1levels, event\$1ids, filters) sejam opcionais, é necessário pelo menos um durante a configuração do agente para filtrar os logs.
      + `log_group_name`: obrigatório. Especifica o que usar como nome de grupo de logs no CloudWatch Logs. 
      + `log_stream_name`: opcional. Especifica o que usar como nome do fluxo de logs no CloudWatch Logs. Como parte do nome, você pode usar `{instance_id}`, `{hostname}`, `{local_hostname}` e `{ip_address}` como variáveis dentro do nome. O `{hostname}` recupera o nome do host de metadados do EC2, e o `{local_hostname}` usa o nome de host do arquivo de configuração de rede.

        Se você omitir esse campo, o valor do parâmetro `log_stream_name` na seção global de `logs` será usado. Se isso também for omitido, o valor padrão de `{instance_id}` será usado.

        Caso um fluxo de logs ainda não exista, ele será criado automaticamente.
      + `event_format`: opcional. Especifica o formato a ser usado para armazenar eventos do Windows no CloudWatch Logs. O `xml` usa o formato XML como no Visualizador de eventos do Windows. O `text` usa o formato do atendente do CloudWatch Logs herdado.
      + `retention_in_days`: opcional. Especifica o número de dias em que os eventos do Windows serão retidos no grupo de logs especificado.
        + Se o agente estiver criando esse grupo de logs agora e você omitir esse campo, a retenção desse novo grupo será definida para nunca expirar.
        + Se esse grupo de logs já existir e você especificar esse campo, a nova retenção definida será utilizada. Se você omitir esse campo para um grupo de logs existente, a retenção do grupo de logs não será alterada.

          O assistente do agente do CloudWatch usará `-1` como valor padrão esse campo quando ele for usado para criar o arquivo de configuração do agente e você não especificar um valor para a retenção de logs. Esse valor `-1` definido pelo assistente especifica que os eventos no grupo de logs não expiram. No entanto, editar manualmente esse valor para não `-1` tem efeito.

        Os valores válidos são 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288 e 3653..

        Se você configurar o atendente para gravar vários fluxos de log no mesmo grupo de logs, especificar o `retention_in_days` em um só lugar definirá a retenção de log para todo o grupo de logs. Se você especificar `retention_in_days` para o mesmo grupo de logs em vários locais, a retenção será definida se todos esses valores forem iguais. No entanto, se diferentes valores de `retention_in_days` forem especificados para o mesmo grupo de logs em vários locais, a retenção de log não será definida e o atendente será interrompido, retornando um erro.
**nota**  
A função do IAM do atendente ou o usuário do IAM deve ter o `logs:PutRetentionPolicy` para poder definir políticas de retenção. 
**Atenção**  
Se você definir `retention_in_days` para um grupo de logs que já existe, todos os logs nesse grupo de logs publicados antes do número de dias que você especificar são excluídos. Por exemplo, configurá-lo como 3 faria com que todos os logs de 3 dias atrás e anteriores a isso fossem excluídos. 
+ `log_stream_name`: opcional. Especifica o nome do fluxo de logs padrão a ser usado para todos os logs ou eventos do Windows que não tenham nomes de fluxo de logs individuais definidos no parâmetro `log_stream_name` em sua entrada na `collect_list`.
+ `endpoint_override`: especifica um endpoint FIPS ou um link privado a ser usado como o endpoint onde o atendente envia logs. Especificar esse campo e definir um link privado permite enviar os logs a um endpoint da Amazon VPC. Para obter mais informações, consulte [O que é a Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)? 

  O valor de `endpoint_override` deve ser uma string que seja um URL.

  Por exemplo, a parte a seguir da seção de logs do arquivo de configuração define o atendente para usar um VPC endpoint ao enviar logs. 

  ```
  {
    "logs": {
      "endpoint_override": "vpce-XXXXXXXXXXXXXXXXXXXXXXXXX.logs.us-east-1.vpce.amazonaws.com",
     ......
     },
  }
  ```
+ `force_flush_interval`: especifica em segundos a quantidade máxima de tempo em que os logs permanecem no buffer da memória antes de serem enviados ao servidor. Não importa a configuração para esse campo, se o tamanho dos logs no buffer alcançar 1 MB, os logs serão enviados imediatamente para o servidor. O valor padrão é 5.

  Se você estiver usando o agente para relatar métricas de alta resolução em formato de métricas incorporadas e estiver configurando alarmes nessas métricas, mantenha esse parâmetro definido com o valor padrão de 5. Caso contrário, as métricas serão relatadas com um atraso que poderá causar alarme em dados parciais ou incompletos.
+ `credentials`: especifica uma função do IAM a ser usada ao enviar logs para outra conta da AWS. Se especificado, esse campo contém um parâmetro, `role_arn`.
  + `role_arn`: especifica o ARN de uma função do IAM a ser usada para autenticação ao enviar logs para outra conta da AWS. Para obter mais informações, consulte [Envio de métricas, logs e rastreamentos a uma conta diferente](CloudWatch-Agent-common-scenarios.md#CloudWatch-Agent-send-to-different-AWS-account). Se especificado aqui, isso substitui o `role_arn` especificado na seção `agent` do arquivo de configuração, se houver.
+ `metrics_collected`: este campo pode conter seções que especificam que o agente deve coletar logs para habilitar casos de uso, como o CloudWatch Application Signals e o Container Insights, com uma observabilidade aprimorada para o Amazon EKS.
  + `application_signals` (Opcional) Especifica que você deseja habilitar o [CloudWatch Application Signals](CloudWatch-Application-Monitoring-Sections.md). Para obter mais informações sobre essa configuração, consulte [Habilitar o CloudWatch Application Signals](CloudWatch-Agent-Application_Signals.md).
  + `kubernetes`: esse campo pode conter um parâmetro do `enhanced_container_insights`, que você pode usar para ativar o Container Insights com observabilidade aprimorada para o Amazon EKS.
    + `enhanced_container_insights`: defina isso como `true` para ativar o Container Insights com observabilidade aprimorada para o Amazon EKS. Para obter mais informações, consulte [Container Insights com observabilidade aprimorada para o Amazon EKS](container-insights-detailed-metrics.md).
    + `accelerated_compute_metrics` – Defina isso como `false` para optar por não coletar métricas de GPU Nvidia nos clusters Amazon EKS. Para obter mais informações, consulte [Métricas da GPU NVIDIA](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EKS-GPU).
  + `emf` – Para coletar métricas incorporadas em logs, não é mais necessário adicionar esse campo `emf`. um campo herdado que especifica que o atendente deve coletar logs que estão em formato de métrica incorporada. É possível gerar dados de métrica a partir desses logs. Para obter mais informações, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md).
  + `otlp`: opcional. Especifica que você deseja coletar métricas do SDK do OpenTelemetry. Para obter mais informações sobre os campos que você pode usar nesta seção, consulte [Coletar métricas e rastreamentos com o OpenTelemetry](CloudWatch-Agent-OpenTelemetry-metrics.md).

A seguir, temos um exemplo de uma seção `logs`.

```
"logs":{
    "logs_collected": {
    "files": {
            "collect_list": [
                   {
                        "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log",
                       "log_group_name": "amazon-cloudwatch-agent.log",
                       "log_stream_name": "my_log_stream_name_1"
                   },
                   {
                       "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\test.log",
                       "log_group_name": "test.log",
                       "log_stream_name": "my_log_stream_name_2"
                   }
               ]
           },
      "windows_events": {
                "collect_list": [
                                {
                       "event_name": "System",
                       "event_ids": [
                           1001,
                           1008
                       ],
                       "log_group_name": "System",
                       "log_stream_name": "System"
                   },
                   {
                       "event_name": "CustomizedName",
                       "event_levels": [
                           "INFORMATION",
                           "ERROR"
                       ],
                       "log_group_name": "CustomizedLogGroup",
                       "log_stream_name": "CustomizedLogStream"
                   },
                   {
                       "event_name": "Application",
                       "event_levels": [
                           "INFORMATION",
                           "ERROR"
                       ],
                       "event_ids":[
                            7369,
                            5624
                       ],
                       "log_group_name": "CustomizedLogGroup",
                       "log_stream_name": "CustomizedLogStream"
                   }
               ]
           }
       },
       "log_stream_name": "my_log_stream_name",
       "metrics_collected": {
        "kubernetes": {
        "enhanced_container_insights": true
      }
    }
  }
```

## Arquivo de configuração do agente do CloudWatch: seção de rastreamentos
<a name="CloudWatch-Agent-Configuration-File-Tracessection"></a>

Ao adicionar uma seção `traces` ao arquivo de configuração do agente do CloudWatch, é possível habilitar o CloudWatch Application Signals ou coletar rastreamentos do X-Ray e do SDK de instrumentação do OpenTelemetry e enviá-los para o X-Ray.

**Importante**  
O perfil do IAM ou o usuário do IAM do agente devem ter a política **AWSXrayWriteOnlyAccess** para realizar o envio de dados de rastreamento ao X-Ray. 

Para começar rapidamente a coletar rastreamentos, é possível adicionar apenas o seguinte ao arquivo de configuração do agente do CloudWatch.

```
"traces_collected": {
        "xray": {
        },
        "otlp": {
        }
      }
```

Se você adicionar a seção anterior ao arquivo de configuração do agente do CloudWatch e reiniciar o agente, isso fará com que o agente comece a coletar rastreamentos usando as opções e valores padrão a seguir. Para obter mais informações sobre esses parâmetros, consulte as definições de parâmetros a seguir nesta seção.

```
"traces_collected": {
        "xray": {
            "bind_address": "127.0.0.1:2000",
            "tcp_proxy": {
              "bind_address": "127.0.0.1:2000"
            }
        },
        "otlp": {
            "grpc_endpoint": "127.0.0.1:4317",
            "http_endpoint": "127.0.0.1:4318"
        }
      }
```

A seção `traces` pode incluir os seguintes campos:
+ `traces_collected`: obrigatório, se a seção `traces` for incluída. Especifica de quais SDKs coletar rastreamentos. Isso pode incluir os seguintes campos:
  + `application_signals`: opcional. Especifica que você deseja habilitar o [CloudWatch Application Signals](CloudWatch-Application-Monitoring-Sections.md). Para obter mais informações sobre essa configuração, consulte [Habilitar o CloudWatch Application Signals](CloudWatch-Agent-Application_Signals.md).
  + `xray`: opcional. Especifica que você deseja coletar rastreamentos do SDK do X-Ray. A seção pode incluir os seguintes campos:
    + `bind_address`: opcional. Especifica o endereço UDP para o agente do CloudWatch usar para escutar rastreamentos do X-Ray. O formato de é `ip:port`. Este endereço deve corresponder ao endereço definido no SDK do X-Ray.

      Se você omitir esse campo, o padrão de `127.0.0.1:2000` será usado.
    + `tcp_proxy`: opcional. Configura o endereço de um proxy usado para oferecer suporte à amostragem remota do X-Ray. Para obter mais informações, consulte [Configuração de regras de amostragem](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-sampling.html) na documentação do X-Ray.

      Essa seção pode conter o campo a seguir.
      + `bind_address`: opcional. Especifica o endereço TCP para o qual o agente do CloudWatch deve configurar o proxy. O formato de é `ip:port`. Este endereço deve corresponder ao endereço definido no SDK do X-Ray.

        Se você omitir esse campo, o padrão de `127.0.0.1:2000` será usado.
  + `otlp`: opcional. Especifica que você deseja coletar rastreamentos do SDK do OpenTelemetry. Para obter mais informações sobre os campos que você pode usar nesta seção, consulte [Coletar métricas e rastreamentos com o OpenTelemetry](CloudWatch-Agent-OpenTelemetry-metrics.md). Para obter mais informações sobre o AWS Distro for OpenTelemetry, consulte [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/). Para obter mais informações sobre o AWS Distro para SDKs do OpenTelemetry, consulte a [Introdução](https://aws-otel.github.io/docs/introduction).

    A seção pode incluir os seguintes campos:
    + `grpc_endpoint`: opcional. Especifica o endereço que o agente do CloudWatch deve usar para escutar rastreamentos de OpenTelemetry enviados usando chamadas de procedimento remoto gRPC. O formato de é `ip:port`. Esse endereço deve corresponder ao endereço definido para o exportador de gRPC no SDK do OpenTelemetry.

      Se você omitir esse campo, o padrão de `127.0.0.1:4317` será usado.
    + `http_endpoint`: opcional. Especifica o endereço para o agente do CloudWatch usar para escutar rastreamentos de OTLP enviados por HTTP. O formato de é `ip:port`. Esse endereço deve corresponder ao endereço definido para o exportador de HTTP no SDK do OpenTelemetry.

      Se você omitir esse campo, o padrão de `127.0.0.1:4318` será usado.
+ `concurrency`: opcional. Especifica o número máximo de chamadas simultâneas para o X-Ray que podem ser usadas para carregar rastreamentos. O valor padrão é `8`
+ `local_mode`: opcional. Se `true`, o agente não coletará metadados da instância do Amazon EC2. O padrão é `false`
+ `endpoint_override`: opcional. Especifica um endpoint de FIPS ou um link privado a ser usado como o endpoint onde o agente do CloudWatch envia rastreamentos. Especificar esse campo e definir um link privado permite enviar os rastreamentos a um endpoint da Amazon VPC. Para obter mais informações, consulte [O que é a Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)

  O valor de `endpoint_override` deve ser uma string que seja um URL.
+ `region_override`: opcional. Especifica a região a usar para o endpoint do X-Ray. O agente do CloudWatch envia os rastreamentos para o X-Ray na região especificada. Se você omitir esse campo, o agente enviará os rastreamentos para a região onde a instância do Amazon EC2 está localizada.

  Se você especificar uma região aqui, ela terá precedência sobre a configuração do parâmetro `region` na seção `agent` do arquivo de configuração.
+ `proxy_override`: opcional. Especifica o endereço do servidor proxy para o agente do CloudWatch usar ao enviar solicitações para o X-Ray. O protocolo do servidor proxy deve ser especificado como parte desse endereço.
+ `credentials`: especifica um perfil do IAM a ser usado ao enviar rastreamentos para outra conta da AWS. Se especificado, esse campo contém um parâmetro, `role_arn`.
  + `role_arn`: especifica o ARN de um perfil do IAM a ser usado para autenticação ao enviar rastreamentos para outra conta da AWS. Para obter mais informações, consulte [Envio de métricas, logs e rastreamentos a uma conta diferente](CloudWatch-Agent-common-scenarios.md#CloudWatch-Agent-send-to-different-AWS-account). Se especificado aqui, isso substitui o `role_arn` especificado na seção `agent` do arquivo de configuração, se houver.
+ `transit_spans_in_otlp_format`: opcional. Se `true`, envia rastreamentos para o X-Ray no formato OpenTelemetry Protocol, que é compatível com eventos de extensão no Transaction Search. Para obter mais informações, consulte [Adicionar atributos personalizados](CloudWatch-Transaction-Search-add-custom-attributes.md). O padrão é `false`. 

## Arquivo de configuração do atendente do CloudWatch: exemplos completos
<a name="CloudWatch-Agent-Configuration-File-Complete-Example"></a>

A seguir, veja um exemplo de um arquivo de configuração do atendente completo do CloudWatch para um servidor Linux.

Os itens listados nas seções `measurement` para as métricas que você deseja coletar podem especificar o nome completo da métrica, ou apenas a parte do nome da métrica que será acrescentada ao tipo de recurso. Por exemplo, especificar `reads` ou `diskio_reads` na seção `measurement` da seção `diskio` fará com que a métrica `diskio_reads` seja coletada.

Este exemplo inclui as duas maneiras de especificar métricas na seção `measurement`.

```
    {
      "agent": {
        "metrics_collection_interval": 10,
        "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
      },
      "metrics": {
        "namespace": "MyCustomNamespace",
        "metrics_collected": {
          "cpu": {
            "resources": [
              "*"
            ],
            "measurement": [
              {"name": "cpu_usage_idle", "rename": "CPU_USAGE_IDLE", "unit": "Percent"},
              {"name": "cpu_usage_nice", "unit": "Percent"},
              "cpu_usage_guest"
            ],
            "totalcpu": false,
            "metrics_collection_interval": 10,
            "append_dimensions": {
              "customized_dimension_key_1": "customized_dimension_value_1",
              "customized_dimension_key_2": "customized_dimension_value_2"
            }
          },
          "disk": {
            "resources": [
              "/",
              "/tmp"
            ],
            "measurement": [
              {"name": "free", "rename": "DISK_FREE", "unit": "Gigabytes"},
              "total",
              "used"
            ],
             "ignore_file_system_types": [
              "sysfs", "devtmpfs"
            ],
            "metrics_collection_interval": 60,
            "append_dimensions": {
              "customized_dimension_key_3": "customized_dimension_value_3",
              "customized_dimension_key_4": "customized_dimension_value_4"
            }
          },
          "diskio": {
            "resources": [
              "*"
            ],
            "measurement": [
              "reads",
              "writes",
              "read_time",
              "write_time",
              "io_time"
            ],
            "metrics_collection_interval": 60
          },
          "swap": {
            "measurement": [
              "swap_used",
              "swap_free",
              "swap_used_percent"
            ]
          },
          "mem": {
            "measurement": [
              "mem_used",
              "mem_cached",
              "mem_total"
            ],
            "metrics_collection_interval": 1
          },
          "net": {
            "resources": [
              "eth0"
            ],
            "measurement": [
              "bytes_sent",
              "bytes_recv",
              "drop_in",
              "drop_out"
            ]
          },
          "netstat": {
            "measurement": [
              "tcp_established",
              "tcp_syn_sent",
              "tcp_close"
            ],
            "metrics_collection_interval": 60
          },
          "processes": {
            "measurement": [
              "running",
              "sleeping",
              "dead"
            ]
          }
        },
        "append_dimensions": {
          "ImageId": "${aws:ImageId}",
          "InstanceId": "${aws:InstanceId}",
          "InstanceType": "${aws:InstanceType}",
          "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
        },
        "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]],
        "force_flush_interval" : 30
      },
      "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",
                "log_stream_name": "amazon-cloudwatch-agent.log",
                "timezone": "UTC"
              },
              {
                "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/test.log",
                "log_group_name": "test.log",
                "log_stream_name": "test.log",
                "timezone": "Local"
              }
            ]
          }
        },
        "log_stream_name": "my_log_stream_name",
        "force_flush_interval" : 15,
        "metrics_collected": {
           "kubernetes": {
                "enhanced_container_insights": true
      }
    }
  }
}
```

A seguir, temos um exemplo de arquivo de configuração do atendente completo do CloudWatch para um servidor que executa o Windows Server.

```
{
      "agent": {
        "metrics_collection_interval": 60,
        "logfile": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log"
      },
      "metrics": {
        "namespace": "MyCustomNamespace",
        "metrics_collected": {
          "Processor": {
            "measurement": [
              {"name": "% Idle Time", "rename": "CPU_IDLE", "unit": "Percent"},
              "% Interrupt Time",
              "% User Time",
              "% Processor Time"
            ],
            "resources": [
              "*"
            ],
            "append_dimensions": {
              "customized_dimension_key_1": "customized_dimension_value_1",
              "customized_dimension_key_2": "customized_dimension_value_2"
            }
          },
          "LogicalDisk": {
            "measurement": [
              {"name": "% Idle Time", "unit": "Percent"},
              {"name": "% Disk Read Time", "rename": "DISK_READ"},
              "% Disk Write Time"
            ],
            "resources": [
              "*"
            ]
          },
          "customizedObjectName": {
            "metrics_collection_interval": 60,
            "customizedCounterName": [
              "metric1",
              "metric2"
            ],
            "resources": [
              "customizedInstances"
            ]
          },
          "Memory": {
            "metrics_collection_interval": 5,
            "measurement": [
              "Available Bytes",
              "Cache Faults/sec",
              "Page Faults/sec",
              "Pages/sec"
            ]
          },
          "Network Interface": {
            "metrics_collection_interval": 5,
            "measurement": [
              "Bytes Received/sec",
              "Bytes Sent/sec",
              "Packets Received/sec",
              "Packets Sent/sec"
            ],
            "resources": [
              "*"
            ],
            "append_dimensions": {
              "customized_dimension_key_3": "customized_dimension_value_3"
            }
          },
          "System": {
            "measurement": [
              "Context Switches/sec",
              "System Calls/sec",
              "Processor Queue Length"
            ]
          }
        },
        "append_dimensions": {
          "ImageId": "${aws:ImageId}",
          "InstanceId": "${aws:InstanceId}",
          "InstanceType": "${aws:InstanceType}",
          "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
        },
        "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]]
      },
      "logs": {
        "logs_collected": {
          "files": {
            "collect_list": [
              {
                "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log",
                "log_group_name": "amazon-cloudwatch-agent.log",
                "timezone": "UTC"
              },
              {
                "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\test.log",
                "log_group_name": "test.log",
                "timezone": "Local"
              }
            ]
          },
          "windows_events": {
            "collect_list": [
              {
                "event_name": "System",
                "event_levels": [
                  "INFORMATION",
                  "ERROR"
                ],
                "log_group_name": "System",
                "log_stream_name": "System",
                "event_format": "xml"
              },
              {
                "event_name": "CustomizedName",
                "event_levels": [
                  "WARNING",
                  "ERROR"
                ],
                "log_group_name": "CustomizedLogGroup",
                "log_stream_name": "CustomizedLogStream",
                "event_format": "xml"
              }
            ]
          }
        },
        "log_stream_name": "example_log_stream_name"
      }
    }
```

## Salvar o arquivo de configuração do atendente do CloudWatch manualmente
<a name="Saving-Agent-Configuration-File"></a>

Se criar ou editar o arquivo de configuração do atendente do CloudWatch manualmente, você poderá atribuir qualquer nome a ele. Depois de criar o arquivo, copie-o em outros servidores em que você deseja executar o atendente.

## Carregar o arquivo de configuração do atendente do CloudWatch no Systems Manager Parameter Store
<a name="Upload-CloudWatch-Agent-Configuration-To-Parameter-Store"></a>

Se você planeja usar o SSM Agent para instalar o atendente do CloudWatch em servidores, depois de editar manualmente o arquivo de configuração do atendente do CloudWatch, carregue-o para o Systems Manager Parameter Store. Para fazer isso, use o comando `put-parameter` do Systems Manager.

Para poder armazenar o arquivo no Parameter Store, você deve usar uma função do IAM com permissões suficientes. 

Use o comando a seguir, em que o *nome do parâmetro* é o nome a ser usado para esse arquivo no Parameter Store e *configuration\$1file\$1pathname* é o caminho e o nome do arquivo de configuração que você editou.

```
aws ssm put-parameter --name "parameter name" --type "String" --value file://configuration_file_pathname
```

# Habilitar o CloudWatch Application Signals
<a name="CloudWatch-Agent-Application_Signals"></a>

Use o CloudWatch Application Signals para instrumentar as aplicações de forma automática na AWS para que você possa acompanhar a performance das aplicações em relação aos seus objetivos de negócios. O Application Signals fornece uma visualização unificada e centrada em aplicações para as aplicações em Java, as dependências e as bordas. Para obter mais informações, consulte [Application Signals](CloudWatch-Application-Monitoring-Sections.md).

O CloudWatch Application Signals utiliza o agente do CloudWatch para receber métricas e rastreamentos das aplicações instrumentadas de forma automática, aplicar regras para reduzir a alta cardinalidade, como opção, e, em seguida, publicar a telemetria processada no CloudWatch. É possível fornecer uma configuração personalizada ao agente do CloudWatch, especificamente para o Application Signals, ao usar o arquivo de configuração do agente. Para começar, a existência de uma seção `application_signals` na seção `metrics_collected` dentro da seção `logs` do arquivo de configuração do agente especifica que o agente do CloudWatch receberá métricas das aplicações instrumentadas de forma automática. De maneira semelhante, a existência de uma seção `application_signals` na seção `traces_collected` dentro da seção `traces` do arquivo de configuração do agente especifica que o agente do CloudWatch está habilitado para receber rastreamentos das aplicações instrumentadas de forma automática. Além disso, como opção, é possível aprovar as regras de configuração personalizadas para reduzir a publicação de telemetria de alta cardinalidade, conforme descrito nesta seção.
+ Para os clusters do Amazon EKS, quando você instala o complemento [Amazon CloudWatch Observability](install-CloudWatch-Observability-EKS-addon.md) do EKS, por padrão, o agente do CloudWatch é habilitado para receber métricas e rastreamentos das aplicações instrumentadas de forma automática. Caso deseje, opcionalmente, aprovar regras de configuração personalizadas, você poderá fazê-lo ao aprovar uma configuração do agente personalizada para o complemento do Amazon EKS ao criá-lo ou atualizá-lo usando a configuração adicional, conforme descrito em [(Opcional) Configuração adicional](install-CloudWatch-Observability-EKS-addon.md#install-CloudWatch-Observability-EKS-addon-configuration).
+ Para o RedHat OpenShift na AWS (ROSA), quando você instala o operador do agente do CloudWatch usando charts do Helm, o agente do CloudWatch é habilitado por padrão para receber métricas e rastreamentos das suas aplicações automaticamente instrumentadas. Se desejar, você pode opcionalmente fornecer regras de configuração personalizadas ao transmitir uma configuração personalizada do agente por meio do chart do Helm, conforme descrito em [(Opcional) Configuração adicional](install-CloudWatch-Observability-EKS-addon.md#install-CloudWatch-Observability-EKS-addon-configuration).
+ Para as outras plataformas compatíveis, incluindo o Amazon EC2, é necessário iniciar o agente do CloudWatch com uma configuração do agente que habilite o Application Signals ao especificar as seções `application_signals` e, opcionalmente, quaisquer regras de configuração personalizadas, conforme descrito posteriormente nesta seção.

Veja a seguir uma visão geral dos campos que estão relacionados ao CloudWatch Application Signals no arquivo de configuração do agente do CloudWatch.
+ `logs`
  + `metrics_collected`: este campo pode conter seções que especificam que o agente deve coletar logs para habilitar casos de uso, como o CloudWatch Application Signals e o Container Insights, com uma observabilidade aprimorada para o Amazon EKS.
**nota**  
Anteriormente, essa seção também era usada para especificar que o agente deveria coletar logs que estivessem no formato de métrica incorporada. Essas configurações não são mais necessárias.
    + `application_signals` (Opcional) Especifica que você deseja habilitar que o CloudWatch Application Signals receba métricas das aplicações instrumentadas de forma automática para viabilizar o CloudWatch Application Signals.
      + `rules` (Opcional) Uma matriz de regras para selecionar condicionalmente as métricas e os rastreamentos e aplicar ações para tratar cenários de alta cardinalidade. Cada regra pode conter os seguintes campos:
        + `rule_name` (Opcional) O nome da regra.
        + `selectors` (Opcional) Uma matriz de agentes de correspondências de dimensão para as métricas e para os rastreamentos. Cada seletor deve fornecer os seguintes campos:
          + `dimension`: obrigatório, se `selectors` não for um campo vazio. Esse campo especifica a dimensão para as métricas e para os rastreamentos a serem usados ​​como filtros.
          + `match`: obrigatório, se `selectors` não for um campo vazio. Um padrão curinga usado para realizar a correspondência de valores da dimensão especificada.
        + `action` (Opcional) A ação a ser aplicada às métricas e aos rastreamentos que correspondem aos seletores especificados. O valor de `action` deve ser uma das seguintes palavras-chave:
          + `keep`: especifica somente o envio de métricas e de rastreamentos para o CloudWatch, se eles forem correspondidos pelos `selectors`.
          + `drop`: especifica o descarte da métrica e dos rastreamentos que correspondem aos `selectors`.
          + `replace`: especifica a substituição das dimensões das métricas e dos rastreamentos que correspondem aos `selectors`. A substituição ocorre de acordo com a seção `replacements`.
        + `replacements` Necessário se `action` for `replace`. Uma matriz de pares de dimensões e valores que serão aplicados às métricas e aos rastreamentos que correspondem aos `selectors` especificados quando a `action` for `replace`. Cada substituição deve fornecer os seguintes campos:
          + `target_dimension`: obrigatório, se `replacements` não for um campo vazio. Especifica a dimensão que precisa ser substituída.
          + `value`: obrigatório, se `replacements` não for um campo vazio. O valor que substituirá o valor original por `target_dimension`.
      + `limiter` (Opcional) Use esta seção para limitar quantas métricas e dimensões o Application Signals enviará ao CloudWatch com a finalidade de otimizar seus custos.
        + `disabled` (Opcional) Se `true`, o recurso de limitação de métricas estará desabilitado. O padrão é `false`
        + `drop_threshold` (Opcional) O número máximo de métricas distintas por serviço em um intervalo de rotação que podem ser exportadas por um agente do CloudWatch. O padrão é 500.
        + `rotation_interval` (Opcional) O intervalo no qual o limitador redefine os registros de métricas para contagem de distinção. O intervalo é expresso como uma string com uma sequência de números e um sufixo de unidade. As frações são compatíveis. Os sufixos das unidades com suporte são `s`, `m`, `h`, `ms`, `us` e `ns`. O padrão é `1h` para uma hora.
        + `log_dropped_metrics` (Opcional) Especifica se o agente deve gravar os registros em log nos logs do agente do CloudWatch quando as métricas do Application Signals são descartadas. O padrão é `false`.
**nota**  
Para ativar esse registro log, o parâmetro `debug` na seção `agent` também deve ser configurado como `true`.
+ `traces`
  + `traces_collected`
    + `application_signals`: opcional. Especifique isso para habilitar que o agente do CloudWatch receba rastreamentos das aplicações instrumentadas de forma automática para viabilizar o CloudWatch Application Signals.

**nota**  
Embora as regras `application_signals` personalizadas sejam especificadas na seção `metrics_collected`, que está contida na seção `logs`, elas também se aplicam de forma implícita à seção `traces_collected`. O mesmo conjunto de regras se aplicará às métricas e aos rastreamentos.

Quando existem múltiplas regras com ações diferentes, elas se aplicam na seguinte sequência: `keep`, `drop` e `replace`.

Veja a seguir um exemplo de um arquivo de configuração completo para o agente do CloudWatch que aplica as regras personalizadas.

```
{
  "logs": {
    "metrics_collected": {
      "application_signals": {
        "rules": [
          {
            "rule_name": "keep01",
            "selectors": [
              {
                "dimension": "Service",
                "match": "pet-clinic-frontend"
              },
              {
                "dimension": "RemoteService",
                "match": "customers-service"
              }
            ],
            "action": "keep"
          },
          {
            "rule_name": "drop01",
            "selectors": [
              {
                "dimension": "Operation",
                "match": "GET /api/customer/owners/*"
              }
            ],
            "action": "drop"
          },
          {
            "rule_name": "replace01",
            "selectors": [
              {
                "dimension": "Operation",
                "match": "PUT /api/customer/owners/*/pets/*"
              },
              {
                "dimension": "RemoteOperation",
                "match": "PUT /owners"
              }
            ],
            "replacements": [
              {
                "target_dimension": "Operation",
                "value": "PUT /api/customer/owners/{ownerId}/pets{petId}"
              }
            ],
            "action": "replace"
          }
        ]
      }
    }
  },
  "traces": {
    "traces_collected": {
      "application_signals": {}
    }
  }
}
```

Para o arquivo de configuração no exemplo anterior, as `rules` são processadas da seguinte forma:

1. A regra `keep01` garante que quaisquer métricas e rastreamentos com a dimensão `Service` como `pet-clinic-frontend` e a dimensão `RemoteService` como `customers-service` sejam mantidos.

1. Para as métricas e os rastreamentos processados após a aplicação de `keep01`, a regra `drop01` garante que as métricas e os rastreamentos com a dimensão `Operation` como `GET /api/customer/owners/*` sejam descartados.

1. Para as métricas e os rastreamentos processados após a aplicação de `drop01`, a regra `replace01` atualiza as métricas e os rastreamentos que têm a dimensão `Operation` como `PUT /api/customer/owners/*/pets/*` e a dimensão `RemoteOperation` como `PUT /owners`, de modo que a dimensão `Operation` passe a ser substituída por `PUT /api/customer/owners/{ownerId}/pets{petId}`.

Veja a seguir um exemplo completo de um arquivo de configuração do CloudWatch que gerencia a cardinalidade no Application Signals ao alterar o limite de métricas para 100, ao habilitar o registro em log de métricas descartadas e ao definir o intervalo de rotação para duas horas.

```
{
    "logs": {
        "metrics_collected": {
            "application_signals": {
                "limiter": {
                    "disabled": false,
                    "drop_threshold": 100,
                    "rotation_interval": "2h",
                    "log_dropped_metrics": true
                }
            }
        },
        "traces": {
            "traces_collected": {
                "application_signals": {}
            }
        }
    }
}
```

# Coletar métricas de performance da rede
<a name="CloudWatch-Agent-network-performance"></a>

Instâncias do EC2 em execução no Linux que usam o Elastic Network Adapter (ENA) publicam métricas de performance da rede. A versão 1.246396.0 e posteriores do atendente do CloudWatch permitem importar essas métricas de performance de rede para o CloudWatch. Quando você importa essas métricas de performance de rede para o CloudWatch, elas são cobradas como métricas personalizadas do CloudWatch.

Para obter mais informações sobre o driver do ENA, consulte [Habilitar redes avançadas com o Elastic Network Adapter (ENA) em instâncias do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) e [Habilitar redes avançadas com o Elastic Network Adapter (ENA) em instâncias do Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking-ena.html).

A forma de configurar a coleção de métricas de performance de redes é diferente nos servidores Linux e Windows.

A tabela a seguir lista essas métricas de performance de rede habilitadas pelo adaptador ENA. Quando o atendente do CloudWatch importa essas métricas para o CloudWatch a partir de instâncias do Linux, ele inroduz `ethtool_` no início de cada um desses nomes da métrica.


| Métrica | Descrição | 
| --- | --- | 
|  Nome em servidores Linux: `bw_in_allowance_exceeded` Nome em servidores Windows: `Aggregate inbound BW allowance exceeded`  |  O número de pacotes que foram colocados em fila e/ou descartados devido ao fato de que a largura de banda de entrada agregada excedeu o limite máximo para a instância. Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](#CloudWatch-Agent-network-performance) Unidade: nenhuma  | 
|   Nome em servidores Linux: `bw_out_allowance_exceeded` Nome em servidores Windows: `Aggregate outbound BW allowance exceeded` |  Número de pacotes na fila e/ou descartados porque a largura de banda agregada de saída excedeu o máximo para a instância. Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](#CloudWatch-Agent-network-performance) Unidade: nenhuma  | 
|  Nome em servidores Linux: :`conntrack_allowance_available` Nome em servidores Windows: `Available connection tracking allowance` |  Relata o número de conexões rastreadas que podem ser estabelecidas pela instância antes de atingir a cota de conexões rastreadas desse tipo de instância. Esta métrica está disponível somente em instâncias do EC2 baseadas em Nitro usando o driver Linux para o Adaptador de Rede Elástica (ENA) a partir da versão 2.8.1 e em computadores usando o driver do Windows para o Adaptador de Rede Elástica (ENA) a partir da versão 2.6.0. Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](#CloudWatch-Agent-network-performance) Unidade: nenhuma  | 
|  Nome em servidores Linux: :`ena_srd_mode` Nome em servidores Windows: `ena srd mode` |  Descreve quais recursos do ENA Express estão habilitados. Para obter mais informações sobre o ENA Express, consulte [Melhorar a performance da rede com o ENA Express em instâncias Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-express.html). Os valores são os seguintes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-network-performance.html)  | 
|  Nome em servidores Linux: :`ena_srd_eligible_tx_pkts` Nome em servidores Windows: `ena srd eligible tx pkts` |  O número de pacotes de rede enviados em um determinado período que atendem aos requisitos de elegibilidade do Scalable Reliable Datagram (SRD) da AWS, como se segue: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-network-performance.html)  | 
|  Nome em servidores Linux: :`ena_srd_tx_pkts` Nome em servidores Windows: `ena srd tx pkts` |  O número de pacotes de SRD transmitidos em um determinado período.  | 
|  Nome em servidores Linux: :`ena_srd_rx_pkts` Nome em servidores Windows: `ena srd rx pkts` |  O número de pacotes de SRD recebidos em um determinado período.  | 
|  Nome em servidores Linux: :`ena_srd_resource_utilization` Nome em servidores Windows: `ena srd resource utilization` |  A porcentagem da utilização da memória máxima permitida para conexões por SRD simultâneas que a instância consumiu.  | 
|  Nome em servidores Linux: `linklocal_allowance_exceeded` Nome em servidores Windows: `Link local packet rate allowance exceeded`  |  Número de pacotes descartados porque o PPS do tráfego para os serviços de proxy local excedeu o máximo para a interface da rede. Isso afeta o tráfego para o serviço de DNS, o serviço de metadados de instância e o Serviço de Sincronização Temporal da Amazon, mas não afeta o tráfego para resolvedores personalizados de DNS. Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](#CloudWatch-Agent-network-performance) Unidade: nenhuma  | 
|  Nome em servidores Linux: `pps_allowance_exceeded` Nome em servidores Windows: `PPS allowance exceeded` |  Número de pacotes na fila e/ou descartados porque o PPS bidirecional excedeu o máximo para a instância.  Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](#CloudWatch-Agent-network-performance) Unidade: nenhuma  | 

## Configuração do Linux
<a name="CloudWatch-Agent-network-performance-Linux"></a>

Em servidores Linux, o *plugin ethtool* permite importar as métricas de performance de rede para o CloudWatch.

O ethtool é um utilitário Linux padrão que pode coletar estatísticas sobre dispositivos Ethernet em servidores Linux. As estatísticas coletadas dependem do dispositivo de rede e do driver. Exemplos dessas estatísticas incluem `tx_cnt`, `rx_bytes`, `tx_errors` e `align_errors`. Ao usar o plugin ethtool com o atendente do CloudWatch, também é possível importar essas estatísticas para o CloudWatch, juntamente com as métricas de performance de rede do EC2 listadas anteriormente nesta seção.

**dica**  
Para encontrar as estatísticas disponíveis em nosso sistema operacional e dispositivo de rede, use o comando `ethtool –S`.

Quando o atendente do CloudWatch importa métricas para o CloudWatch, ele adiciona um prefixo `ethtool_` para os nomes de todas as métricas importadas. Assim, a estatística ethtool padrão `rx_bytes` é chamada `ethtool_rx_bytes` no CloudWatch, e a métrica de performance de rede do EC2 `bw_in_allowance_exceeded` é chamado `ethtool_bw_in_allowance_exceeded` no CloudWatch.

Em servidores Linux, para importar métricas do ethtool, adicione uma seção `ethtool` à seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. A seção `ethtool` pode incluir as seguintes subseções:
+ **interface\$1include**: incluir essa seção faz com que o atendente colete métricas somente das interfaces cujo nome está listado nessa seção. Se você omitir essa seção, as métricas serão coletadas de todas as interfaces ethernet que não estão listadas em `interface_exclude`.

  A interface ethernet padrão é `eth0`.
+ **interface\$1exclude**: se você incluir essa seção, liste as interfaces ethernet cujas métricas não deseja coletar.

  O plugin ethtool sempre ignora interfaces de loopback.
+ **metrics\$1include**: essa seção lista as métricas a serem importadas para o CloudWatch. Pode incluir estatísticas padrão coletadas pelo ethtool e métricas de rede de alta resolução do Amazon EC2.

O exemplo a seguir exibe parte do arquivo de configuração do atendente do CloudWatch. Essa configuração coleta as métricas padrão do ethtool `rx_packets` e `tx_packets`, e as métricas de performance de rede do Amazon EC2 apenas da interface `eth1`.

Para obter mais informações sobre o arquivo de configuração do atendente do CloudWatch, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

```
{
"metrics": {
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "ethtool": {
        "interface_include": [
          "eth1"
        ],
        "metrics_include": [
          "bw_in_allowance_exceeded",
          "bw_out_allowance_exceeded",
          "conntrack_allowance_exceeded",
          "linklocal_allowance_exceeded",
          "pps_allowance_exceeded"
         ]
      }
   }
}
}
```

## Configuração do Windows
<a name="CloudWatch-Agent-network-performance-Windows"></a>

Nos servidores Windows, as métricas de performance da rede estão disponíveis por meio dos contadores de performance do Windows, dos quais o agente CloudWatch já coleta métricas. Assim sendo, você não precisa de um plug-in para coletar essas métricas dos servidores Windows.

Veja a seguir um exemplo de arquivo de configuração para coletar métricas de performance de rede do Windows. Para obter mais informações sobre como editar as configurações no arquivo de configuração do agente do CloudWatch, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

```
{
    "metrics": {
        "append_dimensions": {
            "InstanceId": "${aws:InstanceId}"
        },
        "metrics_collected": {
            "ENA Packets Shaping": {
                "measurement": [
                    "Aggregate inbound BW allowance exceeded",
                    "Aggregate outbound BW allowance exceeded",
                    "Connection tracking allowance exceeded",
                    "Link local packet rate allowance exceeded",
                    "PPS allowance exceeded"
                ],
                "metrics_collection_interval": 60,
                "resources": [
                    "*"
                ]
            }
        }
    }
}
```

## VIsualizar métricas de performance da rede
<a name="CloudWatch-view-ENA-metrics"></a>

Depois de importar métricas de performance de rede para o CloudWatch, é possível visualizar essas métricas como gráficos de séries temporais e criar alarmes que podem observar essas métricas e notificar você, se elas violarem um limite especificado. O procedimento a seguir mostra como visualizar métricas do ethtool como um gráfico de séries temporais. Para obter mais informações sobre configuração de alarmes, consulte [Usar alarmes do Amazon CloudWatch](CloudWatch_Alarms.md).

Como todas essas métricas são contadores agregados, é possível usar funções de matemática métrica do CloudWatch, como `RATE(METRICS())`, para calcular a taxa dessas métricas em gráficos ou usá-las para definir alarmes. Para mais informações sobre funções matemáticas de métrica, consulte [Uso de expressões matemáticas com as métricas do CloudWatch](using-metric-math.md).

**Para visualizar métricas de performance de rede no console do CloudWatch**

1. Abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, selecione **Métricas**.

1. Escolha o namespace para as métricas coletadas pelo atendente. Por padrão, é **CWAgent**, mas você pode ter especificado um namespace diferente no arquivo de configuração do atendente do CloudWatch.

1. Escolha uma dimensão de métrica; por exemplo, **Per-Instance Metrics** (Métricas por instância).

1. A guia **All metrics** (Todas as métricas) exibe todas as métricas dessa dimensão no namespace. Você pode fazer o seguinte:

   1. Para criar um gráfico de uma métrica, marque a caixa de seleção ao lado da métrica. Para selecionar todas as métricas, marque a caixa de seleção na linha de cabeçalho da tabela.

   1. Para classificar a tabela, use o cabeçalho da coluna.

   1. Para filtrar por recurso, escolha o ID do recurso e **Add to search (Adicionar à pesquisa)**.

   1. Para filtrar por métrica, escolha o nome da métrica e **Add to search (Adicionar à pesquisa)**.

1. (Opcional) Para adicionar esse gráfico a um painel do CloudWatch, escolha **Actions** (Ações) e **Add to dashboard** (Adicionar ao painel).

# Coletar métricas do driver do Amazon EBS NVMe
<a name="Container-Insights-metrics-EBS-Collect"></a>

Para que o agente do CloudWatch colete métricas do driver AWS NVMe para volumes do Amazon EBS anexados a uma instância do Amazon EC2, adicione uma seção `diskio` dentro da seção da `metrics_collected` do arquivo de configuração do agente do CloudWatch.

Além disso, o binário do agente do CloudWatch necessita de permissões `ioctl` para dispositivos do driver NVMe para coletar métricas dos volumes do Amazon EBS anexados.

As seguintes métricas podem ser coletadas. 


| Métrica | Nome da métrica no CloudWatch | Descrição | 
| --- | --- | --- | 
|  `ebs_total_read_ops` |  `diskio_ebs_total_read_ops`  | O número total de operações de leitura concluídas. | 
|  `ebs_total_write_ops` |  `diskio_ebs_total_write_ops`  | O número total de operações de gravação concluídas. | 
|  `ebs_total_read_bytes` |  `diskio_ebs_total_read_bytes`  | O número total de bytes de leitura transferidos. | 
|  `ebs_total_write_bytes` |  `diskio_ebs_total_write_bytes`  | O número total de bytes de gravação transferidos. | 
|  `ebs_total_read_time` |  `diskio_ebs_total_read_time`  | O tempo total gasto, em microssegundos, por todas as operações de leitura concluídas. | 
|  `ebs_total_write_time` |  `diskio_ebs_total_write_time`  | O tempo total gasto, em microssegundos, por todas as operações de gravação concluídas. | 
|  `ebs_volume_performance_exceeded_iops` |  `diskio_ebs_volume_performance_exceeded_iops`  | O tempo total, em microssegundos, em que a demanda de IOPS excedeu a performance das IOPS provisionadas do volume. | 
|  `ebs_volume_performance_exceeded_tp` |  `diskio_ebs_volume_performance_exceeded_tp`  | O tempo total, em microssegundos, em que a demanda de throughput excedeu a performance do throughput provisionado. | 
|  `ebs_ec2_instance_performance_exceeded_iops` |  `diskio_ebs_ec2_instance_performance_exceeded_iops`  | O tempo total, em microssegundos, em que o volume do EBS excedeu a performance máxima de IOPS da instância do Amazon EC2 conectada. | 
|  `ebs_ec2_instance_performance_exceeded_tp` |  `diskio_ebs_ec2_instance_performance_exceeded_tp`  | O tempo total, em microssegundos, em que o volume do EBS excedeu a performance máxima de throughput da instância do Amazon EC2 conectada. | 
|  `ebs_volume_queue_length` |  `diskio_ebs_volume_queue_length`  | O número de solicitações de operação de leitura e gravação aguardando conclusão. | 

# Coletar métricas do driver NVMe do volume de armazenamento de instância do Amazon EC2
<a name="Container-Insights-metrics-instance-store-Collect"></a>

Para que o agente do CloudWatch colete métricas do driver AWS NVMe para volumes de armazenamento de instância anexados a uma instância do Amazon EC2, adicione a seção `diskio` dentro da seção `metrics_collected` do arquivo de configuração do agente do CloudWatch.

Além disso, o binário do agente do CloudWatch precisa de permissões `ioctl` para dispositivos do driver NVMe para coletar métricas dos volumes do armazenamento de instância anexados.

As seguintes métricas podem ser coletadas. 


| Métrica | Nome da métrica no CloudWatch | Descrição | 
| --- | --- | --- | 
|  `instance_store_total_read_ops` |  `diskio_instance_store_total_read_ops`  | O número total de operações de leitura concluídas. | 
|  `instance_store_total_write_ops` |  `diskio_instance_store_total_write_ops`  | O número total de operações de gravação concluídas. | 
|  `instance_store_total_read_bytes` |  `diskio_instance_store_total_read_bytes`  | O número total de bytes de leitura transferidos. | 
|  `instance_store_total_write_bytes` |  `diskio_instance_store_total_write_bytes`  | O número total de bytes de gravação transferidos. | 
|  `instance_store_total_read_time` |  `diskio_instance_store_total_read_time`  | O tempo total gasto, em microssegundos, por todas as operações de leitura concluídas. | 
|  `instance_store_total_write_time` |  `diskio_instance_store_total_write_time`  | O tempo total gasto, em microssegundos, por todas as operações de gravação concluídas. | 
|  `instance_store_performance_exceeded_iops` |  `diskio_instance_store_performance_exceeded_iops`  | O tempo total, em microssegundos, em que a demanda de IOPS excedeu a performance máxima das IOPS do volume. | 
|  `instance_store_performance_exceeded_tp` |  `diskio_instance_store_performance_exceeded_tp`  | O tempo total, em microssegundos, em que a demanda de throughput excedeu a performance máxima de throughput do volume. | 
|  `instance_store_volume_queue_length` |  `diskio_instance_store_volume_queue_length`  | O número de solicitações de operação de leitura e gravação aguardando conclusão. | 

# Colete métricas de GPU NVIDIA
<a name="CloudWatch-Agent-NVIDIA-GPU"></a>

 Você pode usar o atendente do CloudWatch para coletar métricas de GPU NVIDIA de servidores Linux. Para configurar, adicione uma seção `nvidia_gpu` à seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para obter mais informações, consulte [Seção Linux](CloudWatch-Agent-Configuration-File-Details.md#CloudWatch-Agent-Linux-section). 

Além disso, a instância deve ter um driver NVIDIA instalado. Os drivers NVIDIA estão pré-instalados em algumas imagens de máquina da Amazon (AMIs). Caso contrário, é possível instalar o driver manualmente. Para obter mais informações, consulte [Instalação de drivers NVIDIA em instâncias Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-nvidia-driver.html). 

As seguintes métricas podem ser coletadas. Todas essas métricas são coletadas sem uma `Unit` do CloudWatch, mas você pode especificar uma unidade para cada métrica adicionando um parâmetro ao arquivo de configuração do atendente CloudWatch. Para obter mais informações, consulte [Seção Linux](CloudWatch-Agent-Configuration-File-Details.md#CloudWatch-Agent-Linux-section).


| Métrica | Nome da métrica no CloudWatch | Descrição | 
| --- | --- | --- | 
|  `utilization_gpu` |  `nvidia_smi_utilization_gpu` |  A porcentagem de tempo do período amostral anterior durante a qual um ou mais kernals na GPU estavam sendo executados.  | 
|  `temperature_gpu` |  `nvidia_smi_temperature_gpu` |  A temperatura principal da GPU em graus Celsius.  | 
|  `power_draw` |  `nvidia_smi_power_draw` |  O último consumo de energia medido para toda a placa, em watts.  | 
|  `utilization_memory` |  `nvidia_smi_utilization_memory` |  A porcentagem de tempo do período de amostra anterior durante a qual a memória global (dispositivo) estava sendo lida ou gravada.  | 
|  `fan_speed` |  `nvidia_smi_fan_speed` |  A porcentagem da velocidade máxima do ventilador em que o ventilador do dispositivo deve funcionar atualmente.  | 
|  `memory_total` |  `nvidia_smi_memory_total` |  Memória total reportada, em MB.  | 
|  `memory_used` |  `nvidia_smi_memory_used` |  Memória utilizada, em MB.  | 
|  `memory_free` |  `nvidia_smi_memory_free` |  Memória livre, em MB.  | 
|  `pcie_link_gen_current` |  `nvidia_smi_pcie_link_gen_current` |  A geração de links atual.  | 
|  `pcie_link_width_current` |  `nvidia_smi_pcie_link_width_current` |  A largura do link atual.  | 
|  `encoder_stats_session_count` |  `nvidia_smi_encoder_stats_session_count` |  Número atual de sessões de codificador.  | 
|  `encoder_stats_average_fps` |  `nvidia_smi_encoder_stats_average_fps` |  A média móvel dos quadros de codificação por segundo.  | 
|  `encoder_stats_average_latency` |  `nvidia_smi_encoder_stats_average_latency` |  A média móvel da latência de codificação em microssegundos.  | 
|  `clocks_current_graphics` |  `nvidia_smi_clocks_current_graphics` |  A frequência atual do relógio gráfico (sombreador).  | 
|  `clocks_current_sm` |  `nvidia_smi_clocks_current_sm` |  A frequência atual do relógio Streaming Multiprocessor (SM – Multiprocessador de transmissão).  | 
|  `clocks_current_memory` |  `nvidia_smi_clocks_current_memory` |  A frequência atual do relógio de memória.  | 
|  `clocks_current_video` |  `nvidia_smi_clocks_current_video` |  A frequência atual dos relógios de vídeo (codificador e decodificador).  | 

Todas essas métricas são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
|  `index` |  Um identificador exclusivo da GPU neste servidor. Representa o índice NVIDIA Management Library (NVML – Biblioteca de gerenciamento NVIDIA) do dispositivo.  | 
|  `name` |  O tipo de GPU. Por exemplo, `NVIDIA Tesla A100`  | 
|  `arch` |  A arquitetura do servidor.  | 

# Coletar métricas do Java Management Extensions (JMX)
<a name="CloudWatch-Agent-JMX-metrics"></a>

Você pode usar o agente do CloudWatch para coletar métricas do Java Management Extensions (JMX) das aplicações Java.

O agente do CloudWatch é compatível com a coleta dessas métricas nas seguintes versões:
+ JVM 8 e posteriores
+ Kafka 0.8.2.x e posteriores
+ Tomcat 9, 10.1 e 11 (beta)

------
#### [ Amazon EC2 ]

**Para habilitar o JMX na instância da JVM**  
Para que o agente do CloudWatch possa coletar métricas do JMX, a JVM da aplicação deve se vincular a uma porta usando a propriedade `com.sun.management.jmxremote.port` do sistema.

```
java -Dcom.sun.management.jmxremote.port=port-number -jar example.jar
```

Para obter mais informações e outras configurações, consulte a [documentação do JMX](https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html).

------
#### [ Amazon EKS ]

**Para habilitar o JMX nos pods de aplicações Java**  
Ao usar o complemento CloudWatch Observability EKS, você pode gerenciar como as métricas do JMX são habilitadas com anotações. Para obter mais informações, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md). Para habilitar a coleta de métricas do JMX de uma workload, adicione as seguintes anotações ao arquivo de manifesto da workload na seção `PodTemplate`:
+ `instrumentation.opentelemetry.io/inject-java: "true"`
+ Um ou mais itens a seguir:
  + Para métricas da JVM: `cloudwatch.aws.amazon.com/inject-jmx-jvm: "true"`
  + Para métricas do operador do Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka: "true"`
  + Para métricas de consumo do Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka-consumer: "true"`
  + Para métricas de produtores do Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka-producer: "true"`
  + Para métricas do Tomcat: `cloudwatch.aws.amazon.com/inject-jmx-tomcat: "true"`

------

Para começar a coletar métricas do JMX, adicione uma seção `jmx` à seção `metrics_collected` do arquivo de configuração do agente do CloudWatch. A seção `jmx` pode conter os campos a seguir.
+ `jvm`: opcional. Especifica que você deseja recuperar métricas da Java Virtual Machine (JVM) na instância. Para obter mais informações, consulte [Coletar métricas da JVM](#CloudWatch-Agent-JVM-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas da JVM a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Metric** (Métrica) na tabela em [Coletar métricas da JVM](#CloudWatch-Agent-JVM-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka`: opcional. Especifica que você deseja recuperar métricas do operador do Apache Kafka na instância. Para obter mais informações, consulte [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas do operador do Kafka a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Métrica** na primeira tabela em [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka-consumer`: opcional. Especifica que você deseja recuperar métricas dos consumidores do Apache Kafka na instância. Para obter mais informações, consulte [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas do operador do Kafka a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Métrica** na segunda tabela de métricas em [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka-producer`: opcional. Especifica que você deseja recuperar métricas dos produtores do Apache Kafka na instância. Para obter mais informações, consulte [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas do operador do Kafka a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Métrica** na terceira tabela de métricas em [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `tomcat`: opcional. Especifica que você deseja recuperar métricas do Tomcat na instância. Para obter mais informações, consulte [Coleta métricas do Tomcat](#CloudWatch-Agent-Tomcat-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas do Tomcat a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Metric** (Métrica) na tabela em [Coleta métricas do Tomcat](#CloudWatch-Agent-Tomcat-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).

A seção `jmx` também pode incluir o campo `append_dimensions` opcional:
+ `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de processo. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` que é usado para todos os tipos de métricas coletadas pelo atendente.

**Os campos a seguir são apenas para o Amazon EC2.**
+ `endpoint`: o endereço ao qual o cliente JMX se conectar. O formato de é `ip:port`. Se o endpoint não for o localhost, a autenticação por senha e o SSL deverão estar habilitados.
+ `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de processos, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

  Esse valor é especificado em segundos. Por exemplo, a especificação de 10 faz com que as métricas sejam coletadas a cada 10 segundos. Uma configuração de 300 especifica que as métricas sejam coletadas a cada 5 minutos.

  Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 

Se o JMX foi habilitado com autenticação por senha ou SSL para acesso remoto, você pode usar os campos a seguir.
+ `password_file`: opcional. Especifica um arquivo de propriedades Java de chaves para senhas. O arquivo deve ser somente leitura e restrito ao usuário que está executando o agente do CloudWatch. Se a autenticação por senha estiver habilitada, isso exigirá o mesmo par de nome de usuário e senha da entrada no arquivo de senha do JMX fornecido na propriedade `com.sun.management.jmxremote.password.file`. Se o SSL estiver habilitado, ele exigirá entradas para `keystore` e `truststore` e fará a correspondência ao `javax.net.ssl.keyStorePassword` e `javax.net.ssl.trustStorePassword`, respectivamente.
+ `username`: se a autenticação por senha estiver habilitada, especifique o nome de usuário que corresponde ao nome de usuário no arquivo de senha fornecido.
+ `keystore_path`: se o SSL estiver habilitado, especifique o caminho completo para o keystore JAVA, que consiste em uma chave privada e um certificado para a chave pública. Corresponde à propriedade `javax.net.ssl.keyStore`.
+ `keystore_type`: se o SSL estiver habilitado, especifique o tipo de keystore que está sendo usado. Corresponde à propriedade `javax.net.ssl.keyStoreType`.
+ `truststore_path`: se o SSL estiver habilitado, especifique o caminho completo para o truststore Java, que deve conter o certificado público do servidor JMX remoto. Corresponde à propriedade `javax.net.ssl.trustStore`.
+ `truststore_type`: se o SSL estiver habilitado, especifique o tipo de truststore que está sendo usado. Corresponde à propriedade `javax.net.ssl.trustStoreType`.
+ `remote_profile`: opcional. Os perfis remotos compatíveis do JMX são TLS em combinação com os perfis do SASL: `SASL/PLAIN`, `SASL/DIGEST-MD5` e `SASL/CRAM-MD5`. Deve ser um dos seguintes: `SASL/PLAIN`, `SASL/DIGEST-MD5`, `SASL/CRAM-MD5`, `TLS SASL/PLAIN`, `TLS SASL/DIGEST-MD5` ou `TLS SASL/CRAM-MD5`
+ `realm`: opcional. O realm, conforme exigido pelo perfil `SASL/DIGEST-MD5` remoto.
+ `registry_ssl_enabled`: se a autenticação por registro RMI estiver habilitada. Defina como true se a JVM tiver sido configurada com `com.sun.management.jmxremote.registry.ssl=true`.
+ `insecure` Defina como `true` para cancelar a validação necessária se o agente estiver configurado para um endpoint não localhost.

A seguir, veja um exemplo da seção `jmx` do arquivo de configuração do agente do CloudWatch.

```
{
  "metrics": {
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "remotehost:1314",
          "jvm": {
            "measurement": [
              "jvm.memory.heap.init",
              "jvm.memory.nonheap.used"
            ]
          },
          "kafka": {
            "measurement": [
              "kafka.request.count",
              {
                "name": "kafka.message.count",
                "rename": "KAFKA_MESSAGE_COUNT",
                "unit": "Count"
              }
            ]
          },
          "username": "cwagent",
          "keystore_path": "/path/to/keystore",
          "keystore_type": "PKCS12",
          "truststore_path": "/path/to/truststore",
          "truststore_type": "PKCS12"
        },
        {
          "endpoint": "localhost:1315",
          "kafka-producer": {
            "measurement": [
              "kafka.producer.request-rate"
            ]
          },
          "append_dimensions": {
            "service.name": "kafka/1"
          }
        }
      ]
    }
  }
}
```

## Coletar métricas da JVM
<a name="CloudWatch-Agent-JVM-metrics"></a>

Você pode usar o agente do CloudWatch para coletar métricas da Java Virtual Machine (JVM). Para configurar, adicione uma seção `jvm` à seção `jmx` do arquivo de configuração do atendente do CloudWatch.

As seguintes métricas podem ser coletadas.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `jvm.classes.loaded` | [DEFAULT] |  O número total de classes carregadas. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.gc.collections.count` | [DEFAULT], `name` |  O número total de coletas de resíduos que ocorreram. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.gc.collections.elapsed` | [DEFAULT], `name` |  O tempo decorrido aproximado da coleta de resíduos acumulada. **Unidade:** milissegundos **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.memory.heap.init` | [DEFAULT] |  A quantidade inicial de memória que a JVM solicita do sistema operacional para o heap. **Unidade:** bytes **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.memory.heap.max` |  [DEFAULT]  |  A quantidade máxima de memória que pode ser usada para o heap. **Unidade:** bytes **Estatísticas significativas:** Máximo  | 
|  `jvm.memory.heap.used` | [DEFAULT] |  O uso atual da memória do heap. **Unidade:** bytes **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.memory.heap.committed` | [DEFAULT] |  A quantidade de memória que é garantida como disponível para o heap. **Unidade:** bytes **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.memory.nonheap.init` | [DEFAULT] |  A quantidade inicial de memória que a JVM solicita do sistema operacional para fins não relacionados ao heap. **Unidade:** bytes **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.memory.nonheap.max` | [DEFAULT] |  A quantidade máxima de memória que pode ser usada para fins não relacionados ao heap. **Unidade:** bytes **Estatísticas significativas:** Máximo  | 
|  `jvm.memory.nonheap.used` | [DEFAULT] |  O uso atual de memória não heap. **Unidade:** bytes **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.memory.nonheap.committed` | [DEFAULT] |  A quantidade de memória que é garantida como disponível para fins que não relacionados ao heap. **Unidade:** bytes **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `jvm.memory.pool.init` |  [DEFAULT], `name` |  A quantidade inicial de memória que a JVM solicita do sistema operacional para o pool de memória. **Unidade:** bytes **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `jvm.memory.pool.max` |  [DEFAULT], `name` |  A quantidade máxima de memória que pode ser usada para o pool de memória. **Unidade:** bytes **Estatísticas significativas:** Máximo  | 
|  `jvm.memory.pool.used` |  [DEFAULT], `name` |  O uso atual da memória do pool de memória. **Unidade:** bytes **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `jvm.memory.pool.committed` |  [DEFAULT], `name` |  A quantidade de memória que é garantida como disponível para o pool de memória. **Unidade:** bytes **Estatísticas significativas:** mínimo, máximo, média  | 
|  `jvm.threads.count` | [DEFAULT] |  O número atual de threads. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 

As métricas da JVM são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações. No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`.  | 
| `name` | Para as métricas `jvm.gc.collections`, o valor é o nome do coletor de resíduos. Para as métricas `jvm.memory.pool`, o valor é o nome do pool de memória.  | 

## Coletar métricas do Kafka
<a name="CloudWatch-Agent-Kafka-metrics"></a>

Você pode usar o agente do CloudWatch para coletar métricas do Apache Kafka. Para configurar, adicione uma ou mais das subseções a seguir na seção `jmx` do arquivo de configuração do agente do CloudWatch.
+ Use uma seção `kafka` para coletar as métricas do operador do Kafka.
+ Use uma seção `kafka-consumer` para coletar as métricas do consumidor do Kafka.
+ Use uma seção `kafka-producer` para coletar as métricas do produtor do Kafka.

**Métricas do operador do Kafka**

As métricas a seguir podem ser coletadas dos operadores do Kafka.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `kafka.message.count` | [DEFAULT] |  O número de mensagens recebidas pelo operador do Kafka. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.request.count` |  [DEFAULT], `type` |  O número de solicitações recebidas pelo operador do Kafka. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.request.failed` | [DEFAULT], `type` |  O número de solicitações ao operador do Kafka que resultaram em uma falha. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.request.time.total` | [DEFAULT], `type` |  O tempo total que o operador do Kafka levou para atender às solicitações. **Unidade:** milissegundos **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `kafka.request.time.50p` | [DEFAULT], `type` |  O percentil 50 do tempo que o operador do Kafka levou para atender às solicitações. **Unidade:** milissegundos **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `kafka.request.time.99p` | [DEFAULT], `type` |  O percentil 99 do tempo que o operador do Kafka levou para atender às solicitações. **Unidade:** milissegundos **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `kafka.request.time.avg` | [DEFAULT], `type` |  O tempo médio que o operador do Kafka levou para atender às solicitações. **Unidade:** milissegundos **Estatísticas significativas:** Média  | 
|  `kafka.network.io` | [DEFAULT], `state` |  O número de bytes recebidos ou enviados pelo operador do Kafka. **Unidade:** bytes **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `kafka.purgatory.size` | [DEFAULT], `type` |  O número de solicitações que aguardam no purgatório. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.partition.count` | [DEFAULT] |  O número de partições no operador do Kafka. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.partition.offline` | [DEFAULT] |  O número de partições que estão offline. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.partition.under_replicated` | [DEFAULT] |  O número de partições sub-replicadas. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.isr.operation.count` | [DEFAULT], `operation` |  O número de operações de redução e expansão de réplicas sincronizadas. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.max.lag` | [DEFAULT] |  O atraso máximo nas mensagens entre as réplicas seguidoras e líderes. **Unidade:** nenhuma **Estatísticas significativas:** Máximo  | 
|  `kafka.controller.active.count` |  [DEFAULT] |  O número de controladores ativos no operador. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.leader.election.rate` |  [DEFAULT] |  Taxa de eleição do líder. Caso aumente, indica falhas do operador. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.unclean.election.rate` |  [DEFAULT] |  Taxa de eleição do líder indeterminada. Caso aumente, indica falhas do operador. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.request.queue` |  [DEFAULT] |  O tamanho da solicitação da fila. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.logs.flush.time.count`  |  [DEFAULT] |  A contagem de liberação de logs. **Unidade:** milissegundos **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.logs.flush.time.median` |  [DEFAULT] |  O valor do percentil 50 da contagem de liberação de logs. **Unidade:** milissegundos **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.logs.flush.time.99p` |  [DEFAULT] |  O valor do percentil 99 da contagem de liberação de logs. **Unidade:** milissegundos **Estatísticas significativas:** mínimo, máximo, média  | 

As métricas do operador do Kafka são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações. No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`.  | 
| `type` | O tipo da solicitação. Os valores possíveis são `produce`, `fetch`, `fetchconsumer` e `fetchfollower`. | 
| `state` | A direção do tráfego de rede. Os possíveis valores são `in` e `out`. | 
| `operation` | O tipo de operação da réplica sincronizada. Os possíveis valores são `shrink` e `expand`. | 

**Métricas do consumidor do Kafka**

As métricas a seguir podem ser coletadas pelos consumidores do Kafka.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `kafka.consumer.fetch-rate` | [DEFAULT], `client-id` |  O número de solicitações de busca para todos os tópicos por segundo. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.consumer.records-lag-max` |  [DEFAULT], `client-id` |  O número de mensagens que o consumidor está atrasado em relação ao produtor. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.consumer.total.bytes-consumed-rate` |  [DEFAULT], `client-id` |  O número médio de bytes consumidos por segundo para todos os tópicos. **Unidade:** bytes **Estatísticas significativas:** Média  | 
|  `kafka.consumer.total.fetch-size-avg` |  [DEFAULT], `client-id` |  O número de bytes buscados por solicitação para todos os tópicos. **Unidade:** bytes **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `kafka.consumer.total.records-consumed-rate` |  [DEFAULT], `client-id` |  O número médio de registros consumidos por segundo para todos os tópicos. **Unidade:** nenhuma **Estatísticas significativas:** Média  | 
|  `kafka.consumer.bytes-consumed-rate` |  [DEFAULT], `client-id`, `topic` |  O número médio de bytes consumidos por segundo. **Unidade:** bytes **Estatísticas significativas:** Média  | 
|  `kafka.consumer.fetch-size-avg` | [DEFAULT], `client-id`, `topic` |  O número de bytes buscados por solicitação. **Unidade:** bytes **Estatísticas significativas:** mínimo, máximo, média  | 
|  `kafka.consumer.records-consumed-rate` | [DEFAULT], `client-id`, `topic` |  O número médio de registros consumidos por segundo. **Unidade:** nenhuma **Estatísticas significativas:** Média  | 

As métricas do consumidor do Kafka são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações. No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`.  | 
| `client-id` | O ID do cliente. | 
| `topic` | O tópico do Kafka. | 

**Métricas do produtor do Kafka**

As métricas a seguir podem ser coletadas pelos produtores do Kafka.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `kafka.producer.io-wait-time-ns-avg` | [DEFAULT], `client-id` |  O tempo médio que o thread de E/S ficou esperando por um socket pronto para leituras ou gravações. **Unidade:** nenhuma **Estatísticas significativas:** Média  | 
|  `kafka.producer.outgoing-byte-rate` | [DEFAULT], `client-id` |  O número médio de bytes de saída enviados por segundo para todos os servidores. **Unidade:** bytes **Estatísticas significativas:** Média  | 
|  `kafka.producer.request-latency-avg` | [DEFAULT], `client-id` |  A latência média da solicitação. **Unidade:** milissegundos **Estatísticas significativas:** Média  | 
|  `kafka.producer.request-rate` | [DEFAULT], `client-id` |  O número médio de solicitações enviadas por segundo. **Unidade:** nenhuma **Estatísticas significativas:** Média  | 
|  `kafka.producer.response-rate` | [DEFAULT], `client-id` |  O número de respostas recebidas por segundo. **Unidade:** nenhuma **Estatísticas significativas: **Mínimo, Máximo, Média  | 
|  `kafka.producer.byte-rate` | [DEFAULT], `client-id`, `topic` |  O número médio de bytes enviados por segundo para um tópico. **Unidade:** bytes **Estatísticas significativas:** Média  | 
|  `kafka.producer.compression-rate` | [DEFAULT], `client-id`, `topic` |  A taxa média de compactação dos lotes de registros de um tópico. **Unidade:** nenhuma **Estatísticas significativas:** Média  | 
|  `kafka.producer.record-error-rate` | [DEFAULT], `client-id`, `topic` |  O número médio por segundo de envios de registros que resultaram em erros para um tópico. **Unidade:** nenhuma **Estatísticas significativas:** Média  | 
|  `kafka.producer.record-retry-rate` | [DEFAULT], `client-id`, `topic` |  O número médio por segundo de tentativas de envio de registros de um tópico. **Unidade:** nenhuma **Estatísticas significativas:** Média  | 
|  `kafka.producer.record-send-rate` | [DEFAULT], `client-id`, `topic` |  O número médio de registros enviados por segundo para um tópico. **Unidade:** nenhuma **Estatísticas significativas:** Média  | 

As métricas do produtor do Kafka são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações. No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`.  | 
| `client-id` | O ID do cliente. | 
| `topic` | O tópico do Kafka. | 

## Coleta métricas do Tomcat
<a name="CloudWatch-Agent-Tomcat-metrics"></a>

Você pode usar o agente do CloudWatch para coletar métricas do Apache Tomcat. Para configurar, adicione uma seção `tomcat` à seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch.

As seguintes métricas podem ser coletadas.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `tomcat.sessions` | [DEFAULT] |  O número de sessões ativas. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `tomcat.errors`  | [DEFAULT], `proto_handler` |  A quantidade de erros encontrada. **Unidade:** nenhuma **Estatísticas significativas:** mínimo, máximo, média  | 
|  `tomcat.processing_time`  | [DEFAULT], `proto_handler` |  O tempo total de processamento. **Unidade:** milissegundos **Estatísticas significativas: **Mínimo, Máximo, Média   | 
|  `tomcat.traffic`  | [DEFAULT], `proto_handler` |  O número de bytes recebidos e enviados. **Unidade:** bytes **Estatísticas significativas: **Mínimo, Máximo, Média   | 
|  `tomcat.threads`  | [DEFAULT], `proto_handler` |  O número de threads. **Unidade:** nenhuma **Estatísticas significativas: **Mínimo, Máximo, Média   | 
|  `tomcat.max_time`  | [DEFAULT], `proto_handler`, `direction` |  Tempo máximo para processar uma solicitação. **Unidade:** milissegundos **Estatísticas significativas: **Máximo   | 
|  `tomcat.request_count`  | [DEFAULT], `proto_handler` |  O total de solicitações. **Unidade:** nenhuma **Estatísticas significativas: **Mínimo, Máximo, Média   | 

As métricas do Tomcat são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações. No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`.  | 
| `proto_handler` | O `proto_handler` é um identificador para um conector, que é fornecido no formato `<protocol>-<type>-<port>` (por exemplo, `http-nio-8080`). | 
| `direction` | A direção do tráfego. Os possíveis valores são `received` e `sent`.  | 

# Coletar métricas e rastreamentos com o OpenTelemetry
<a name="CloudWatch-Agent-OpenTelemetry-metrics"></a>

 Você pode coletar métricas e rastreamentos das aplicações ou serviços usando o agente do CloudWatch com o OpenTelemetry Protocol (OTLP), que é uma solução de código aberto popular. Você pode usar qualquer SDK do OpenTelemetry para enviar métricas e rastreamentos ao agente do CloudWatch. Para obter mais informações sobre os SDKs do OpenTelemetry disponíveis, consulte [as APIs e os SDKs de linguagem compatível com o OpenTelemetry](https://opentelemetry.io/docs/languages/).

Para coletar métricas e rastreamentos do OpenTelemetry, adicione uma seção `otlp` ao arquivo de configuração do agente do CloudWatch. A seção tem os seguintes campos:
+ `grpc_endpoint`: opcional. Especifica o endereço que o agente do CloudWatch deve usar para receber rastreamentos e métricas do OpenTelemetry enviados usando chamadas de procedimento remoto gRPC. O formato de é `ip:port`. Esse endereço deve corresponder ao endereço definido para o exportador de gRPC no SDK do OpenTelemetry. Se você omitir esse campo, o padrão de `127.0.0.1:4317` será usado.
+ `http_endpoint`: opcional. Especifica o endereço que o agente do CloudWatch deve usar para receber rastreamentos e métricas de do OpenTelemetry enviados por HTTP. O formato de é `ip:port`. Esse endereço deve corresponder ao endereço definido para o exportador de HTTP no SDK do OpenTelemetry. Se você omitir esse campo, o padrão de `127.0.0.1:4318` será usado.
+ `tls`: opcional. Especifica que o servidor deve ser configurado com TLS.
  + `cert_file`: caminho para o certificado TLS a ser usado nas conexões necessárias do TLS.
  + `key_file`: caminho para a chave TLS a ser usada nas conexões necessárias do TLS.

A seção `otlp` pode ser colocada em várias seções no arquivo de configuração do agente do CloudWatch, dependendo de como e para onde você deseja enviar as métricas e os rastreamentos.

**Importante**  
Cada seção `otlp` necessita de um endpoint e uma porta exclusivos. Para obter informações detalhadas sobre como dividir os endpoints de métricas e rastreamentos, consulte [Configuração do OTLP Exporter](https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/), na documentação do OpenTelemetry SDK.

Para enviar métricas para o CloudWatch ou o Amazon Managed Service for Prometheus, adicione a seção `otlp` em `metrics_collected` na seção `metrics`. Para obter mais informações sobre o envio de métricas para destinos diferentes, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md). O exemplo a seguir mostra uma configuração que envia métricas ao CloudWatch:

**nota**  
 Se você estiver executando o agente em ambientes com contêineres e enviando telemetria proveniente de forma externa à rede do contêiner do agente, certifique-se de especificar o endpoint como `0.0.0.0` em vez do endpoint padrão `127.0.0.1`.

```
{
  "metrics": {
    "metrics_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

Para enviar métricas para o Amazon CloudWatch Logs usando o formato de métrica incorporada (EMF), adicione a seção `otlp` em `metrics_collected` na seção `logs`. Isso envia os logs EMF por padrão para o grupo de logs `/aws/cwagent` e um fluxo de logs gerado. As métricas são extraídas no namespace `CWAgent` por padrão. O exemplo a seguir mostra uma configuração que envia métricas de logs EMF ao CloudWatch Logs:

```
{
  "logs": {
    "metrics_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

Para enviar rastreamentos para o AWS X-Ray, adicione a seção `otlp` em `traces_collected` na seção `traces`. O exemplo a seguir mostra uma configuração que envia rastreamentos ao X-Ray:

```
{
  "traces": {
    "traces_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

# Coletar métricas de processo com o plugin procstat
<a name="CloudWatch-Agent-procstat-process-metrics"></a>

 O plugin *procstat* permite coletar métricas de processos individuais. O plug-in é compatível com servidores do Linux e com os que executam versões compatíveis com o Windows Server. Esta seção descreve como configurar o agente do CloudWatch para o plug-in procstat e visualizar as métricas importadas pelo agente do CloudWatch. A seção lista as métricas coletadas pelo plug-in procstat. 

**nota**  
Não há suporte para o plug-in `procstat` com o tipo de inicialização do Fargate em ambientes do Amazon ECS. 

**Topics**
+ [Configuração do agente do CloudWatch para procstat](#CloudWatch-Agent-procstat-configuration)
+ [Métricas coletadas pelo procstat](#CloudWatch-Agent-procstat-process-metrics-collected)
+ [Visualizar métricas de processo importadas pelo atendente do CloudWatch](#CloudWatch-view-procstat-metrics)

## Configuração do agente do CloudWatch para procstat
<a name="CloudWatch-Agent-procstat-configuration"></a>

Para usar o plugin procstat, adicione uma seção `procstat` à seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Existem três maneiras de especificar os processos a serem monitorados. Use apenas um desses métodos, embora possa usar esse método para especificar um ou mais processos a serem monitorados.
+ `pid_file`: seleciona processos pelos nomes dos arquivos de Process Identification Number (PID – Número de identificação do processo) criados. 
+ `exe`: seleciona os processos que tenham nomes de processos correspondentes à string especificada usando regras de correspondência de expressão regular. A correspondência é uma correspondência do tipo “contém”, o que significa que, se você especificar `agent` como o termo a ser correspondido, os processos com nomes como `cloudwatchagent` corresponderão ao termo. Para obter mais informações, consulte [Sintaxe](https://github.com/google/re2/wiki/Syntax).
+ `pattern`: seleciona processos pelas linhas de comando usadas para iniciar os processos. Todos os processos são selecionados que tenham linhas de comando correspondentes à string especificada usando regras de correspondência de expressão regular. Toda a linha de comando é verificada, inclusive opções e parâmetros usados com o comando.

   A correspondência é uma correspondência do tipo “contém”, o que significa que, se você especificar `-c` como o termo a ser correspondido, os processos com parâmetros como `-config` corresponderão ao termo. 

O atendente do CloudWatch só usa um desses métodos, mesmo se você incluir mais de uma das seções acima. Se você especificar mais de uma seção, o atendente do CloudWatch usará a seção `pid_file` se estiver presente. Do contrário, ele usa a seção `exe`.

Em servidores Linux, as strings especificadas em uma seção `exe` ou `pattern` são avaliadas como expressões regulares. Em servidores nos quais o Windows Server esteja em execução, essas strings são avaliadas como consultas WMI. Um exemplo seria `pattern: "%apache%"`. Para obter mais informações, consulte [Operador LIKE](https://docs.microsoft.com/en-us/windows/desktop/WmiSdk/like-operator).

Independentemente do método, inclua um parâmetro `metrics_collection_interval` opcional, que especifica a frequência em segundos para coletar essas métricas. Se você omitir esse parâmetro, o valor padrão de 60 segundos será usado.

Nos exemplos nas seções a seguir, a seção `procstat` é a única seção incluída na seção `metrics_collected` do arquivo de configuração do atendente. Os arquivos de configuração também podem incluir outras seções em `metrics_collected`. Para obter mais informações, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

### Configuração com pid\$1file
<a name="CloudWatch-Agent-procstat-configuration-pidfile"></a>

A seção `procstat` do exemplo a seguir monitora os processos que criam os arquivos PID `example1.pid` e `example2.pid`. As métricas diferentes são coletadas de cada processo. As métricas coletadas do processo que cria `example2.pid` são coletadas a cada 10 segundos, e as métricas coletadas do processo `example1.pid` são coletadas a cada 60 segundos, o valor padrão. 

```
{
    "metrics": {
        "metrics_collected": {
            "procstat": [
                {
                    "pid_file": "/var/run/example1.pid",
                    "measurement": [
                        "cpu_usage",
                        "memory_rss"
                    ]
                },
                {
                    "pid_file": "/var/run/example2.pid",
                    "measurement": [
                        "read_bytes",
                        "read_count",
                        "write_bytes"
                    ],
                    "metrics_collection_interval": 10
                }
            ]
        }
    }
}
```

### Configurar com exe
<a name="CloudWatch-Agent-procstat-configuration-exe"></a>

A seção `procstat` do exemplo a seguir monitora todos os processos com nomes correspondentes às strings `agent` ou `plugin`. As mesmas métricas são coletadas de cada processo. 

```
{
    "metrics": {
        "metrics_collected": {
            "procstat": [
                {
                    "exe": "agent",
                    "measurement": [
                        "cpu_time",
                        "cpu_time_system",
                        "cpu_time_user"
                    ]
                },
                {
                    "exe": "plugin",
                    "measurement": [
                        "cpu_time",
                        "cpu_time_system",
                        "cpu_time_user"
                    ]
                }
            ]
        }
    }
}
```

### Configurar com padrão
<a name="CloudWatch-Agent-procstat-configuration-pattern"></a>

A seção `procstat` do exemplo a seguir monitora todos os processos com linhas de comando correspondentes às strings `config` ou `-c`. As mesmas métricas são coletadas de cada processo. 

```
{
    "metrics": {
        "metrics_collected": {
            "procstat": [
                {
                    "pattern": "config",
                    "measurement": [
                        "rlimit_memory_data_hard",
                        "rlimit_memory_data_soft",
                        "rlimit_memory_stack_hard",
                        "rlimit_memory_stack_soft"
                    ]
                },
                {
                    "pattern": "-c",
                    "measurement": [
                        "rlimit_memory_data_hard",
                        "rlimit_memory_data_soft",
                        "rlimit_memory_stack_hard",
                        "rlimit_memory_stack_soft"
                    ]
                }
            ]
        }
    }
}
```

## Métricas coletadas pelo procstat
<a name="CloudWatch-Agent-procstat-process-metrics-collected"></a>

A tabela a seguir lista as métricas que é possível coletar com o plugin `procstat`

O atendente do CloudWatch adiciona `procstat` ao início dos nomes de métrica a seguir. Há uma sintaxe diferente dependendo de ter sido coletada de um servidor Linux ou de um servidor no qual o Windows Server esteja em execução. Por exemplo, a métrica `cpu_time` é exibida como `procstat_cpu_time` quando coletada do Linux e como `procstat cpu_time` quando coletada do Windows Server.


| Nome da métrica | Disponível em | Descrição | 
| --- | --- | --- | 
|  `cpu_time` |  Linux |  O tempo em que o processo usa a CPU. Essa métrica é medida em centésimos de segundo. Unidade: Contagem  | 
|  `cpu_time_guest` |  Linux |  A quantidade de tempo em que o processo permanece em modo de usuário. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_guest_nice` |  Linux |  A quantidade de tempo em que o processo está sendo executado em um ambiente “nice guest”. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_idle` |  Linux |  A quantidade de tempo em que o processo permanece em modo ocioso. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_iowait` |  Linux |  A quantidade de tempo em que o processo está aguardando a conclusão de operações de entrada/saída. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_irq` |  Linux |  A quantidade de tempo em que o processo está atendendo a interrupções. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_nice` |  Linux |  A quantidade de tempo em que o processo permanece em modo nice. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_soft_irq` |  Linux |  A quantidade de tempo em que o processo está atendendo a interrupções de software. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_steal` |  Linux |  A quantidade de tempo gasto executando em outros sistemas operacionais quando executado em um ambiente virtualizado. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_stolen` |  Linux, Windows Server |  A quantidade de tempo em que o processo está em *tempo roubado*, que é o tempo gasto em outros sistemas operacionais em um ambiente virtualizado. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma  | 
|  `cpu_time_system` |  Linux, Windows Server, macOS |  O tempo em que o processo permanece em modo de sistema. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: Contagem  | 
|  `cpu_time_user` |  Linux, Windows Server, macOS |  O tempo em que o processo permanece em modo de usuário. Essa métrica é medida em centésimos de segundo. Unidade: Contagem  | 
|  `cpu_usage` |  Linux, Windows Server, macOS |  A porcentagem de tempo em que o processo permanece ativo em qualquer capacidade. Unidade: percentual  | 
|  `memory_data` |  Linux, macOS |  A quantidade de memória usada pelo processo em dados. Unidade: bytes  | 
|  `memory_locked` |  Linux, macOS |  A quantidade de memória bloqueada pelo processo. Unidade: bytes  | 
|  `memory_rss` |  Linux, Windows Server, macOS |  A quantidade de memória real (conjunto residente) que o processo está usando. Unidade: bytes  | 
|  `memory_stack` |  Linux, macOS |  A quantidade de memória em pilha usada pelo processo. Unidade: bytes  | 
|  `memory_swap` |  Linux, macOS |  A quantidade de memória swap usada pelo processo. Unidade: bytes  | 
|  `memory_vms` |  Linux, Windows Server, macOS |  A quantidade de memória virtual usada pelo processo. Unidade: bytes  | 
|  `num_fds` |  Linux |  O número de descritores de arquivo abertos por esse processo. Unidade: nenhuma  | 
|  `num_threads` |  Linux, Windows, macOS |  O número de threads neste processo. Unidade: nenhuma  | 
|  `pid` |  Linux, Windows Server, macOS |  Process Identifier (ID – Identificador de processo). Unidade: nenhuma  | 
|  `pid_count` |  Linux, Windows Server, macOS |  O número de IDs de processo associados ao processo. Em servidores Linux e computadores macOC, o nome completo dessa métrica é `procstat_lookup_pid_count` e no Windows Server é `procstat_lookup pid_count`. Unidade: nenhuma  | 
|  `read_bytes` |  Linux, Windows Server |  O número de bytes lidos de discos pelo processo. Unidade: bytes  | 
|  `write_bytes` |  Linux, Windows Server |  O número de bytes gravados em discos pelo processo. Unidade: bytes  | 
|  `read_count` |  Linux, Windows Server |  O número de operações de leitura em disco executadas pelo processo. Unidade: nenhuma  | 
|  `rlimit_realtime_priority_hard` |  Linux |  O limite rígido da prioridade em tempo real que pode ser definido para este processo. Unidade: nenhuma  | 
|  `rlimit_realtime_priority_soft` |  Linux |  O limite flexível da prioridade em tempo real que pode ser definido para este processo. Unidade: nenhuma  | 
|  `rlimit_signals_pending_hard` |  Linux |  O limite rígido do número máximo de sinais que podem ser enfileirados por este processo. Unidade: nenhuma  | 
|  `rlimit_signals_pending_soft` |  Linux |  O limite flexível do número máximo de sinais que podem ser enfileirados por este processo. Unidade: nenhuma  | 
|  `rlimit_nice_priority_hard` |  Linux |  O limite rígido da prioridade de nice que pode ser definido para este processo. Unidade: nenhuma  | 
|  `rlimit_nice_priority_soft` |  Linux |  O limite flexível da prioridade de nice que pode ser definido para este processo. Unidade: nenhuma  | 
|  `rlimit_num_fds_hard` |  Linux |  O limite rígido para o número máximo de descritores de arquivo que este processo pode ter em aberto. Unidade: nenhuma  | 
|  `rlimit_num_fds_soft` |  Linux |  O limite flexível para o número máximo de descritores de arquivo que este processo pode ter em aberto. Unidade: nenhuma  | 
|  `write_count` |  Linux, Windows Server |  O número de operações de gravação em disco executadas pelo processo. Unidade: nenhuma  | 
|  `involuntary_context_switches` |  Linux |  O número de vezes em que o contexto do processo foi alterado involuntariamente.  Unidade: nenhuma  | 
|  `voluntary_context_switches` |  Linux |  O número de vezes em que o contexto do processo foi alterado voluntariamente.  Unidade: nenhuma  | 
|  `realtime_priority` |  Linux |  O uso atual da prioridade em tempo real para o processo. Unidade: nenhuma  | 
|  `nice_priority` |  Linux |  O uso atual da prioridade boa para o processo. Unidade: nenhuma  | 
|  `signals_pending` |  Linux |  O número de sinais pendentes a serem processados pelo processo. Unidade: nenhuma  | 
|  `rlimit_cpu_time_hard` |  Linux |  O limite de recursos do tempo de CPU fixo para o processo. Unidade: nenhuma  | 
|  `rlimit_cpu_time_soft` |  Linux |  O limite de recursos do tempo de CPU flexível para o processo. Unidade: nenhuma  | 
|  `rlimit_file_locks_hard` |  Linux |  O limite de recursos de bloqueios de arquivo fixo para o processo. Unidade: nenhuma  | 
|  `rlimit_file_locks_soft` |  Linux |  O limite de recursos de bloqueios de arquivo flexível para o processo. Unidade: nenhuma  | 
|  `rlimit_memory_data_hard` |  Linux |  O limite de recursos fixo no processo de memória usada em dados. Unidade: bytes  | 
|  `rlimit_memory_data_soft` |  Linux |  O limite de recursos flexível no processo de memória usada em dados. Unidade: bytes  | 
|  `rlimit_memory_locked_hard` |  Linux |  O limite de recursos fixo no processo de memória bloqueada. Unidade: bytes  | 
|  `rlimit_memory_locked_soft` |  Linux |  O limite de recursos flexível no processo de memória bloqueada. Unidade: bytes  | 
|  `rlimit_memory_rss_hard` |  Linux |  O limite de recursos fixo no processo de memória física. Unidade: bytes  | 
|  `rlimit_memory_rss_soft` |  Linux |  O limite de recursos flexível no processo de memória física. Unidade: bytes  | 
|  `rlimit_memory_stack_hard` |  Linux |  O limite de recursos fixo na pilha de processos. Unidade: bytes  | 
|  `rlimit_memory_stack_soft` |  Linux |  O limite de recursos flexível na pilha de processos. Unidade: bytes  | 
|  `rlimit_memory_vms_hard` |  Linux |  O limite de recursos fixo no processo de memória virtual. Unidade: bytes  | 
|  `rlimit_memory_vms_soft` |  Linux |  O limite de recursos flexível no processo de memória virtual. Unidade: bytes  | 

## Visualizar métricas de processo importadas pelo atendente do CloudWatch
<a name="CloudWatch-view-procstat-metrics"></a>

Depois de importar métricas de processo para o CloudWatch, é possível visualizar essas métricas como gráficos de séries temporais e criar alarmes que podem observar essas métricas e notificar você, se elas violarem um limite especificado. O procedimento a seguir mostra como visualizar métricas de processo como um gráfico de séries temporais. Para obter mais informações sobre configuração de alarmes, consulte [Usar alarmes do Amazon CloudWatch](CloudWatch_Alarms.md).

**Para exibir métricas de processo no console do CloudWatch**

1. Abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, selecione **Métricas**.

1. Escolha o namespace para as métricas coletadas pelo atendente. Por padrão, é **CWAgent**, mas você pode ter especificado um namespace diferente no arquivo de configuração do atendente do CloudWatch.

1. Escolha uma dimensão de métrica; por exemplo, **Per-Instance Metrics** (Métricas por instância).

1. A guia **All metrics** (Todas as métricas) exibe todas as métricas dessa dimensão no namespace. Você pode fazer o seguinte:

   1. Para criar um gráfico de uma métrica, marque a caixa de seleção ao lado da métrica. Para selecionar todas as métricas, marque a caixa de seleção na linha de cabeçalho da tabela.

   1. Para classificar a tabela, use o cabeçalho da coluna.

   1. Para filtrar por recurso, escolha o ID do recurso e, em seguida, escolha **Adicionar à pesquisa**.

   1. Para filtrar por métrica, selecione o nome da métrica e, em seguida, escolha **Adicionar à pesquisa**.

1. (Opcional) Para adicionar esse gráfico a um painel do CloudWatch, escolha **Actions** (Ações), **Add to dashboard** (Adicionar ao painel).

# Recuperar métricas personalizadas com o StatsD
<a name="CloudWatch-Agent-custom-metrics-statsd"></a>

É possível recuperar métricas personalizadas de suas aplicações ou seus serviços usando o atendente do CloudWatch com o protocolo `StatsD`. StatsD é uma solução de código aberto popular que pode coletar métricas de uma ampla variedade de aplicações. O StatsD é especialmente útil para instrumentar suas próprias métricas. Para obter um exemplo de uso do atendente do CloudWatch e do StatsD juntos, consulte [Como melhorar o monitoramento de suas métricas de aplicação personalizadas usando o atendente do Amazon CloudWatch](https://aws.amazon.com/blogs/devops/new-how-to-better-monitor-your-custom-application-metrics-using-amazon-cloudwatch-agent/).

`StatsD`O é compatível em servidores Linux e servidores em que o Windows Server esteja em execução. O CloudWatch oferece suporte ao seguinte formato do `StatsD`:

```
MetricName:value|type|@sample_rate|#tag1:
  value,tag1...
```
+ `MetricName`: uma string sem dois pontos, barras, caracteres \$1 ou caracteres @.
+ `value`: pode ser inteiro ou flutuante.
+ `type`: especifique `c` para contador, `g` para indicador, `ms` para temporizador, `h` para histograma ou `s` para conjunto.
+ `sample_rate`: (opcional) um flutuante entre 0 e 1, inclusive. Use somente para métricas de contador, histograma e temporizador. O valor padrão é 1 (amostragem de 100% do tempo).
+ `tags`: (opcional) uma lista separada por vírgulas das etiquetas. As etiquetas do `StatsD` são semelhantes às dimensões no CloudWatch. Use dois pontos para tags de chave/valor, como `env:prod`.

Você pode usar qualquer cliente `StatsD` que siga esse formato para enviar as métricas ao atendente do CloudWatch. Para obter mais informações sobre alguns dos clientes `StatsD` disponíveis, consulte a [página do cliente StatsD no GitHub](https://github.com/etsy/statsd/wiki#client-implementations). 

Para coletar essas métricas personalizadas, adicione uma linha `"statsd": {}` à seção `metrics_collected` do arquivo de configuração do atendente. Você pode adicionar essa linha manualmente. Se você usa o assistente para criar o arquivo de configuração, isso é feito para você. Para obter mais informações, consulte [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md).

A configuração padrão do `StatsD` funciona para a maioria dos usuários. Há campos opcionais que podem ser adicionados, conforme necessário, à seção **statsd** do arquivo de configuração do agente:
+ `service_address`: o endereço de serviço que o atendente do CloudWatch deve ouvir. O formato de é `ip:port`. Se você omitir o endereço IP, o atendente escutará todas as interfaces disponíveis. Somente o formato UDP é compatível, portanto, você não precisa especificar um prefixo UDP. 

  O valor padrão é `:8125`.
+ `metrics_collection_interval`: com que frequência em segundos o plugin `StatsD` é executado e coleta métricas. O valor de padrão é de 10 segundos. O intervalo é de 1 a 172.000.
+ `metrics_aggregation_interval`: com que frequência em segundos o CloudWatch agrega métricas em pontos de dados únicos. O valor padrão é de 60 segundos.

  Por exemplo, se `metrics_collection_interval` for 10 e `metrics_aggregation_interval` for 60, o CloudWatch coletará dados a cada 10 segundos. Após cada minuto, as seis leituras de dados realizadas nesse minuto são agregadas em um único ponto de dados, que é enviado ao CloudWatch.

  O intervalo é de 0 a 172.000. Definir `metrics_aggregation_interval` como 0 desabilita a agregação de métricas do `StatsD`.
+ `allowed_pending_messages`: o número de mensagens UDP que podem ser enfileiradas. Quando a fila está cheia, o servidor StatsD começa a descartar pacotes. O valor padrão é 10000.
+ `drop_original_metrics`: opcional. Se você estiver usando o campo `aggregation_dimensions` na seção `metrics` para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.

Veja a seguir um exemplo da seção **statsd** do arquivo de configuração do atendente, usando a porta padrão e intervalos de coleta e agregação personalizados.

```
{
   "metrics":{
      "metrics_collected":{
         "statsd":{
            "service_address":":8125",
            "metrics_collection_interval":60,
            "metrics_aggregation_interval":300
         }
      }
   }
}
```

## Visualizar métricas do StatsD importadas pelo atendente do CloudWatch
<a name="CloudWatch-view-statsd-metrics"></a>

Depois de importar métricas do StatsD para o CloudWatch, é possível visualizar essas métricas como gráficos de séries temporais e criar alarmes que podem observar essas métricas e notificar você, se elas violarem um limite especificado. O procedimento a seguir mostra como visualizar métricas do StatsD como um gráfico de séries temporais. Para obter mais informações sobre configuração de alarmes, consulte [Usar alarmes do Amazon CloudWatch](CloudWatch_Alarms.md).

**Para exibir métricas do StatsD no console do CloudWatch**

1. Abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, selecione **Métricas**.

1. Escolha o namespace para as métricas coletadas pelo atendente. Por padrão, é **CWAgent**, mas você pode ter especificado um namespace diferente no arquivo de configuração do atendente do CloudWatch.

1. Escolha uma dimensão de métrica; por exemplo, **Per-Instance Metrics** (Métricas por instância).

1. A guia **All metrics** (Todas as métricas) exibe todas as métricas dessa dimensão no namespace. Você pode fazer o seguinte:

   1. Para criar um gráfico de uma métrica, marque a caixa de seleção ao lado da métrica. Para selecionar todas as métricas, marque a caixa de seleção na linha de cabeçalho da tabela.

   1. Para classificar a tabela, use o cabeçalho da coluna.

   1. Para filtrar por recurso, escolha o ID do recurso e, em seguida, escolha **Adicionar à pesquisa**.

   1. Para filtrar por métrica, selecione o nome da métrica e, em seguida, escolha **Adicionar à pesquisa**.

1. (Opcional) Para adicionar esse gráfico a um painel do CloudWatch, escolha **Actions** (Ações), **Add to dashboard** (Adicionar ao painel).

# Recuperar métricas personalizadas com o collectd
<a name="CloudWatch-Agent-custom-metrics-collectd"></a>

É possível recuperar métricas adicionais de suas aplicações ou seus serviços usando o atendente do CloudWatch com o protocolo collectd, que é compatível somente com servidores Linux. O collectd é uma solução de código aberto bastante usada com plugins que podem coletar estatísticas do sistema para uma ampla variedade de aplicações. Ao combinar as métricas do sistema que o atendente do CloudWatch já pode coletar com as métricas adicionais do collectd, é possível monitorar, analisar e solucionar problemas de seus sistemas e suas aplicações. Para obter mais informações sobre o collectd, consulte [collectd - The system statistics collection daemon](https://collectd.org/).

Use o software collectd para enviar as métricas ao atendente do CloudWatch. Para as métricas do collectd, o atendente do CloudWatch atua como o servidor, enquanto o plugin do collectd atua como o cliente.

O software collectd não é instalado automaticamente em todos os servidores. Em um servidor com o Amazon Linux 2 em execução, siga estas etapas para instalar o collectd

```
sudo amazon-linux-extras install collectd
```

Para obter informações sobre como instalar collectd em outros sistemas, consulte a [página Download para collectd.](https://www.collectd.org/download.html) 

Para coletar essas métricas personalizadas, adicione uma linha **"collectd": \$1\$1** à seção **metrics\$1collected** do arquivo de configuração do atendente. Você pode adicionar essa linha manualmente. Se você usa o assistente para criar o arquivo de configuração, isso é feito para você. Para obter mais informações, consulte [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md).

Parâmetros opcionais também estão disponíveis. Se estiver usando o collectd e não usar `/etc/collectd/auth_file` como **collectd\$1auth\$1file**, você deverá definir algumas dessas opções. 
+ **service\$1address:** o endereço de serviço que o atendente do CloudWatch deve ouvir. O formato de é `"udp://ip:port`. O padrão é `udp://127.0.0.1:25826`.
+ **name\$1prefix:** um prefixo para anexar ao início do nome de cada métrica do collectd. O padrão é `collectd_`. O tamanho máximo é de 255 caracteres.
+ **collectd\$1security\$1level:** define o nível de segurança para comunicação de rede. O padrão é **Encrypt (Criptografia)**.

  **Encrypt (Criptografar)** especifica que apenas dados criptografados são aceitos. **Sign (Assinar)** especifica que apenas dados com assinatura e criptografados são aceitos. **None (Nenhum)** especifica que todos os dados são aceitos. Se você especificar um valor para **collectd\$1auth\$1file**, os dados criptografados serão descriptografados, se possível.

  Para obter mais informações, consulte [Configuração do cliente](https://collectd.org/wiki/index.php/Networking_introduction#Client_setup) e [Interações possíveis](https://collectd.org/wiki/index.php/Networking_introduction#Possible_interactions) na Wiki do collectd.
+ **collectd\$1auth\$1file** Define um arquivo no qual os nomes de usuário são mapeados para as senhas. Essas senhas são usadas para verificar assinaturas e descriptografar pacotes de rede criptografados. Se fornecidos, os dados assinados são verificados e os pacotes criptografados são descriptografados. Caso contrário, os dados assinados são aceitos sem verificar a assinatura e os dados criptografados não podem ser descriptografados.

  O padrão é `/etc/collectd/auth_file`.

   Se **collectd\$1security\$1level** estiver definido como **None (Nenhum)**, é opcional. Se definir **collectd\$1security\$1level** como `encrypt` ou **Sign (Assinar)**, você deverá especificar **collectd\$1auth\$1file**.

  Para o formato do arquivo de autenticação, cada linha é um nome de usuário seguido por dois pontos e qualquer número de espaços seguido pela senha. Por exemplo:

  `user1: user1_password`

  `user2: user2_password`
+ **collectd\$1typesdb:** uma lista de um ou mais arquivos que contêm as descrições de conjunto de dados. A lista deve estar entre colchetes, ainda que haja somente uma entrada na lista. Cada entrada na lista deve estar entre aspas duplas. Se houver várias entradas, separe-as por vírgulas. O padrão em servidores Linux é `["/usr/share/collectd/types.db"]`. O padrão em computadores macOS depende da versão do collectd. Por exemplo, `["/usr/local/Cellar/collectd/5.12.0/share/collectd/types.db"]`.

  Para obter mais informações, consulte [https://www.collectd.org/documentation/manpages/types.db.html](https://www.collectd.org/documentation/manpages/types.db.html).
+ **metrics\$1aggregation\$1interval:** com que frequência, em segundos, o CloudWatch agrega métricas aos pontos de dados únicos. O padrão é 60 segundos. O intervalo é de 0 a 172,000. Defini-lo como 0 desabilita a agregação de métricas do collectd.

A seguir, veja um exemplo da seção do collectd do arquivo de configuração do atendente.

```
{
   "metrics":{
      "metrics_collected":{
         "collectd":{
            "name_prefix":"My_collectd_metrics_",
            "metrics_aggregation_interval":120
         }
      }
   }
}
```

## Visualização de métricas coletadas e importadas pelo agente do CloudWatch
<a name="CloudWatch-view-collectd-metrics"></a>

Depois de importar métricas do collectd para o CloudWatch, é possível visualizar essas métricas como gráficos de séries temporais e criar alarmes que podem observar essas métricas e notificar você, se elas violarem um limite especificado. O procedimento a seguir mostra como visualizar métricas do collectd como um gráfico de séries temporais. Para obter mais informações sobre configuração de alarmes, consulte [Usar alarmes do Amazon CloudWatch](CloudWatch_Alarms.md).

**Para exibir métricas do collectd no console do CloudWatch**

1. Abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, selecione **Métricas**.

1. Escolha o namespace para as métricas coletadas pelo atendente. Por padrão, é **CWAgent**, mas você pode ter especificado um namespace diferente no arquivo de configuração do atendente do CloudWatch.

1. Escolha uma dimensão de métrica; por exemplo, **Per-Instance Metrics** (Métricas por instância).

1. A guia **All metrics** (Todas as métricas) exibe todas as métricas dessa dimensão no namespace. Você pode fazer o seguinte:

   1. Para criar um gráfico de uma métrica, marque a caixa de seleção ao lado da métrica. Para selecionar todas as métricas, marque a caixa de seleção na linha de cabeçalho da tabela.

   1. Para classificar a tabela, use o cabeçalho da coluna.

   1. Para filtrar por recurso, escolha o ID do recurso e, em seguida, escolha **Adicionar à pesquisa**.

   1. Para filtrar por métrica, selecione o nome da métrica e, em seguida, escolha **Adicionar à pesquisa**.

1. (Opcional) Para adicionar esse gráfico a um painel do CloudWatch, escolha **Actions** (Ações), **Add to dashboard** (Adicionar ao painel).

# Instalar e configurar a coleta de métricas do Prometheus em instâncias do Amazon EC2
<a name="CloudWatch-Agent-PrometheusEC2"></a>

As seções a seguir explicam como instalar o atendente do CloudWatch com o monitoramento Prometheus em instâncias do EC2 e como configurar o atendente para extrair de outros destinos. Também fornece tutoriais para configurar workloads de amostra para usar testes com monitoramento Prometheus.

Tanto instâncias do Linux quanto do Windows são compatíveis.

Para obter informações sobre os sistemas operacionais compatíveis com o atendente do CloudWatch, consulte [Coleta de métricas, logs e rastreamentos usando o agente do CloudWatch](Install-CloudWatch-Agent.md)

**Requisitos para grupo de segurança de VPC**

Se você estiver usando uma VPC, os seguintes requisitos se aplicam.
+ As regras de entrada dos grupos de segurança para as workloads do Prometheus devem abrir as portas do Prometheus para o atendente do CloudWatch para extrair as métricas Prometheus pelo IP privado.
+ As regras de saída do grupo de segurança do atendente do CloudWatch devem permitir que o atendente do CloudWatch se conecte à porta das workloads do Prometheus por IP privado. 

**Topics**
+ [Etapa 1: Instalar o atendente do CloudWatch](#CloudWatch-Agent-PrometheusEC2-install)
+ [Etapa 2: Extrair fontes do Prometheus e importar métricas](#CloudWatch-Agent-PrometheusEC2-configure)
+ [Exemplo: configurar workloads de amostra Java/JMX para tested de métrica do Prometheus](#CloudWatch-Agent-Prometheus-Java)

## Etapa 1: Instalar o atendente do CloudWatch
<a name="CloudWatch-Agent-PrometheusEC2-install"></a>

A primeira etapa consiste em instalar o atendente do CloudWatch na instância do EC2. Para instruções, consulte [Instalação do atendente do CloudWatch](install-CloudWatch-Agent-on-EC2-Instance.md).

## Etapa 2: Extrair fontes do Prometheus e importar métricas
<a name="CloudWatch-Agent-PrometheusEC2-configure"></a>

O atendente do CloudWatch com monitoramento Prometheus precisa de duas configurações para extrair as métricas do Prometheus. Uma serve para as configurações padrão do Prometheus, conforme documentado em [<scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) na documentação do Prometheus. A outra é para a configuração do atendente do CloudWatch.

### Configuração de extração do Prometheus
<a name="CloudWatch-Agent-PrometheusEC2-configure-scrape"></a>

O atendente do CloudWatch oferece suporte às configurações de extração padrão do Prometheus, conforme documentado em [ <scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) na documentação do Prometheus. É possível editar essa seção para atualizar as configurações que já estão nesse arquivo e adicionar outros destinos de extração do Prometheus. Um arquivo de configuração de exemplo contém as seguintes linhas de configuração global:

```
PS C:\ProgramData\Amazon\AmazonCloudWatchAgent> cat prometheus.yaml
global:
  scrape_interval: 1m
  scrape_timeout: 10s
scrape_configs:
- job_name: MY_JOB
  sample_limit: 10000
  file_sd_configs:
    - files: ["C:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\prometheus_sd_1.yaml", "C:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\prometheus_sd_2.yaml"]
```

A seção `global` especifica parâmetros que são válidos em todos os contextos de configuração. Eles também servem como padrão para outras seções de configuração. Contém os seguintes parâmetros:
+ `scrape_interval`: define a frequência da adição de destinos de extração de conteúdo.
+ `scrape_timeout`: define quanto tempo aguardar até a expiração de uma solicitação de extração de conteúdo.

A seção `scrape_configs` especifica um conjunto de destinos e parâmetros que definem como extraí-los. Contém os seguintes parâmetros:
+ `job_name`: o nome do trabalho atribuído a métricas extraídas por padrão.
+ `sample_limit`: limite por extração no número de amostras extraídas que serão aceitas.
+ `file_sd_configs`: lista de configurações de detecção de serviço de arquivo. Lê um conjunto de arquivos contendo uma lista de zero ou mais configurações estáticas. A seção `file_sd_configs` contém um parâmetro `files` que define padrões para arquivos dos quais os grupos de destino são extraídos.

O atendente do CloudWatch é compatível com os seguintes tipos de configuração de detecção de serviço.

**`static_config`** Permite especificar uma lista de destinos e um conjunto de rótulos comuns para eles. É a maneira canônica de especificar destinod estáticos em uma configuração de extração.

Veja a seguir um exemplo de configuração estática para extrair métricas do Prometheus de um host local. As métricas também poderão ser extraídas de outros servidores, se a porta Prometheus estiver aberta para o servidor onde o atendente é executado.

```
PS C:\ProgramData\Amazon\AmazonCloudWatchAgent> cat prometheus_sd_1.yaml
- targets:
    - 127.0.0.1:9404
  labels:
    key1: value1
    key2: value2
```

Esse exemplo contém os seguintes parâmetros:
+ `targets`: os destinos extraídos pela configuração estática.
+ `labels`: rótulos atribuídos a todas as métricas que são raspadas dos destinos.

**`ec2_sd_config`** Permite recuperar destinos de extração de instâncias do Amazon EC2. Veja a seguir uma amostra `ec2_sd_config` para extrair métricas do Prometheus de uma lista de instâncias do EC2. As portas do Prometheus dessas instâncias devem abrir para o servidor onde o atendente do CloudWatch está em execução. A função do IAM para a instância do EC2 em que o atendente do CloudWatch é executado deve incluir a permissão `ec2:DescribeInstance`. Por exemplo, você pode anexar a política gerenciada **AmazonEC2ReadOnlyAccess** à instância em que o atendente do CloudWatch está em execução.

```
PS C:\ProgramData\Amazon\AmazonCloudWatchAgent> cat prometheus.yaml
global:
  scrape_interval: 1m
  scrape_timeout: 10s
scrape_configs:
  - job_name: MY_JOB
    sample_limit: 10000
    ec2_sd_configs:
      - region: us-east-1
        port: 9404
        filters:
          - name: instance-id
            values:
              - i-98765432109876543
              - i-12345678901234567
```

Esse exemplo contém os seguintes parâmetros:
+ `region`: a região da AWS em que a instância do EC2 de destino está. Se estiver em branco, será usada a região dos metadados da instância.
+ `port`: a porta de onde as métricas serão extraídas.
+ `filters`: filtros opcionais a serem usados para filtrar a lista de instâncias. Este exemplo filtra com base em IDs de instância do EC2. Para obter mais critérios que você pode filtrar, consulte [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html).

### Configuração do atendente do CloudWatch para o Prometheus
<a name="CloudWatch-Agent-PrometheusEC2-configure-agent"></a>

O arquivo de configuração do atendente do CloudWatch inclui as seções `prometheus` em `logs` e `metrics_collected`. Inclui os seguintes parâmetros.
+ **cluster\$1name**: especifica o nome do cluster a ser adicionado como um rótulo no evento de log. Esse campo é opcional. 
+ **log\$1group\$1name**: especifica o nome do grupo de log para as métricas do Prometheus extraídas.
+ **prometheus\$1config\$1path**: especifica o caminho do arquivo de configuração de extração do Prometheus.
+ **emf\$1processor**: especifica a configuração do processador de formato de métrica incorporado. Para obter mais informações sobre o formato de métrica incorporado, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md). 

  A seção `emf_processor` pode contem estes parâmetros:
  + **metric\$1declaration\$1dedup**: é definida como true, a função de eliminação de duplicação para as métricas de formato de métrica incorporado está habilitada.
  + **metric\$1namespace**: especifica o namespace da métrica para as métricas emitidas do CloudWatch.
  + **metric\$1unit**: especifica o nome métrica: mapa de unidade da métrica. Para obter mais informações sobre as unidades de métricas compatíveis, consulte [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
  + **metric\$1declaration**: são seções que especificam a matriz de logs com formato de métrica incorporado a ser gerada. Há seções `metric_declaration` para cada destino do Prometheus do qual o atendente do CloudWatch importa por padrão. Essas seções incluem os seguintes campos:
    + `source_labels` especifica o valor dos rótulos verificados pela linha `label_matcher`.
    + `label_matcher` é uma expressão regular que confere o valor dos rótulos listados em `source_labels`. As métricas correspondentes são disponibilizadas para inclusão no formato de métrica incorporado enviado ao CloudWatch. 
    + `metric_selectors` é uma expressão regular que especifica as métricas a serem coletadas e enviadas ao CloudWatch.
    + `dimensions` é a lista de rótulos a serem usados como dimensões do CloudWatch para cada métrica selecionada.

Veja a seguir um exemplo de configuração do atendente do CloudWatch para o Prometheus.

```
{
   "logs":{
      "metrics_collected":{
         "prometheus":{
            "cluster_name":"prometheus-cluster",
            "log_group_name":"Prometheus",
            "prometheus_config_path":"C:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\prometheus.yaml",
            "emf_processor":{
               "metric_declaration_dedup":true,
               "metric_namespace":"CWAgent-Prometheus",
               "metric_unit":{
                  "jvm_threads_current": "Count",
                  "jvm_gc_collection_seconds_sum": "Milliseconds"
               },
               "metric_declaration":[
                  {
                     "source_labels":[
                        "job", "key2"
                     ],
                     "label_matcher":"MY_JOB;^value2",
                     "dimensions":[
                        [
                           "key1", "key2"
                        ],
                        [
                           "key2"
                        ]
                     ],
                     "metric_selectors":[
                        "^jvm_threads_current$",
                        "^jvm_gc_collection_seconds_sum$"
                     ]
                  }
               ]
            }
         }
      }
   }
}
```

O exemplo anterior configura uma seção de formato de métrica incorporado a ser enviada como um evento de log, se as seguintes condições forem atendidas:
+ O valor do rótulo `job` é `MY_JOB`
+ O valor do rótulo `key2` é `value2`
+ As métricas `jvm_threads_current` e `jvm_gc_collection_seconds_sum` do Prometheus contêm rótulos `job` e `key2`.

O evento de log enviado inclui a seção destacada a seguir.

```
{
    "CloudWatchMetrics": [
        {
            "Metrics": [
                {
                    "Unit": "Count",
                    "Name": "jvm_threads_current"
                },
                {
                    "Unit": "Milliseconds",
                    "Name": "jvm_gc_collection_seconds_sum"
                }
            ],
            "Dimensions": [
                [
                    "key1",
                    "key2"
                ],
                [
                    "key2"
                ]
            ],
            "Namespace": "CWAgent-Prometheus"
        }
    ],
    "ClusterName": "prometheus-cluster",
    "InstanceId": "i-0e45bd06f196096c8",
    "Timestamp": "1607966368109",
    "Version": "0",
    "host": "EC2AMAZ-PDDOIUM",
    "instance": "127.0.0.1:9404",
    "jvm_threads_current": 2,
    "jvm_gc_collection_seconds_sum": 0.006000000000000002,
    "prom_metric_type": "gauge",
    ...
}
```

## Exemplo: configurar workloads de amostra Java/JMX para tested de métrica do Prometheus
<a name="CloudWatch-Agent-Prometheus-Java"></a>

O JMX Exporter é um exportador oficial do Prometheus que pode extrair conteúdo e expor mBeans da JMX como métricas do Prometheus. Para obter mais informações, consulte [prometheus/jmx\$1exporter](https://github.com/prometheus/jmx_exporter).

O atendente do CloudWatch pode coletar métricas predefinidas do Prometheus a partir da Java Virtual Machine (JVM), Hjava e Tomcat (Catalina) usando um JMX Exporter em instâncias do EC2.

### Etapa 1: Instalar o atendente do CloudWatch
<a name="CloudWatch-Agent-PrometheusJava-install"></a>

A primeira etapa consiste em instalar o atendente do CloudWatch na instância do EC2. Para instruções, consulte [Instalação do atendente do CloudWatch](install-CloudWatch-Agent-on-EC2-Instance.md).

### Etapa 2: Iniciar a workload do Java/JMX
<a name="CloudWatch-Agent-PrometheusJava-start"></a>

A próxima etapa é iniciar a workload do Java/JMX.

Primeiro, baixe o arquivo jar do JMX Exporter mais recente do seguinte local: [prometheus/jmx\$1exporter](https://github.com/prometheus/jmx_exporter).

 **Use o jar para sua aplicação de amostra**

Os exemplos de comando nas seções a seguir usam `SampleJavaApplication-1.0-SNAPSHOT.jar` como o arquivo jar. Substitua essas partes dos comandos pelo jar de sua aplicação.

#### Preparar a configuração do JMX Exporter
<a name="CloudWatch-Agent-PrometheusJava-start-config"></a>

O arquivo `config.yaml` é o arquivo de configuração do JMX Exporter. Para obter mais informações, consulte [Configuration](https://github.com/prometheus/jmx_exporter#Configuration) (Configuração) na documentação do JMX Exporter.

Veja a seguir um exemplo de arquivo de configuração para Java e Tomcat.

```
---
lowercaseOutputName: true
lowercaseOutputLabelNames: true

rules:
- pattern: 'java.lang<type=OperatingSystem><>(FreePhysicalMemorySize|TotalPhysicalMemorySize|FreeSwapSpaceSize|TotalSwapSpaceSize|SystemCpuLoad|ProcessCpuLoad|OpenFileDescriptorCount|AvailableProcessors)'
  name: java_lang_OperatingSystem_$1
  type: GAUGE

- pattern: 'java.lang<type=Threading><>(TotalStartedThreadCount|ThreadCount)'
  name: java_lang_threading_$1
  type: GAUGE

- pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+)'
  name: catalina_globalrequestprocessor_$3_total
  labels:
    port: "$2"
    protocol: "$1"
  help: Catalina global $3
  type: COUNTER

- pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount)'
  name: catalina_servlet_$3_total
  labels:
    module: "$1"
    servlet: "$2"
  help: Catalina servlet $3 total
  type: COUNTER

- pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount)'
  name: catalina_threadpool_$3
  labels:
    port: "$2"
    protocol: "$1"
  help: Catalina threadpool $3
  type: GAUGE

- pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions)'
  name: catalina_session_$3_total
  labels:
    context: "$2"
    host: "$1"
  help: Catalina session $3 total
  type: COUNTER

- pattern: ".*"
```

#### Inicie a aplicação Java com o exportador do Prometheus
<a name="CloudWatch-Agent-PrometheusJava-start-start"></a>

Inicie o exemplo de aplicação. Isso emitirá métricas do Prometheus para a porta 9404. Certifique-se de substituir o ponto de entrada `com.gubupt.sample.app.App` pela informação correta para sua aplicação Java de amostra. 

No Linux, insira o comando a seguir.

```
$ nohup java -javaagent:./jmx_prometheus_javaagent-0.14.0.jar=9404:./config.yaml -cp  ./SampleJavaApplication-1.0-SNAPSHOT.jar com.gubupt.sample.app.App &
```

No Windows, insira o comando a seguir.

```
PS C:\> java -javaagent:.\jmx_prometheus_javaagent-0.14.0.jar=9404:.\config.yaml -cp  .\SampleJavaApplication-1.0-SNAPSHOT.jar com.gubupt.sample.app.App
```

#### Verificar a emissão de métricas do Prometheus
<a name="CloudWatch-Agent-PrometheusJava-start-verify"></a>

Verifique se as métricas do Prometheus estão sendo emitidas. 

No Linux, insira o comando a seguir.

```
$ curl localhost:9404
```

No Windows, insira o comando a seguir.

```
PS C:\> curl  http://localhost:9404
```

Exemplo de saída no Linux:

```
StatusCode        : 200
StatusDescription : OK
Content           : # HELP jvm_classes_loaded The number of classes that are currently loaded in the JVM
                    # TYPE jvm_classes_loaded gauge
                    jvm_classes_loaded 2526.0
                    # HELP jvm_classes_loaded_total The total number of class...
RawContent        : HTTP/1.1 200 OK
                    Content-Length: 71908
                    Content-Type: text/plain; version=0.0.4; charset=utf-8
                    Date: Fri, 18 Dec 2020 16:38:10 GMT

                    # HELP jvm_classes_loaded The number of classes that are currentl...
Forms             : {}
Headers           : {[Content-Length, 71908], [Content-Type, text/plain; version=0.0.4; charset=utf-8], [Date, Fri, 18
                    Dec 2020 16:38:10 GMT]}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : System.__ComObject
RawContentLength  : 71908
```

### Etapa 3: Configurar o atendente do CloudWatch para extrair métricas do Prometheus
<a name="CloudWatch-Agent-PrometheusJava-agent"></a>

Em seguida, instale a configuração de extração do Prometheus no arquivo de configuração do atendente do CloudWatch.

**Para instalar a configuração de extração do Prometheus para o exemplo de Java/JMX**

1. Instale a configuração para `file_sd_config` e `static_config`.

   No Linux, insira o comando a seguir.

   ```
   $ cat /opt/aws/amazon-cloudwatch-agent/var/prometheus.yaml
   global:
     scrape_interval: 1m
     scrape_timeout: 10s
   scrape_configs:
     - job_name: jmx
       sample_limit: 10000
       file_sd_configs:
         - files: [ "/opt/aws/amazon-cloudwatch-agent/var/prometheus_file_sd.yaml" ]
   ```

   No Windows, insira o comando a seguir.

   ```
   PS C:\ProgramData\Amazon\AmazonCloudWatchAgent> cat prometheus.yaml
   global:
     scrape_interval: 1m
     scrape_timeout: 10s
   scrape_configs:
     - job_name: jmx
       sample_limit: 10000
       file_sd_configs:
         - files: [ "C:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\prometheus_file_sd.yaml" ]
   ```

1. Defina a configuração dos destinos da extação.

   No Linux, insira o comando a seguir.

   ```
   $ cat /opt/aws/amazon-cloudwatch-agent/var/prometheus_file_sd.yaml
   - targets:
     - 127.0.0.1:9404
     labels:
       application: sample_java_app
       os: linux
   ```

   No Windows, insira o comando a seguir.

   ```
   PS C:\ProgramData\Amazon\AmazonCloudWatchAgent> cat prometheus_file_sd.yaml
   - targets:
     - 127.0.0.1:9404
     labels:
       application: sample_java_app
       os: windows
   ```

1. Defina a configuração de extração do Prometheus como `ec2_sc_config`. Substitua *your-ec2-instance-id* pelo ID correto da instância do EC2.

   No Linux, insira o comando a seguir.

   ```
   $ cat .\prometheus.yaml
   global:
     scrape_interval: 1m
     scrape_timeout: 10s
   scrape_configs:
     - job_name: jmx
       sample_limit: 10000
       ec2_sd_configs:
         - region: us-east-1
           port: 9404
           filters:
             - name: instance-id
               values:
                 - your-ec2-instance-id
   ```

   No Windows, insira o comando a seguir.

   ```
   PS C:\ProgramData\Amazon\AmazonCloudWatchAgent> cat prometheus_file_sd.yaml
   - targets:
     - 127.0.0.1:9404
     labels:
       application: sample_java_app
       os: windows
   ```

1. Instalar a configuração do atendente do CloudWatch Primeiro, navegue até o diretório correto. No Linux, é `/opt/aws/amazon-cloudwatch-agent/var/cwagent-config.json`. No Windows, é `C:\ProgramData\Amazon\AmazonCloudWatchAgent\cwagent-config.json`.

   Veja a seguir um exemplo de configuração com métricas do Java/JHX Prometheus definidas. Substitua *path-to-Prometheus-Scrape-Configuration-file* pelo caminho correto.

   ```
   {
     "agent": {
       "region": "us-east-1"
     },
     "logs": {
       "metrics_collected": {
         "prometheus": {
           "cluster_name": "my-cluster",
           "log_group_name": "prometheus-test",
           "prometheus_config_path": "path-to-Prometheus-Scrape-Configuration-file",
           "emf_processor": {
             "metric_declaration_dedup": true,
             "metric_namespace": "PrometheusTest",
             "metric_unit":{
               "jvm_threads_current": "Count",
               "jvm_classes_loaded": "Count",
               "java_lang_operatingsystem_freephysicalmemorysize": "Bytes",
               "catalina_manager_activesessions": "Count",
               "jvm_gc_collection_seconds_sum": "Seconds",
               "catalina_globalrequestprocessor_bytesreceived": "Bytes",
               "jvm_memory_bytes_used": "Bytes",
               "jvm_memory_pool_bytes_used": "Bytes"
             },
             "metric_declaration": [
               {
                 "source_labels": ["job"],
                 "label_matcher": "^jmx$",
                 "dimensions": [["instance"]],
                 "metric_selectors": [
                   "^jvm_threads_current$",
                   "^jvm_classes_loaded$",
                   "^java_lang_operatingsystem_freephysicalmemorysize$",
                   "^catalina_manager_activesessions$",
                   "^jvm_gc_collection_seconds_sum$",
                   "^catalina_globalrequestprocessor_bytesreceived$"
                 ]
               },
               {
                 "source_labels": ["job"],
                 "label_matcher": "^jmx$",
                 "dimensions": [["area"]],
                 "metric_selectors": [
                   "^jvm_memory_bytes_used$"
                 ]
               },
               {
                 "source_labels": ["job"],
                 "label_matcher": "^jmx$",
                 "dimensions": [["pool"]],
                 "metric_selectors": [
                   "^jvm_memory_pool_bytes_used$"
                 ]
               }
             ]
           }
         }
       },
       "force_flush_interval": 5
     }
   }
   ```

1. Insira um dos comandos a seguir para reiniciar o atendente do CloudWatch.

   No Linux, insira o comando a seguir.

   ```
   sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/var/cwagent-config.json
   ```

   No Windows, insira o comando a seguir.

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

### Visualizar as métricas e logs do Prometheus
<a name="CloudWatch-Agent-PrometheusJava-view"></a>

Agora é possível visualizar as métricas do Java/JMX que estão sendo coletadas.

**Para visualizar as métricas do exemplo de workload do Java/JMX**

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Na região da em que o cluster está em execução, escolha **Metrics** (Métricas) no painel de navegação à esquerda. Encontre o namespace **PrometheUSTEST** para ver as métricas.

1. Para visualizar os eventos do CloudWatch Logs, escolha **Log Groups** (Grupos de logs) no painel de navegação. Os eventos estão no grupo de logs **prometheus-test**.

# Configurar nomes de serviços e ambientes do agente do CloudWatch para entidades relacionadas
<a name="CloudWatch-Agent-configure-related-telemetry"></a>

O agente do CloudWatch pode enviar métricas e logs com dados da entidade para ser compatível com a opção [Analisar painel relacionado](ExploreRelated.md) no console do CloudWatch. O nome do serviço ou do ambiente pode ser configurado pela [configuração JSON do agente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

**nota**  
A configuração do agente pode ser substituída. Para obter detalhes sobre como o agente decide quais dados enviar para entidades relacionadas, consulte [Usar o agente do CloudWatch com a telemetria relacionada](CloudWatch-Agent-RelatedEntities.md).

Para métricas, ela pode ser configurada no nível do agente, das métricas ou do plug-in. Para logs, ela pode ser configurada no nível do agente, dos logs ou do arquivo. A configuração mais específica é sempre usada. Por exemplo, se a configuração existir no nível do agente e no nível das métricas, as métricas usarão a configuração de métricas e qualquer outra coisa (logs) usará a configuração do agente. O exemplo a seguir mostra maneiras diferentes de configurar o nome do serviço e o nome do ambiente.

```
{
  "agent": {
    "service.name": "agent-level-service",
    "deployment.environment": "agent-level-environment"
  },
  
  "metrics": {
    "service.name": "metric-level-service",
     "deployment.environment": "metric-level-environment",
     
    "metrics_collected": {
      "statsd": {
        "service.name": "statsd-level-service",
        "deployment.environment": "statsd-level-environment",
      },
      "collectd": {
        "service.name": "collectdd-level-service",
        "deployment.environment": "collectd-level-environment",
      }
    }
    
  },
  
  "logs": {
    "service.name": "log-level-service",
    "deployment.environment": "log-level-environment",
    
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log",
            "log_group_name": "amazon-cloudwatch-agent.log",
            "log_stream_name": "amazon-cloudwatch-agent.log",
            
            "service.name": "file-level-service",
            "deployment.environment": "file-level-environment"
          }
        ]
      }
    }
    
  }
}
```

# Iniciar o atendente do CloudWatch
<a name="start-CloudWatch-Agent-on-premise-SSM-onprem"></a>

Você também pode iniciar o atendente do CloudWatch usando o Systems Manager Run Command ou a linha de comando.

Para obter informações sobre como configurar o agente em um sistema que tenha o Linux com segurança aprimorada (SELinux) habilitado, consulte [Configure o agente do CloudWatch com o Linux com segurança aprimorada (SELinux)](CloudWatch-Agent-SELinux.md).

## Inicialização do agente do CloudWatch usando a linha de comando no Amazon EC2
<a name="start-CloudWatch-Agent-EC2-commands-fleet"></a>

Siga estas etapas para usar a linha de comando com a finalidade de iniciar o agente do CloudWatch no Amazon EC2.

Para obter informações sobre como configurar o agente em um sistema que tenha o Linux com segurança aprimorada (SELinux) habilitado, consulte [Configure o agente do CloudWatch com o Linux com segurança aprimorada (SELinux)](CloudWatch-Agent-SELinux.md).

**Como usar a linha de comando para iniciar o agente do CloudWatch no Amazon EC2**

1. Copie o arquivo de configuração do atendente que você deseja usar no servidor onde você irá executar o atendente. Anote o nome do caminho onde você o copiar.

1. Nesse comando, `-a fetch-config` faz com que o atendente carregue a última versão do arquivo de configuração do atendente do CloudWatch e o `-s` inicia o atendente.

   Insira um dos seguintes comandos: Substitua *configuration-file-path* pelo caminho para o arquivo de configuração do atendente. Este arquivo é chamado `config.json`, se você o criou com o assistente, e pode ser chamado `amazon-cloudwatch-agent.json`, se você o criou manualmente.

   Em uma instância do EC2 que execute o Linux, insira o comando a seguir. 

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

   Em um servidor on-premises que executa o Linux, digite o seguinte:

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

   Em uma instância do EC2 que execute o Windows Server, digite o seguinte no console do PowerShell:

   ```
   & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:configuration-file-path
   ```

   Em um servidor on-premises que executa o Windows Server, digite o seguinte no console do PowerShell:

   ```
   & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m onPremise -s -c file:configuration-file-path
   ```

## Inicialização do agente do CloudWatch em um servidor on-premises
<a name="start-CloudWatch-Agent-on-premises"></a>

Siga estas etapas para usar a linha de comando com a finalidade de iniciar o agente do CloudWatch em um servidor on-premises.

**Para usar o SSM Agent para iniciar o atendente do CloudWatch em um servidor on-premises**

1. Abra o console do Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, selecione **Executar comando**.

   - ou -

   Se a página inicial do AWS Systems Manager for exibida, role para baixo e escolha **Explore Run Command**.

1. Selecione **Run command**.

1. Na lista **Documento do comando**, selecione o botão ao lado de **AmazonCloudWatch-ManageAgent**.

1. Na área **Destinos**, selecione a instância onde você instalou o atendente.

1. Na lista **Ação**, escolha **configurar**.

1. Na lista **Modo**, escolha **No local**.

1. Na caixa **Optional Configuration Location** (Local de configuração opcional), insira o nome do arquivo de configuração do atendente que você criou com o assistente e armazenou no Parameter Store.

1. Escolha **Executar**.

   O atendente começa com a configuração especificada no arquivo de configuração.

**Para usar a linha de comando para iniciar o atendente do CloudWatch em um servidor on-premises**
+ Nesse comando, `-a fetch-config` faz com que o atendente carregue a última versão do arquivo de configuração do atendente do CloudWatch e o `-s` inicia o atendente.

  Linux: se você salvou o arquivo de configuração no Systems Manager Parameter Store, insira o seguinte:

  ```
  sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -s -c ssm:configuration-parameter-store-name
  ```

  Linux: se você salvou o arquivo de configuração no computador local, insira o comando a seguir. Substitua *configuration-file-path* pelo caminho para o arquivo de configuração do atendente. Este arquivo é chamado `config.json`, se você o criou com o assistente, e pode ser chamado `amazon-cloudwatch-agent.json`, se você o criou manualmente.

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

  Windows Server: se você salvou o arquivo de configuração do atendente no Systems Manager Parameter Store, insira o seguinte no console do PowerShell:

  ```
  & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m onPremise -s -c ssm:configuration-parameter-store-name
  ```

  Windows Server: se você salvou o arquivo de configuração do atendente no computador local, digite o comando a seguir no console do PowerShell. Substitua *configuration-file-path* pelo caminho para o arquivo de configuração do atendente. Este arquivo é chamado `config.json`, se você o criou com o assistente, e pode ser chamado `amazon-cloudwatch-agent.json`, se você o criou manualmente.

  ```
  & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m onPremise -s -c file:configuration-file-path
  ```

# Métricas coletadas pelo atendente do CloudWatch
<a name="metrics-collected-by-CloudWatch-agent"></a>

 É possível coletar métricas de servidores instalando o atendente do CloudWatch no servidor. É possível instalar o agente tanto em instâncias do Amazon EC2 quanto em servidores on-premises. Você também pode instalar o agente em computadores que executam Linux, Windows Server ou macOS. Se você instalar o agente em uma instância do Amazon EC2, as métricas coletadas pelo agente serão adicionais às métricas habilitadas por padrão nas instâncias do Amazon EC2. Para obter informações sobre como instalar o atendente do CloudWatch em uma instância, consulte [Coleta de métricas, logs e rastreamentos usando o agente do CloudWatch](Install-CloudWatch-Agent.md). Você pode usar esta seção para saber mais informações sobre as métricas que são coletadas pelo agente do CloudWatch. 

## Métricas coletadas pelo atendente do CloudWatch em instâncias do Windows Server
<a name="windows-metrics-enabled-by-CloudWatch-agent"></a>

Em um servidor que execute o Windows Server, instalar o atendente do CloudWatch permite coletar as métricas associadas ao contadores no Monitor de Performance do Windows. Os nomes de métrica do CloudWatch para esses contadores são criados colocando um espaço entre o nome do objeto e o nome do contador. Por exemplo, o contador `% Interrupt Time` do objeto `Processor` recebe o nome da métrica `Processor % Interrupt Time` no CloudWatch. Para obter mais informações sobre os contadores do Monitor de Performance do Windows, consulte a documentação do Microsoft Windows Server.

O namespace padrão para métricas coletadas pelo atendente do CloudWatch é `CWAgent`, embora seja possível especificar um namespace diferente quando você configura o atendente.

## Métricas coletadas pelo atendente do CloudWatch em instâncias do Linux e macOS
<a name="linux-metrics-enabled-by-CloudWatch-agent"></a>

A tabela a seguir relaciona as métricas coletadas pelo atendente do CloudWatch em servidores Linux e computadores macOS.


| Métrica | Descrição | 
| --- | --- | 
|  `cpu_time_active` |  A quantidade de tempo que a CPU está ativa em qualquer capacidade. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_guest` |  A quantidade de tempo em que a CPU está executando uma CPU virtual para um sistema operacional convidado. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_guest_nice` |  O tempo em que a CPU está executando uma CPU virtual para um sistema operacional convidado, que é de baixa prioridade e pode ser interrompida por outros processos. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_idle` |  A quantidade de tempo em que a CPU está ociosa. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_iowait` |  A quantidade de tempo em que a CPU está aguardando a conclusão de operações de entrada/saída. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_irq` |  A quantidade de tempo em que a CPU está atendendo a interrupções. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_nice` |  O tempo em que a CPU permanece em modo de usuário com processos de baixa prioridade que podem ser facilmente interrompidos por processos de prioridade mais alta. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_softirq` |  A quantidade de tempo em que a CPU está atendendo a interrupções de software. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_steal` |  A quantidade de tempo em que a CPU está no *tempo roubado*, que é o tempo gasto em outros sistemas operacionais em um ambiente virtualizado. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_system` |  A quantidade de tempo em que a CPU está no modo de sistema. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_time_user` |  A quantidade de tempo em que a CPU está no modo de usuário. Essa métrica é medida em centésimos de segundo. Unidade: nenhuma  | 
|  `cpu_usage_active` |  A porcentagem de tempo que a CPU está ativa em qualquer capacidade. Unidade: percentual  | 
|  `cpu_usage_guest` |  O percentual de tempo que a CPU está executando uma CPU virtual para um sistema operacional convidado. Unidade: percentual  | 
|  `cpu_usage_guest_nice` |  A porcentagem de tempo em que a CPU está executando uma CPU virtual para um sistema operacional convidado que é de baixa prioridade e pode ser interrompida por outros processos. Unidade: percentual  | 
|  `cpu_usage_idle` |  O percentual de tempo em que a CPU está ociosa. Unidade: percentual  | 
|  `cpu_usage_iowait` |  O percentual de tempo que a CPU está aguardando a conclusão de operações de entrada/saída. Unidade: percentual  | 
|  `cpu_usage_irq` |  O percentual de tempo que a CPU está atendendo a interrupções. Unidade: percentual  | 
|  `cpu_usage_nice` |  A porcentagem de tempo que a CPU está em modo de usuário com processos de baixa prioridade que podem ser facilmente interrompidos por processos de prioridade mais alta. Unidade: percentual  | 
|  `cpu_usage_softirq` |  O percentual de tempo que a CPU está atendendo a interrupções de software. Unidade: percentual  | 
|  `cpu_usage_steal` |  O percentual de tempo que a CPU está no *tempo roubado*, ou o tempo gasto em outros sistemas operacionais em um ambiente virtualizado. Unidade: percentual  | 
|  `cpu_usage_system` |  O percentual de tempo que a CPU está no modo de sistema. Unidade: percentual  | 
|  `cpu_usage_user` |  O percentual de tempo que a CPU está no modo de usuário. Unidade: percentual  | 
|  `disk_free` |  O espaço livre nos discos. Unidade: bytes  | 
|  `disk_inodes_free` |  O número de nós de índice disponíveis no disco. Unidade: Contagem  | 
|  `disk_inodes_total` |  O número total de nós de índice reservados no disco. Unidade: Contagem  | 
|  `disk_inodes_used` |  O número de nós de índice usados no disco. Unidade: Contagem  | 
|  `disk_total` |  Total de espaço nos discos, incluindo usado e gratuito. Unidade: bytes  | 
|  `disk_used` |  O espaço usado nos discos. Unidade: bytes  | 
|  `disk_used_percent` |  O percentual do total de espaço em disco que é usado. Unidade: percentual  | 
|  `diskio_iops_in_progress` |  O número de solicitações de E/S que foram emitidas para o driver de dispositivo, mas ainda não foram concluídas. Unidade: Contagem  | 
|  `diskio_io_time` |  A quantidade de tempo que o disco tem solicitações de E/S na fila. Unidade: milissegundos A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `diskio_reads` |  O número de operações de leitura de disco. Unidade: Contagem A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `diskio_read_bytes` |  O número de bytes lidos dos discos. Unidade: bytes A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `diskio_read_time` |  A quantidade de tempo que solicitações de leitura aguardaram nos discos. Várias solicitações de leitura em espera ao mesmo tempo que aumentam em número. Por exemplo, se 5 solicitações aguardarem uma média de 100 milissegundos, 500 serão relatadas. Unidade: milissegundos A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `diskio_writes` |  O número de operações de gravação de disco. Unidade: Contagem A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `diskio_write_bytes` |  O número de bytes gravados nos discos. Unidade: bytes A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `diskio_write_time` |  A quantidade de tempo que solicitações de gravação aguardaram nos discos. Várias solicitações de gravação em espera ao mesmo tempo que aumentam em número. Por exemplo, se 8 solicitações aguardarem uma média de 1000 milissegundos, 8000 serão relatadas. Unidade: milissegundos A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `ethtool_bw_in_allowance_exceeded` |  O número de pacotes que foram colocados em fila e/ou descartados devido ao fato de que a largura de banda de entrada agregada excedeu o limite máximo para a instância. Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](CloudWatch-Agent-network-performance.md) Unidade: nenhuma  | 
|  `ethtool_bw_out_allowance_exceeded` |  Número de pacotes na fila e/ou descartados porque a largura de banda agregada de saída excedeu o máximo para a instância. Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](CloudWatch-Agent-network-performance.md) Unidade: nenhuma  | 
|  `ethtool_conntrack_allowance_exceeded` |  Número de pacotes descartados porque o monitoramento da conexão excedeu o máximo para a instância e não foi possível estabelecer novas conexões. Isso pode resultar em perda de pacotes para tráfego indo para a instância ou vindo da instância  Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](CloudWatch-Agent-network-performance.md) Unidade: nenhuma  | 
|  `ethtool_linklocal_allowance_exceeded` |  Número de pacotes descartados porque o PPS do tráfego para os serviços de proxy local excedeu o máximo para a interface da rede. Isso afeta o tráfego para o serviço de DNS, o Instance Metadata Service e o Amazon Time Sync Service.  Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para mais informações, consulte [Coletar métricas de performance da rede](CloudWatch-Agent-network-performance.md) Unidade: nenhuma  | 
|  `ethtool_pps_allowance_exceeded` |  Número de pacotes na fila e/ou descartados porque o PPS bidirecional excedeu o máximo para a instância.  Essa métrica será coletada somente se você listá-la na subseção `ethtool` da seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch. Para obter mais informações, consulte [Coletar métricas de performance da rede](CloudWatch-Agent-network-performance.md). Unidade: nenhuma  | 
|  `mem_active` |  A quantidade de memória que foi usada de alguma maneira durante o último período de amostra. Unidade: bytes  | 
|  `mem_available` |  A quantidade de memória que está disponível e pode ser fornecida instantaneamente para os processos. Unidade: bytes  | 
|  `mem_available_percent` |  O percentual de memória que está disponível e pode ser fornecido instantaneamente para os processos. Unidade: percentual  | 
|  `mem_buffered` |  A quantidade de memória que está sendo usada para buffers. Unidade: bytes  | 
|  `mem_cached` |  A quantidade de memória que está sendo usada para caches de arquivo. Unidade: bytes  | 
|  `mem_free` |  A quantidade de memória que não está sendo usada. Unidade: bytes  | 
|  `mem_inactive` |  A quantidade de memória que não foi usada de alguma maneira durante o último período de amostra Unidade: bytes  | 
|  `mem_shared` |  A quantidade de memória sendo compartilhada entre os processos. Unidade: bytes  | 
|  `mem_total` |  A quantidade total de memória. Unidade: bytes  | 
|  `mem_used` |  A quantidade de memória em uso no momento. Unidade: bytes  | 
|  `mem_used_percent` |  O percentual de memória em uso no momento. Unidade: percentual  | 
|  `net_bytes_recv` |  O número de bytes recebidos pela interface de rede. Unidade: bytes A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `net_bytes_sent` |  O número de bytes enviados pela interface de rede. Unidade: bytes A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `net_drop_in` |  O número de pacotes recebidos por essa interface de rede que foram descartados. Unidade: Contagem A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `net_drop_out` |  O número de pacotes transmitidos por essa interface de rede que foram descartados. Unidade: Contagem A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `net_err_in` |  O número de erros de recepção detectados por essa interface de rede. Unidade: Contagem A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `net_err_out` |  O número de erros de transmissão detectados por essa interface de rede. Unidade: Contagem A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `net_packets_sent` |  O número de pacotes enviados por essa interface de rede. Unidade: Contagem A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `net_packets_recv` |  O número de pacotes recebidos por essa interface de rede. Unidade: Contagem A única estatística que deve ser usada para essa métrica é `Sum`. Não use `Average`.  | 
|  `netstat_tcp_close` |  O número de conexões de TCP sem estado. Unidade: Contagem  | 
|  `netstat_tcp_close_wait` |  O número de conexões de TCP esperando por uma solicitação de encerramento do cliente. Unidade: Contagem  | 
|  `netstat_tcp_closing` |  O número de conexões TCP que estão esperando por uma solicitação de encerramento com confirmação do cliente. Unidade: Contagem  | 
|  `netstat_tcp_established` |  O número de conexões de TCP estabelecidas. Unidade: Contagem  | 
|  `netstat_tcp_fin_wait1` |  O número de conexões de TCP no estado `FIN_WAIT1` durante o processo de encerramento de uma conexão. Unidade: Contagem  | 
|  `netstat_tcp_fin_wait2` |  O número de conexões de TCP no estado `FIN_WAIT2` durante o processo de encerramento de uma conexão. Unidade: Contagem  | 
|  `netstat_tcp_last_ack` |  O número de conexões TCP esperando que o cliente envie a confirmação da mensagem de encerramento da conexão. Este é o último estado logo antes que a conexão seja encerrada. Unidade: Contagem  | 
|  `netstat_tcp_listen` |  O número de portas TCP atualmente escutando uma solicitação de conexão. Unidade: Contagem  | 
|  `netstat_tcp_none` |  O número de conexões de TCP com clientes inativos. Unidade: Contagem  | 
|  `netstat_tcp_syn_sent` |  O número de conexões de TCP esperando por uma solicitação de conexão correspondente após enviar uma solicitação de conexão. Unidade: Contagem  | 
|  `netstat_tcp_syn_recv` |  O número de conexões TCP esperando por uma confirmação de solicitação de conexão depois de ter sido enviada e recebida uma solicitação de conexão. Unidade: Contagem  | 
|  `netstat_tcp_time_wait` |  O número de conexões TCP esperando, no momento, para garantir que o cliente tenha recebido a confirmação da solicitação de encerramento da conexão. Unidade: Contagem  | 
|  `netstat_udp_socket` |  O número de conexões de UDP atuais. Unidade: Contagem  | 
|  `processes_blocked` |  O número de processos que estão bloqueados. Unidade: Contagem  | 
|  `processes_dead` |  O número de processos que estão inativos, o que é indicado pelo código de estado `X` no Linux. Essa métrica não é coletada em computadores macOS. Unidade: Contagem  | 
|  `processes_idle` |  O número de processos que estão ociosos (em suspensão por mais de 20 segundos). Disponível apenas em instâncias do FreeBSD. Unidade: Contagem  | 
|  `processes_paging` |  O número de processos que estão em paginação, o que é indicado pelo código de estado `W` no Linux. Essa métrica não é coletada em computadores macOS. Unidade: Contagem  | 
|  `processes_running` |  O número de processos que estão em execução, indicado pelo código de estado `R`. Unidade: Contagem  | 
|  `processes_sleeping` |  O número de processos que estão em suspensão, indicado pelo código de estado `S`. Unidade: Contagem  | 
|  `processes_stopped` |  O número de processos que estão interrompidos, indicado pelo código de estado `T`. Unidade: Contagem  | 
|  `processes_total` |  O número total de processos na instância. Unidade: Contagem  | 
|  `processes_total_threads` |  O número total de threads que compõem os processos. Essa métrica está disponível apenas em instâncias do Linux. Essa métrica não é coletada em computadores macOS. Unidade: Contagem  | 
|  `processes_wait` |  O número de processos que estão em paginação, o que é indicado pelo código de estado `W` em instâncias do FreeBSD. Essa métrica está disponível apenas em instâncias do FreeBSD e não está disponível em instâncias do Linux, Windows Server ou macOS. Unidade: Contagem  | 
|  `processes_zombies` |  O número de processos zumbi, indicado pelo código de estado `Z`. Unidade: Contagem  | 
|  `swap_free` |  A quantidade de espaço de troca que não está em uso. Unidade: bytes  | 
|  `swap_used` |  A quantidade de espaço de troca em uso no momento. Unidade: bytes  | 
|  `swap_used_percent` |  O percentual de espaço de troca em uso no momento. Unidade: percentual  | 

## Definições de métricas de memória coletadas pelo agente do CloudWatch
<a name="CloudWatch-agent-metrics-definitions"></a>

Quando o agente do CloudWatch coleta métricas de memória, a origem é o subsistema de gerenciamento de memória do host. Por exemplo, o kernel do Linux expõe dados mantidos pelo sistema operacional em `/proc`. Para a memória, os dados estão em `/proc/meminfo`. 

Cada sistema operacional e arquitetura diferente tem cálculos diferentes dos recursos usados pelos processos. Para obter mais informações, consulte as seções a seguir.

Durante cada intervalo de coleta, o agente do CloudWatch em cada instância coleta os recursos da instância e calcula os recursos que estão sendo usados por todos os processos que estão sendo executados nessa instância. Essas informações são relatadas de volta para as métricas do CloudWatch. É possível configurar a duração do intervalo de coleta no arquivo de configuração do agente do CloudWatch. Para obter mais informações, consulte [Arquivo de configuração do atendente do CloudWatch: seção do atendente](CloudWatch-Agent-Configuration-File-Details.md#CloudWatch-Agent-Configuration-File-Agentsection).

A lista a seguir explica como as métricas de memória que o agente do CloudWatch coleta são definidas.
+ **Memória ativa**: memória que está sendo usada por um processo. Em outras palavras, a memória usada pelas aplicações em execução no momento.
+  **Memória disponível**: a memória que pode ser fornecida instantaneamente aos processos sem que o sistema entre em swap (também conhecida como memória virtual). 
+ **Memória em buffer**: a área de dados compartilhada por dispositivos de hardware ou processos de programas que operam em velocidades e prioridades diferentes.
+ **Memória em cache**: armazena instruções e dados do programa que são usados repetidamente na operação dos programas que a CPU provavelmente precisará em seguida.
+ **Memória livre**: memória que não está sendo usada e está prontamente disponível. É totalmente livre para que o sistema a use quando necessário.
+ **Memória inativa**: páginas que não foram acessadas "recentemente".
+ **Memória total**: o tamanho real da memória física RAM.
+ **Memória usada**: memória que está sendo usada atualmente por programas e processos.

**Topics**
+ [Linux: métricas coletadas e cálculos usados](#CloudWatch-agent-metrics-definitions-calculations)
+ [macOS: métricas coletadas e cálculos usados](#CloudWatch-agent-metrics-definitions-calculations)
+ [Windows: métricas coletadas](#CloudWatch-agent-metrics-definitions-calculations)
+ [Exemplo: cálculo de métricas de memória no Linux](#CloudWatch-agent-metrics-definitions-LinuxExample)

### Linux: métricas coletadas e cálculos usados
<a name="CloudWatch-agent-metrics-definitions-calculations"></a>

Métricas coletadas e unidades:
+ Ativa (bytes)
+ Disponível (bytes)
+ Percentual disponível (percentual)
+ Em buffer (bytes)
+ Em cache (bytes)
+ Livre (bytes)
+ Inativa (bytes)
+ Total (bytes)
+ Usada (bytes)
+ Percentual usado (percentual)

**Memória usada** = Memória total - Memória livre - Memória em cache - Memória em buffer

**Memória total** = Memória usada \$1 Memória livre \$1 Memória em cache \$1 Memória em buffer

### macOS: métricas coletadas e cálculos usados
<a name="CloudWatch-agent-metrics-definitions-calculations"></a>

Métricas coletadas e unidades:
+ Ativa (bytes)
+ Disponível (bytes)
+ Percentual disponível (percentual)
+ Livre (bytes)
+ Inativa (bytes)
+ Total (bytes)
+ Usada (bytes)
+ Percentual usado (percentual)

**Memória disponível** = Memória livre \$1 Memória inativa

**Memória usada** = Memória total - Memória disponível

**Memória total** = Memória disponível \$1 Memória usada

### Windows: métricas coletadas
<a name="CloudWatch-agent-metrics-definitions-calculations"></a>

As métricas coletadas nos hosts Windows estão listadas abaixo. Todas essas métricas têm `None` para `Unit`.
+ Bytes disponíveis
+ Falhas de cache/seg
+ Falhas de página/seg
+ Páginas/seg

Não há cálculos usados para métricas do Windows porque o agente do CloudWatch analisa eventos usando contadores de performance.

### Exemplo: cálculo de métricas de memória no Linux
<a name="CloudWatch-agent-metrics-definitions-LinuxExample"></a>

Como exemplo, suponha que a inserção do comando **cat /proc/meminfo** em um host Linux mostre os resultados a seguir:

```
MemTotal:       3824388 kB
MemFree:         462704 kB
MemAvailable:   2157328 kB
Buffers:         126268 kB
Cached:         1560520 kB
SReclaimable:    289080 kB>
```

Neste exemplo, o agente do CloudWatch coletará os valores a seguir. Todos os valores que o agente do CloudWatch coleta e reporta estão em bytes.
+ `mem_total`: 3916173312 bytes
+ `mem_available`: 2209103872 bytes (MemFree\$1 em cache)
+ `mem_free`: 473808896 bytes
+ `mem_cached`: 1893990400 bytes (`cached` \$1 `SReclaimable`
+ `mem_used`: 1419075584 bytes (`MemTotal` – (`MemFree` \$1 `Buffers` \$1 (`Cached` \$1 `SReclaimable`)))
+ `mem_buffered`: 129667072 bytes
+ `mem_available_percent`: 56,41%
+ `mem_used_percent`: 36,24% (`mem_used` / `mem_total`) \$1 100

# Usar o agente do CloudWatch com a telemetria relacionada
<a name="CloudWatch-Agent-RelatedEntities"></a>

As métricas e os logs enviados ao CloudWatch podem incluir uma entidade opcional para correlacionar a telemetria. As entidades são usadas no painel [Analisar dados relacionados](ExploreRelated.md). O agente do CloudWatch envia entidades com um nome de serviço e um nome de ambiente incluídos.

O agente escolhe o nome do serviço e o nome do ambiente dos dados a seguir.

**Nome de serviço**

O agente escolhe o nome do serviço nas seguintes opções, em ordem de prioridade:
+ **Instrumentação do Application Signals**: o agente envia o nome do serviço usado pelo Application Signals. Isso pode ser sobrescrito alterando a variável `OTEL_SERVICE_NAME` de ambiente usada pelas bibliotecas de instrumentação compatíveis do OpenTelemetry.
+ **Configuração do agente do CloudWatch**: você pode [configurar o agente](CloudWatch-Agent-configure-related-telemetry.md) para usar um nome de serviço específico. Isso pode ser configurado no nível do agente, do plug-in, de métricas, logs ou de arquivo de logs.
+ **Nome da workload do Kubernetes**: em workloads do Kubernetes, o agente envia o nome da workload para o pod correspondente, na ordem de prioridade a seguir.
  + Nome da implantação
  + Nome de ReplicaSet
  + Nome de StatefulSet
  + Nome de DaemonSet
  + Nome de CronJob
  + Nome do trabalho
  + Nome do pod
  + Nome do contêiner
+ **Tags de recursos de metadados da instância**: para workloads do Amazon EC2, o agente envia um nome de tags, na ordem a seguir.
  + serviço
  + aplicação
  + aplicação

  Você deve [configurar os metadados da instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html#allow-access-to-tags-in-IMDS) para que o agente possa acessar as tags.
+ **Padrão**: se nenhum outro nome de serviço for encontrado, o agente enviará o nome `Unknown`.

**Nome do ambiente**

O agente escolhe o nome do ambiente entre as seguintes opções, em ordem de prioridade:
+ **Instrumentação do Application Signals**: o agente envia o nome do ambiente usado pelo Application Signals. Isso pode ser sobrescrito definindo uma variável `deployment.environment` de ambiente usada pelas bibliotecas de instrumentação compatíveis do OpenTelemetry. Por exemplo, as aplicações podem definir a variável `OTEL_RESOURCE_ATTRIBUTES=deployment.environment=MyEnvironment` de ambiente.
+ **Configuração do agente CloudWatch**: você pode [configurar o agente](CloudWatch-Agent-configure-related-telemetry.md) para usar um nome de ambiente específico. Isso pode ser configurado no nível do agente, do plug-in, de métricas, logs ou de arquivo de logs.
+ **Espaço de trabalho e nome do cluster**: para o Amazon EKS, `eks:cluster-name/Namespace`. Para o Kubernetes nativo em execução no Amazon EC2, `k8s:cluster-name/Namespace`.
+ **Tags de recursos dos metadados da instância**: para workloads do Amazon EC2, o agente pode usar a tag `AutoScalingGroup`.

  Você deve [configurar os metadados da instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html#allow-access-to-tags-in-IMDS) para que o agente possa acessar as tags.
+ Por padrão, as instâncias do Amazon EC2 que não estão executando o Kubernetes receberão o nome de ambiente `ec2:default`.

# Cenários comuns com o atendente do CloudWatch
<a name="CloudWatch-Agent-common-scenarios"></a>

 Esta seção fornece diferentes cenários que descrevem como concluir tarefas comuns de configuração e de personalização para o agente do CloudWatch. 

**Topics**
+ [Executar o atendente do CloudWatch como um usuário diferente](#CloudWatch-Agent-run-as-user)
+ [Como o atendente do CloudWatch lida com arquivos de log esparsos](#CloudWatch-Agent-sparse-log-files)
+ [Adicionar dimensões personalizadas a métricas coletadas pelo atendente do CloudWatch](#CloudWatch-Agent-adding-custom-dimensions)
+ [Agregar ou acumular métricas coletadas pelo atendente do CloudWatch](#CloudWatch-Agent-aggregating-metrics)
+ [Coletar métricas de alta resolução com o atendente do CloudWatch](#CloudWatch-Agent-collect-high-resolution-metrics)
+ [Envio de métricas, logs e rastreamentos a uma conta diferente](#CloudWatch-Agent-send-to-different-AWS-account)
+ [Diferenças de carimbo de data e hora entre o agente do CloudWatch e o agente anterior do CloudWatch Logs](#CloudWatch-Agent-logs-timestamp-differences)
+ [Anexar arquivos de configuração do coletor do OpenTelemetry](#CloudWatch-Agent-appending-OpenTelemetry-config-files)

## Executar o atendente do CloudWatch como um usuário diferente
<a name="CloudWatch-Agent-run-as-user"></a>

Em servidores Linux, o CloudWatch é executado como o usuário raiz por padrão. Para fazer com que o atendente seja executado como um usuário diferente, use o parâmetro `run_as_user` na seção do `agent` no arquivo de configuração do atendente do CloudWatch. Essa opção está disponível apenas em servidores Linux.

Se você já estiver executando o atendente com o usuário raiz e desejar passar a usar um usuário diferente, use um dos procedimentos a seguir.

**Para executar o atendente do CloudWatch como um usuário diferente em uma instância do EC2 que executa o Linux**

1. Baixe e instale um novo pacote do atendente do CloudWatch. 

1. Crie um novo usuário do Linux ou utilize o usuário padrão chamado `cwagent` que o arquivo RPM ou DEB criou.

1. Forneça as credenciais para esse usuário de uma das seguintes maneiras:
   + Se o arquivo `.aws/credentials` existir no diretório base do usuário raiz, seránecessário criar um arquivo de credenciais para o usuário que será usado para executar o atendente do CloudWatch. Esse arquivo de credenciais será `/home/username/.aws/credentials`. Depois defina o valor do parâmetro `shared_credential_file` no `common-config.toml` como o nome do caminho do arquivo de credenciais. Para obter mais informações, consulte [Instalar o agente do CloudWatch usando o AWS Systems Manager](installing-cloudwatch-agent-ssm.md).
   + Se o arquivo`.aws/credentials` não existir no diretório home do usuário raiz, você poderá seguir um destes procedimentos:
     + Crie um arquivo de credenciais para o usuário que será usado para executar o atendente do CloudWatch. Esse arquivo de credenciais será `/home/username/.aws/credentials`. Depois defina o valor do parâmetro `shared_credential_file` no `common-config.toml` como o nome do caminho do arquivo de credenciais. Para obter mais informações, consulte [Instalar o agente do CloudWatch usando o AWS Systems Manager](installing-cloudwatch-agent-ssm.md).
     + Em vez de criar um arquivo de credenciais, anexe uma função do IAM à instância. O atendente usa essa função como o provedor de credenciais.

1. No arquivo de configuração do atendente do CloudWatch, adicione a seguinte linha à seção `agent`:

   ```
   "run_as_user": "username"
   ```

   Faça outras modificações no arquivo de configuração conforme necessário. Para obter mais informações, consulte . [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md)

1. Dê ao usuário as permissões necessárias. O usuário deve ter permissões de Leitura (r) para que os arquivos de log sejam coletados e ter permissão de Executar (x) em cada diretório no caminho dos arquivos de log.

1. Inicie o atendente com o arquivo de configuração que você acabou de modificar.

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

**Para executar o atendente do CloudWatch como um usuário diferente em um servidor on-premises que executa o Linux**

1. Baixe e instale um novo pacote do atendente do CloudWatch. 

1. Crie um novo usuário do Linux ou utilize o usuário padrão chamado `cwagent` que o arquivo RPM ou DEB criou.

1. Armazene as credenciais desse usuário em um caminho que o usuário possa acessar, como `/home/username/.aws/credentials`.

1. Defina o valor do parâmetro `shared_credential_file` em `common-config.toml` como o nome do caminho do arquivo de credenciais. Para obter mais informações, consulte [Instalar o agente do CloudWatch usando o AWS Systems Manager](installing-cloudwatch-agent-ssm.md).

1. No arquivo de configuração do atendente do CloudWatch, adicione a seguinte linha à seção `agent`:

   ```
   "run_as_user": "username"
   ```

   Faça outras modificações no arquivo de configuração conforme necessário. Para obter mais informações, consulte . [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md)

1. Dê ao usuário permissões necessárias. O usuário deve ter permissões de Leitura (r) para que os arquivos de log sejam coletados e ter permissão de Executar (x) em cada diretório no caminho dos arquivos de log.

1. Inicie o atendente com o arquivo de configuração que você acabou de modificar.

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

## Como o atendente do CloudWatch lida com arquivos de log esparsos
<a name="CloudWatch-Agent-sparse-log-files"></a>

Arquivos esparsos são arquivos com blocos vazios e conteúdo real. Um arquivo esparso usa espaço em disco de forma mais eficiente, escrevendo informações breves que representam os blocos vazios no disco em vez dos bytes nulos reais que compõem o bloco. Isso torna o tamanho real de um arquivo esparso geralmente muito menor do que seu tamanho aparente.

No entanto, o atendente do CloudWatch não trata arquivos esparsos de forma diferente do que trata arquivos normais. Quando o atendente lê um arquivo esparso, os blocos vazios são tratados como blocos “reais” preenchidos com bytes nulos. Por isso, o atendente do CloudWatch publica tantos bytes quanto o tamanho aparente de um arquivo esparso no CloudWatch. 

Configurar o atendente do CloudWatch para publicar um arquivo esparso pode causar um aumento inesperado de custos do CloudWatch, então recomendamos não fazer isso. Por exemplo, `/var/logs/lastlog` no Linux geralmente é um arquivo muito esparso, e recomendamos não publicá-lo no CloudWatch. 

## Adicionar dimensões personalizadas a métricas coletadas pelo atendente do CloudWatch
<a name="CloudWatch-Agent-adding-custom-dimensions"></a>

Para adicionar dimensões personalizadas, como tags para métricas coletadas pelo atendente, adicione o campo `append_dimensions` à seção do arquivo de configuração do atendente que lista essas métricas.

Por exemplo, a seguinte seção de exemplo do arquivo de configuração adiciona uma dimensão personalizada chamada `stackName` com um valor de `Prod` para as métricas de `cpu` e `disk` coletadas pelo atendente.

```
"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"
  }
}
```

Lembre-se de que, sempre que você alterar o arquivo de configuração do atendente, deverá reiniciar o atendente para que as alterações entrem em vigor.

## Agregar ou acumular métricas coletadas pelo atendente do CloudWatch
<a name="CloudWatch-Agent-aggregating-metrics"></a>

Para agregar ou acumular métricas coletadas pelo atendente, adicione um campo `aggregation_dimensions` à seção para essa métrica no arquivo de configuração do atendente.

Por exemplo, o seguinte trecho do arquivo de configuração acumula métricas na dimensão de `AutoScalingGroupName`. As métricas de todas as instâncias em cada grupo do Auto Scaling são agregadas e podem ser visualizadas como um todo.

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

Para acumular junto à combinação de cada dimensão `InstanceId` e `InstanceType`, além de acumular no nome do grupo do Auto Scaling, adicione o seguinte.

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

Para acumular métricas em apenas uma coleção, use `[]`.

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

Lembre-se de que, sempre que você alterar o arquivo de configuração do atendente, deverá reiniciar o atendente para que as alterações entrem em vigor.

## Coletar métricas de alta resolução com o atendente do CloudWatch
<a name="CloudWatch-Agent-collect-high-resolution-metrics"></a>

O campo `metrics_collection_interval` especifica o intervalo de tempo para as métricas coletadas, em segundos. Ao especificar um valor menor do que 60 para esse campo, as métricas são coletadas como métricas de alta resolução.

Por exemplo, se todas as métricas devem ser de alta resolução e coletadas a cada 10 segundos, especifique 10 como o valor de `metrics_collection_interval` na seção `agent` como um intervalo de coleta de métricas global.

```
"agent": {
  "metrics_collection_interval": 10
}
```

Como alternativa, o exemplo a seguir define as métricas de `cpu` a serem coletadas a cada segundo, e todas as outras métricas são coletadas a cada 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"
      ]
    }
  }
}
```

Lembre-se de que, sempre que você alterar o arquivo de configuração do atendente, deverá reiniciar o atendente para que as alterações entrem em vigor.

## Envio de métricas, logs e rastreamentos a uma conta diferente
<a name="CloudWatch-Agent-send-to-different-AWS-account"></a>

Para que o agente do CloudWatch envie as métricas, logs ou rastreamentos a uma conta diferente, especifique um parâmetro `role_arn` no arquivo de configuração do agente no servidor de envio. O valor `role_arn` especifica uma função do IAM na conta de destino que o atendente utiliza ao enviar dados à conta de destino. Essa função permite que a conta de envio assuma uma função correspondente na conta de destino ao entregar as métricas ou logs para a conta de destino.

Também é possível especificar strings `role_arn` separadas no arquivo de configuração do agente: uma para usar ao enviar métricas, outra para enviar logs e uma outra para enviar rastreamentos.

O exemplo a seguir de parte da seção `agent` do arquivo de configuração define o agente para usar `CrossAccountAgentRole` ao enviar dados para uma conta diferente.

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

Como alternativa, o exemplo a seguir define perfis diferentes para a conta de envio a ser usada para o envio de métricas, logs e rastreamentos:

```
"metrics": {
    "credentials": {
     "role_arn": "RoleToSendMetrics"
    },
    "metrics_collected": {....
```

```
"logs": {
    "credentials": {
    "role_arn": "RoleToSendLogs"
    },
    ....
```

**Políticas necessárias**

Ao especificar um `role_arn` no arquivo de configuração do atendente, você também deve garantir que as funções do IAM de contas de envio e de destino tenham determinadas políticas. As funções nas contas de envio e de destino devem ter `CloudWatchAgentServerPolicy`. Para obter mais informações sobre como atribuir essa política a uma função, consulte [Pré-requisitos](prerequisites.md).

A função na conta de envio também deverá incluir a seguinte política. Você adiciona essa política na guia **Permissions** (Permissões) do console do IAM ao editar a função.

------
#### [ JSON ]

****  

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

------

A função na conta de destino deverá incluir a política a seguir para que ela reconheça a função do IAM usada pela conta de envio. Você inclui essa política na guia **Trust relationships** (Relações de confiança) do console do IAM ao editar a função. Essa função é a função especificada em `agent-role-in-target-account` na política usada pela conta de envio.

------
#### [ JSON ]

****  

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

------

## Diferenças de carimbo de data e hora entre o agente do CloudWatch e o agente anterior do CloudWatch Logs
<a name="CloudWatch-Agent-logs-timestamp-differences"></a>

O atendente do CloudWatch oferece suporte a um conjunto diferente de símbolos para formatos de carimbo de data/hora, em comparação com o atendente do CloudWatch Logs mais antigo. Essas diferenças são mostradas na tabela a seguir.


| Símbolos compatíveis com os dois atendentes | Símbolos compatíveis unicamente com o agente do CloudWatch | Símbolos compatíveis somente com o atendente mais antigo do CloudWatch Logs | 
| --- | --- | --- | 
|  %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  | 

Para obter mais informações sobre os significados dos símbolos compatíveis com o novo atendente do CloudWatch, consulte [Arquivo de configuração do atendente do CloudWatch: seção Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Logssection) no *Manual do usuário do Amazon CloudWatch*. Para obter informações sobre os significados dos símbolos compatíveis com o atendente do CloudWatch Logs, consulte [Arquivo de configuração do atendente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html#agent-configuration-file) no *Manual do usuário do Amazon CloudWatch Logs*.

## Anexar arquivos de configuração do coletor do OpenTelemetry
<a name="CloudWatch-Agent-appending-OpenTelemetry-config-files"></a>

 O agente do CloudWatch é compatível com os arquivos de configuração suplementares do coletor do OpenTelemetry junto com seus próprios arquivos de configuração. Esse recurso permite que você use os recursos do agente do CloudWatch, como o CloudWatch Application Signals ou o Container Insights, por meio da configuração do agente do CloudWatch, e inclua a configuração existente do coletor do OpenTelemetry com um único agente. 

Para evitar conflitos de mesclagem com pipelines criados automaticamente pelo agente do CloudWatch, recomendamos que você adicione um sufixo personalizado a cada um dos componentes e pipelines na configuração do coletor do OpenTelemetry.

```
receivers:
  otlp/custom-suffix:
    protocols:
      http:

exporters:
  awscloudwatchlogs/custom-suffix:
    log_group_name: "test-group"
    log_stream_name: "test-stream"
  
service:
  pipelines:
    logs/custom-suffix:
      receivers: [otlp/custom-suffix]
      exporters: [awscloudwatchlogs/custom-suffix]
```

Para configurar o agente do CloudWatch, inicie-o usando a opção `fetch-config` e especifique o arquivo de configuração do agente do CloudWatch. O agente do CloudWatch exige pelo menos um arquivo de configuração do agente do CloudWatch.

```
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -c file:/tmp/agent.json -s
```

Em seguida, use a opção `append-config` ao especificar o arquivo de configuração do coletor do OpenTelemetry.

```
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -c file:/tmp/otel.yaml -s
```

O agente mescla os dois arquivos de configuração na inicialização e registra em log a configuração resolvida.

# Preferência de credenciais do agente do CloudWatch
<a name="CloudWatch-Agent-Credentials-Preference"></a>

 Esta seção descreve a cadeia de provedores de credenciais que o agente do CloudWatch usa para obter as credenciais ao se comunicar com outros serviços e APIs da AWS. A ordenação é a seguinte: 

**nota**  
 As preferências listadas nos números dois a cinco seguem a mesma ordem de preferência conforme definido no AWS SDK. Para obter mais informações, consulte [Specifying Credentials](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials) na documentação do SDK. 

1. Arquivos de configuração e de credenciais compartilhados conforme definido no arquivo `common-config.toml` do agente CloudWatch. Para obter mais informações, consulte [Instalar o agente do CloudWatch usando o AWS Systems Manager](installing-cloudwatch-agent-ssm.md).

1. Variáveis ​​de ambiente do AWS SDK.
**Importante**  
No Linux, se você executar o agente do CloudWatch usando o script `amazon-cloudwatch-agent-ctl`, o script iniciará o agente como um serviço `systemd`. Nesse caso, variáveis de ambiente como `HOME`, `AWS_ACCESS_KEY_ID` e `AWS_SECRET_ACCESS_KEY` não podem ser acessadas pelo agente.

1. Arquivos de configuração e de credenciais compartilhados encontrados em `$HOME/%USERPROFILE%`.
**nota**  
O agente do CloudWatch procura `.aws/credentials` em `$HOME` para os sistemas Linux e MacOS e procura em `%USERPROFILE%` para o sistema Windows. Ao contrário do AWS SDK, o agente do CloudWatch não tem métodos alternativos para determinar o diretório inicial se as variáveis ​​de ambiente estiverem inacessíveis. Essa diferença de comportamento visa manter a compatibilidade retroativa com implementações anteriores do AWS SDK.  
Além disso, ao contrário das credenciais compartilhadas encontradas em `common-config.toml`, se as credenciais compartilhadas derivadas do AWS SDK expirarem e forem alternadas, as credenciais renovadas não serão obtidas automaticamente pelo agente do CloudWatch e exigirão uma reinicialização do agente para fazer isso.

1. Um perfil do AWS Identity and Access Management para tarefas, se houver uma aplicação que usa uma definição de tarefa do Amazon Elastic Container Service ou uma operação de API RunTask.

1. Um perfil de instância anexado a uma instância do Amazon EC2.

Como prática recomendada, sugerimos especificar as credenciais na ordem apresentada a seguir ao usar o agente do CloudWatch.

1. Use perfis do IAM para tarefas se sua aplicação usar uma definição de tarefa do Amazon Elastic Container Service ou uma operação de API RunTask.

1. Use perfis do IAM se sua aplicação for executada em uma instância do Amazon EC2.

1. Use o arquivo `common-config.toml` do agente do CloudWatch para especificar o arquivo de credenciais. Esse arquivo de credenciais é o mesmo usado por outros AWS SDKs e pela AWS CLI. Se já estiver usando um arquivo de credenciais compartilhadas, também poderá usá-lo para essa finalidade. Se você fornecê-lo ao usar o arquivo `common-config.toml` do agente do CloudWatch, garantirá que o agente consumirá credenciais rotacionadas quando elas expirarem e forem substituídas sem a necessidade de reiniciar o agente.

1. Use variáveis ​​de ambiente. Definir variáveis ​​de ambiente é útil se você estiver realizando um trabalho de desenvolvimento em um computador que não seja uma instância do Amazon EC2.

**nota**  
 Se você enviar telemetria para uma conta diferente, conforme explicado em [Envio de métricas, logs e rastreamentos a uma conta diferente](CloudWatch-Agent-common-scenarios.md#CloudWatch-Agent-send-to-different-AWS-account), o agente do CloudWatch usará a cadeia de provedores de credenciais descrita nesta seção para obter o conjunto inicial de credenciais. Em seguida, ele usa essas credenciais ao assumir o perfil do IAM especificado por `role_arn` no arquivo de configuração do agente do CloudWatch. 

# Solucionar problemas do atendente do CloudWatch
<a name="troubleshooting-CloudWatch-Agent"></a>

 Você pode usar as informações apresentadas nesta seção para solucionar problemas que possa encontrar com o agente do CloudWatch. 

Ao encontrar problemas com o agente do CloudWatch, você pode usar o runbook de automação `AWSSupport-TroubleshootCloudWatchAgent`. A ferramenta de solução de problemas da AWS pode:
+ Verificar as permissões do IAM e os perfis de instância
+ Verificar o status do agente e analisar os logs
+ Testar a conectividade do endpoint
+ Coletar e carregar automaticamente logs relevantes para o Amazon S3

Para obter informações detalhadas sobre a ferramenta de solução de problemas da AWS, consulte [Support Automation Workflow (SAW) Runbook: Troubleshoot CloudWatch Agent](https://repost.aws/articles/ARDFhNRgSMRcahrIbGJaIC4g/support-automation-workflow-saw-runbook-troubleshoot-amazon-cloudwatch-agent).

**Topics**
+ [Parâmetros de linha de comando do atendente do CloudWatch](#CloudWatch-Agent-options-help)
+ [Falha na instalação do agente do CloudWatch usando o recurso Run Command](#CloudWatch-Agent-installation-fails)
+ [O atendente do CloudWatch não inicia](#CloudWatch-Agent-troubleshooting-cannot-start)
+ [Verificar se o atendente do CloudWatch está em execução](#CloudWatch-Agent-troubleshooting-verify-running)
+ [O atendente do CloudWatch não é iniciado e o erro menciona uma região do Amazon EC2](#CloudWatch-Agent-troubleshooting-EC2-region)
+ [O atendente do CloudWatch não inicia no Windows Server](#CloudWatch-Agent-troubleshooting-Windows-start)
+ [Onde estão as métricas?](#CloudWatch-Agent-troubleshooting-no-metrics)
+ [O atendente do CloudWatch leva muito tempo para ser executado em um contêiner ou registra um erro de limite de salto](#CloudWatch-Agent-container-slow)
+ [Atualizei a configuração de meu atendente, mas não vejo as novas métricas ou logs no console do CloudWatch](#CloudWatch-Agent-troubleshooting-update-no-new-metrics)
+ [Arquivos e locais do atendente do CloudWatch](#CloudWatch-Agent-files-and-locations)
+ [Encontrar informações sobre versões do atendente do CloudWatch](#CloudWatch-Agent-troubleshooting-agent-version)
+ [Logs gerados pelo atendente do CloudWatch](#CloudWatch-Agent-troubleshooting-loginfo)
+ [Interromper e reiniciar o atendente do CloudWatch](#CloudWatch-Agent-troubleshooting-stopping-restarting)

## Parâmetros de linha de comando do atendente do CloudWatch
<a name="CloudWatch-Agent-options-help"></a>

Para ver a lista completa de parâmetros compatíveis com o atendente do CloudWatch, insira o seguinte na linha de comando em um computador onde ele estiver instalado:

```
amazon-cloudwatch-agent-ctl -help
```

## Falha na instalação do agente do CloudWatch usando o recurso Run Command
<a name="CloudWatch-Agent-installation-fails"></a>

Para instalar o agente do CloudWatch usando o Systems Manager Run Command, o agente do SSM no servidor de destino deve ter a versão 2.2.93.0 ou posterior do agente do SSM. Caso seu SSM Agent não esteja na versão correta, você poderá encontrar erros que incluem as seguintes mensagens:

```
no latest version found for package AmazonCloudWatchAgent on platform linux
```

```
failed to download installation package reliably
```

Para obter informações sobre como instalar ou atualizar a versão do SSM Agent, consulte [Instalar e configurar o SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) no *Manual do usuário do AWS Systems Manager*.

## O atendente do CloudWatch não inicia
<a name="CloudWatch-Agent-troubleshooting-cannot-start"></a>

Se o atendente do CloudWatch falhar ao iniciar, pode haver um problema em sua configuração. As informações de configuração são registradas no arquivo `configuration-validation.log`. O arquivo está localizado em `/opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log` nos servidores Linux e em `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log` nos servidores que executam o Windows Server.

## Verificar se o atendente do CloudWatch está em execução
<a name="CloudWatch-Agent-troubleshooting-verify-running"></a>

Você pode consultar o atendente do CloudWatch para saber ele se está em execução ou se foi interrompido. Você pode usar o AWS Systems Manager para fazer isso remotamente. Também pode usar linha de comando, mas apenas para verificar um servidor local.

**Para consultar o status do atendente do CloudWatch usando o Run Command**

1. Abra o console do Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, selecione **Executar comando**.

   - ou -

   Se a página inicial do AWS Systems Manager for exibida, role para baixo e escolha **Explore Run Command**.

1. Selecione **Run command**.

1. Na lista **Documento de comando**, selecione o botão ao lado de **AmazonCloudWatch-ManageAgent**.

1. Na lista **Ação**, escolha **status**.

1. Em **Origem de configuração opcional** escolha **padrão** e mantenha **Local de configuração opcional** em branco.

1. Na área **Destino**, selecione a instância a ser verificada.

1. Escolha **Executar**.

Se o atendente estiver em execução, a saída poderá ser semelhante ao seguinte.

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

Se o atendente for interrompido, o campo `"status"` exibirá `"stopped"`.

**Para consultar o status do atendente do CloudWatch localmente usando a linha de comando**
+ Em um servidor Linux, digite o seguinte:

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

  Em um servidor que executa o Windows Server, digite o seguinte em PowerShell como administrador:

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

## O atendente do CloudWatch não é iniciado e o erro menciona uma região do Amazon EC2
<a name="CloudWatch-Agent-troubleshooting-EC2-region"></a>

Se o atendente não for iniciado e a mensagem de erro mencionar um endpoint da região do Amazon EC2, talvez você tenha configurado o atendente de maneira que ele precise acessar o endpoint do Amazon EC2 sem conceder esse acesso.

Por exemplo, se você especificar um valor para o parâmetro `append_dimensions` no arquivo de configuração do atendente que depende dos metadados do Amazon EC2 e usar proxies, será necessário verificar se o servidor pode acessar o endpoint do Amazon EC2. Para obter mais informações sobre esses endpoints, consulte [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region) no *Referência geral da Amazon Web Services*.

## O atendente do CloudWatch não inicia no Windows Server
<a name="CloudWatch-Agent-troubleshooting-Windows-start"></a>

No Windows Server, você poderá ver o seguinte erro:

```
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
```

Para corrigi-lo, primeiro verifique se o serviço do servidor está em execução. Esse erro pode ser visto se o atendente tentar iniciar quando o serviço do servidor não está em execução.

Se o serviço do servidor já estiver em execução, talvez o probema seja o descrito a seguir. Em algumas instalações do Windows Server, o atendente do CloudWatch leva mais de 30 segundos para iniciar. Como o Windows Server, por padrão, permite apenas 30 segundos para iniciar serviços, isso faz com que o atendente falhe com um erro semelhante ao seguinte:

Para corrigir esse problea, aumente o valor de tempo limite do serviço. Para obter mais informações, consulte [ Um serviço não começa, e os eventos 7000 e 7011 estão registrados no log de eventos do Windows](https://support.microsoft.com/en-us/help/922918/a-service-does-not-start-and-events-7000-and-7011-are-logged-in-window).

## Onde estão as métricas?
<a name="CloudWatch-Agent-troubleshooting-no-metrics"></a>

Se o atendente do CloudWatch estiver em execução, mas não for possível encontrar métricas coletadas por ele no Console de gerenciamento da AWS ou na AWS CLI, confirme se você está usando o namespace correto. Por padrão, o namespace para métricas coletado pelo atendente é `CWAgent`. Você pode personalizar o namespace usando o campo `namespace` na seção `metrics` do arquivo de configuração do atendente. Se você não vir as métricas esperadas, verifique o arquivo de configuração para confirmar o namespace que está sendo usado.

Quando você baixa o pacote do atendente do CloudWatch pela primeira vez, o arquivo de configuração do atendente é `amazon-cloudwatch-agent.json`. Esse arquivo está no diretório em que você executou o assistente de configuração ou pode ter sido transferido para um diretório diferente. Se você usar o assistente de configuração, a saída do arquivo de configuração do atendente será chamada de `config.json`. Para obter mais informações sobre o arquivo de configuração, incluindo o campo `namespace`, consulte [Arquivo de configuração do atendente do CloudWatch: seção de métricas](CloudWatch-Agent-Configuration-File-Details.md#CloudWatch-Agent-Configuration-File-Metricssection). 

## O atendente do CloudWatch leva muito tempo para ser executado em um contêiner ou registra um erro de limite de salto
<a name="CloudWatch-Agent-container-slow"></a>

Se você executar o atendente do CloudWatch como um serviço de contêiner e quiser adicionar dimensões métricas do Amazon EC2 a todas as métricas coletadas pelo atendente, poderá ver os seguintes erros na versão v1.247354.0 do atendente:

```
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:
```

Você poderá ver esse erro se o atendente tentar obter metadados de IMDSv2 dentro de um contêiner sem um limite de salto apropriado. Nas versões do atendente anteriores à v1.247354.0, você pode ter esse problema sem ver a mensagem de log. 

Para resolver isso, aumente o limite de salto para 2 seguindo as instruções em [Configurar as opções de metadados da instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#configuring-IMDS-existing-instances.).

## Atualizei a configuração de meu atendente, mas não vejo as novas métricas ou logs no console do CloudWatch
<a name="CloudWatch-Agent-troubleshooting-update-no-new-metrics"></a>

Se você atualizar o arquivo de configuração do atendente do CloudWatch, na próxima vez que iniciar o atendente, deverá usar a opção **fetch-config**. Por exemplo, se você armazenou o arquivo atualizado no computador local, insira o seguinte comando:

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

## Arquivos e locais do atendente do CloudWatch
<a name="CloudWatch-Agent-files-and-locations"></a>

A tabela a seguir lista os arquivos instalados e usados pelo atendente do CloudWatch, bem como seus locais nos servidores que executam o Linux ou o Windows Server.


| Arquivo | Local do Linux | Local do Windows Server | 
| --- | --- | --- | 
|  O script de controle que controla o início, a interrupção e a reinicialização do atendente. |  `/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl` ou `/usr/bin/amazon-cloudwatch-agent-ctl`  |  `$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1`  | 
|  O arquivo de log no qual o atendente grava. Talvez você precise anexá-lo ao entrar em contato com AWS Support. |  `/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log` ou `/var/log/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.log`  |  `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log`  | 
|  Arquivo de validação de configuração do atendente. |  `/opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log` ou `/var/log/amazon/amazon-cloudwatch-agent/configuration-validation.log`  |  `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log`  | 
|  O arquivo JSON usado para configurar o atendente, imediatamente após o assistente criá-lo. Para obter mais informações, consulte [Criar o arquivo de configuração do atendente do CloudWatch](create-cloudwatch-agent-configuration-file.md). |  `/opt/aws/amazon-cloudwatch-agent/bin/config.json`   |  `$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\config.json`  | 
|  O arquivo JSON usado para configurar o atendente, se esse arquivo de configuração tiver sido baixado do Parameter Store. |  `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json` ou `/etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.json`  |  `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json`  | 
|  O arquivo TOML usado para especificar informações de região e credenciais a serem usadas pelo agente, substituindo os padrões do sistema. |  `/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml` ou `/etc/amazon/amazon-cloudwatch-agent/common-config.toml`  |  `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml`  | 
|  O arquivo TOML que contém o conteúdo convertido do arquivo de configuração JSON. O script `amazon-cloudwatch-agent-ctl` gera esse arquivo. Os usuários não devem modificar diretamente esse arquivo. Isso pode ser útil para verificar se a tradução de JSON para TOML foi bem-sucedida.  |  `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml` ou `/etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.toml`  |  `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.toml`  | 
|  O arquivo YAML que contém o conteúdo convertido do arquivo de configuração JSON. O script `amazon-cloudwatch-agent-ctl` gera esse arquivo. Você não deve modificar diretamente este arquivo. Este arquivo pode ser útil para verificar se a tradução de JSON para TOML foi bem-sucedida.  |  `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.yaml or /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.yaml`  |  `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.yaml`  | 

## Encontrar informações sobre versões do atendente do CloudWatch
<a name="CloudWatch-Agent-troubleshooting-agent-version"></a>

Para localizar o número de versão do atendente do CloudWatch em um servidor Linux, insira o seguinte comando:

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

Para localizar o número de versão do atendente do CloudWatch no Windows Server, insira o seguinte comando:

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

**nota**  
Usar esse comando é a maneira correta de localizar a versão do atendente do CloudWatch. Se você usar **Programs and Features** (Programas e recursos) no painel de controle, verá um número de versão incorreto.

Também é possível baixar um arquivo README sobre as alterações mais recentes no atendente e um arquivo que indica o número da versão que está disponível atualmente para baixar. Esses arquivos estão nos seguintes locais:
+ `https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/RELEASE_NOTES` ou `https://amazoncloudwatch-agent-us-east-1.s3.us-east-1.amazonaws.com/info/latest/RELEASE_NOTES`
+ `https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/CWAGENT_VERSION` ou `https://amazoncloudwatch-agent-us-east-1.s3.us-east-1.amazonaws.com/info/latest/CWAGENT_VERSION`

## Logs gerados pelo atendente do CloudWatch
<a name="CloudWatch-Agent-troubleshooting-loginfo"></a>

O atendente gera um log enquanto é executado. Esse log inclui informações de solução de problemas. Esse log é o arquivo `amazon-cloudwatch-agent.log`. O arquivo está localizado em `/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log` nos servidores Linux e em `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log` nos servidores que executam o Windows Server.

Você pode configurar o atendente para registrar em log os detalhes adicionais no arquivo `amazon-cloudwatch-agent.log`. No arquivo de configuração do atendente, na seção `agent`, defina o campo `debug` como `true`. Depois, reconfigure e reinicie o atendente do CloudWatch. Para desativar o registro dessas informações adicionais no log, defina o campo `debug` como `false`. Em seguida, reconfigure e reinicie o atendente. Para obter mais informações, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

Nas versões 1.247350.0 e posteriores do atendente do CloudWatch, você pode definir opcionalmente o campo `aws_sdk_log_level` na seção `agent` do arquivo de configuração do atendente com uma ou mais das opções a seguir. Separe várias opções com o caractere `|`.
+ `LogDebug`
+ `LogDebugWithSigning`
+ `LogDebugWithHTTPBody`
+ `LogDebugRequestRetries`
+ `LogDebugWithEventStreamBody`

Para mais informações sobre essas opções, consulte [LogLevelType](https://docs.aws.amazon.com/sdk-for-go/api/aws/#LogLevelType).

## Interromper e reiniciar o atendente do CloudWatch
<a name="CloudWatch-Agent-troubleshooting-stopping-restarting"></a>

Você pode interromper o atendente do CloudWatch manualmente usando o AWS Systems Manager ou a linha de comando.

**Para interromper o atendente do CloudWatch usando o Run Command**

1. Abra o console do Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, selecione **Executar comando**.

   - ou -

   Se a página inicial do AWS Systems Manager for exibida, role para baixo e escolha **Explore Run Command**.

1. Selecione **Run command**.

1. Na lista **Documento do comando**, escolha **AmazonCloudWatch-ManageAgent**.

1. Na área **Targets** (Destinos), escolha a instância onde você instalou o atendente do CloudWatch.

1. Na lista **Ação**, escolha **interromper**.

1. Mantenha **Optional Configuration Source (Origem de configuração opcional)** e **Optional Configuration Location (Local de configuração opcional)** em branco.

1. Escolha **Executar**.

**Para interromper o atendente do CloudWatch localmente usando a linha de comando**
+ Em um servidor Linux, digite o seguinte:

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

  Em um servidor que executa o Windows Server, digite o seguinte em PowerShell como administrador:

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

Para reiniciar o atendente, siga as instruções em [(Opcional) Modificar a configuração comum e o perfil nomeado para o atendente do CloudWatch](installing-cloudwatch-agent-ssm.md#CloudWatch-Agent-profile-instance-fleet).