

# Instalación del agente de CloudWatch con el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm
<a name="install-CloudWatch-Observability-EKS-addon"></a>

Puede utilizar el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm de observabilidad de Amazon CloudWatch para instalar los agentes de CloudWatch y de Fluent-bit en un clúster de Amazon EKS. También puede usar el gráfico de Helm para instalar los agentes de CloudWatch y de Fluent-bit en un clúster de Kubernetes que no esté alojado en Amazon EKS.

El uso de cualquiera de los dos métodos en un clúster de Amazon EKS habilita, de forma predeterminada, [Información de contenedores](ContainerInsights.md) con una observabilidad mejorada para Amazon EKS y [CloudWatch Application Signals](CloudWatch-Application-Monitoring-Sections.md). Con ambas características puede recopilar métricas de infraestructura, los datos telemétricos de rendimiento de las aplicaciones y los registros de contenedores del clúster.

Con la versión `v6.0.1-eksbuild.1` o posterior del complemento, se habilita Información de contenedores con métricas de OpenTelemetry, que recopila métricas mediante OpenTelemetry Protocol (OTLP) y admite consultas PromQL. Para obtener más información, consulte [Información de contenedores con métricas de OpenTelemetry para Amazon EKS](container-insights-otel-metrics.md).

Con Información de contenedores, con una observabilidad mejorada para Amazon EKS, las métricas de Información de contenedores se cobran por observación en lugar de cobrarse por métrica almacenada o registro ingerido. En el caso de Application Signals, la facturación se basa en las solicitudes entrantes y salientes de las aplicaciones y en cada objetivo de nivel de servicio (SLO) configurado. Cada solicitud entrante recibida genera una señal de aplicación y cada solicitud saliente realizada genera una señal de aplicación. Cada SLO crea dos señales de aplicación por periodo de medición. Para obtener más información sobre los precios de CloudWatch, consulte [Precios de Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

Ambos métodos habilitan Información·de·contenedores en los nodos de trabajo de Linux y Windows en el clúster de Amazon EKS. Para habilitar Información·de·contenedores en Windows, debe usar la versión 1.5.0 o posterior del complemento de Amazon EKS o el gráfico de Helm. Application Signals no es compatible con Windows en clústeres de Amazon EKS.

El complemento de observabilidad de EKS de Amazon CloudWatch se encuentra disponible en los clústeres de Amazon EKS que se ejecutan con la versión 1.23 o posterior de Kubernetes.

Cuando instala el complemento o el gráfico de Helm, debe conceder permisos de IAM para permitir que el agente de CloudWatch envíe métricas, registros y seguimientos a CloudWatch. Hay dos formas de hacer esto:
+ Adjunte una política al rol de IAM de los nodos de trabajo. Esta opción concede permisos a los nodos de trabajo para enviar telemetría a CloudWatch. 
+ Utilice un rol de IAM para las cuentas de servicio para los pods del agente y asocie la política a este rol. Esto solo funciona para clústeres de Amazon EKS. Esta opción permite que CloudWatch acceda solo a los pods de los agentes correspondientes. 

**Topics**
+ [Opción 1: instalación mediante EKS Pod Identity](#install-CloudWatch-Observability-EKS-pod-identity)
+ [Opción 2: instalación con permisos de IAM en los nodos de trabajo](#install-CloudWatch-Observability-EKS-addon-workernodes)
+ [Opción 3: instalación con el rol de cuenta de servicio de IAM (solo se aplica a la utilización del complemento)](#install-CloudWatch-Observability-EKS-addon-serviceaccountrole)
+ [Consideraciones para los nodos híbridos de Amazon EKS](#install-CloudWatch-Observability-EKS-addon-hybrid)
+ [Configuraciones adicionales (Opcional)](#install-CloudWatch-Observability-EKS-addon-configuration)
+ [Recopilación de las métricas de Java Management Extensions (JMX)](#install-CloudWatch-Observability-EKS-addon-JMX-metrics)
+ [Habilitación de las métricas de Kueue](#enable-Kueue-metrics)
+ [Anexión de los archivos de configuración del recopilador de OpenTelemetry](#install-CloudWatch-Observability-EKS-addon-OpenTelemetry)
+ [Activación de APM a través de Application Signals para el clúster de Amazon EKS](#Container-Insights-setup-EKS-appsignalsconfiguration)
+ [Solución de problemas del complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm](#Container-Insights-setup-EKS-addon-troubleshoot)
+ [Exclusión de Application Signals](#Opting-out-App-Signals)

## Opción 1: instalación mediante EKS Pod Identity
<a name="install-CloudWatch-Observability-EKS-pod-identity"></a>

Si usa la versión 3.1.0 o una versión posterior del complemento, puede usar EKS Pod Identity para conceder los permisos necesarios al complemento. La opción recomendada es EKS Pod Identity, ya que ofrece ventajas como los privilegios mínimos, la rotación de credenciales y la auditabilidad. Además, al usar EKS Pod Identity también puede instalar el complemento de EKS como parte de la propia creación del clúster.

Para usar este método, primero siga los pasos de [asociación de EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html#pod-id-association-create/) para crear el rol de IAM y configurar el agente de EKS Pod Identity.

A continuación, instale el complemento de observabilidad de EKS de Amazon CloudWatch. Para instalar el complemento, puede usar la AWS CLI, la consola de Amazon EKS, CloudFormation o Terraform.

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

**Cómo utilizar la AWS CLI para instalar el complemento de observabilidad de EKS de Amazon CloudWatch**  
Introduzca los comandos siguientes. Reemplace `my-cluster-name` por el nombre del clúster y *111122223333* por el identificador de su cuenta. Reemplace *my-role* por el rol de IAM que creó en el paso de asociación de EKS Pod Identity.

```
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 ]

**Cómo utilizar la consola de Amazon EKS para agregar el complemento de observabilidad de EKS de Amazon CloudWatch**

1. Abra la consola de Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. En el panel de navegación izquierdo, elija **Clusters (Clústeres)**.

1. Seleccione el nombre del clúster para el que desea configurar el complemento de observabilidad de EKS de Amazon CloudWatch.

1. Elija la pestaña **Complementos**.

1. Escoja **Obtener más complementos**.

1. En la página **Seleccionar complementos**, haga lo siguiente:

   1. En la sección **Complementos de Amazon EKS**, seleccione la casilla de verificación para **Observabilidad de Amazon CloudWatch**.

   1. Elija **Siguiente**.

1. En la página **Configurar las opciones de complementos seleccionados**, haga lo siguiente:

   1. Seleccione la **Version (Versión)** que desea utilizar.

   1. Para **Acceso al complemento**, seleccione **EKS Pod Identity**.

   1. Si no tiene ningún rol de IAM configurado, elija **Crear un rol recomendado** y, a continuación, elija **Siguiente** hasta llegar a **Paso 3: Nombrar, revisar y crear**. Puede cambiar el nombre del rol si lo desea; de lo contrario, elija **Crear rol** y, a continuación, regrese a la página del complemento y seleccione el rol de IAM que acaba de crear.

   1. (Opcional) Puede ampliar las **Valores de configuración opcionales**. Si selecciona **Anular** en **Método de resolución de conflictos**, una o varias de las configuraciones del complemento existente pueden sobrescribirse con la configuración del complemento de Amazon EKS. Si no habilita esta opción y hay un conflicto con la configuración existente, la operación falla. Puede utilizar el mensaje de error resultante para solucionar el conflicto. Antes de seleccionar esta opción, asegúrese de que el complemento de Amazon EKS no administra las configuraciones que se necesitan autoadministrar.

   1. Elija **Siguiente**.

1. En la página **Revisar y añadir**, elija **Crear**. Una vez finalizada la instalación del complemento, verá el complemento instalado.

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

**Cómo usar la CloudFormation para instalar el complemento de observabilidad de EKS de Amazon CloudWatch**

1. Primero, ejecute el comando siguiente de la AWS CLI para asociar la política de IAM necesaria a su rol de IAM. Reemplace *my-role* por el rol que creó en el paso de asociación de EKS Pod Identity.

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

1. A continuación, cree el siguiente recurso. Reemplace `my-cluster-name` con el nombre de su clúster, reemplace *111122223333* por el identificador de su cuenta y reemplace *my-role* por el rol de IAM creado en el paso de asociación de EKS Pod Identity. Para obtener más información, 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 ]

**Cómo usar Terraform para instalar el complemento de observabilidad de EKS de Amazon CloudWatch**

1. Use lo siguiente. Reemplace `my-cluster-name` con el nombre de su clúster, reemplace *111122223333* por el identificador de su cuenta y reemplace *my-service-account-role* por el rol de IAM creado en el paso de asociación de EKS Pod Identity.

   Para obtener más información, consulte [Resource: aws\$1eks\$1addon](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_addon) en la documentación de 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"
     }
   }
   ```

------

## Opción 2: instalación con permisos de IAM en los nodos de trabajo
<a name="install-CloudWatch-Observability-EKS-addon-workernodes"></a>

Para usar este método, primero adjunte la política de IAM **CloudWatchAgentServerPolicy** a sus nodos de trabajo introduciendo el siguiente comando. En este comando, sustituya *my-worker-node-role* por el rol de IAM que utilizan los nodos de trabajo de Kubernetes.

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

A continuación, instale el complemento de observabilidad de EKS de Amazon CloudWatch. Para instalar el complemento, puede usar la AWS CLI, la consola, CloudFormation o Terraform.

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

**Cómo utilizar la AWS CLI para instalar el complemento de observabilidad de EKS de Amazon CloudWatch**  
Escriba el siguiente comando. Reemplace `my-cluster-name` por el nombre del clúster.

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

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

**Cómo utilizar la consola de Amazon EKS para agregar el complemento de observabilidad de EKS de Amazon CloudWatch**

1. Abra la consola de Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. En el panel de navegación izquierdo, elija **Clusters (Clústeres)**.

1. Seleccione el nombre del clúster para el que desea configurar el complemento de observabilidad de EKS de Amazon CloudWatch.

1. Elija la pestaña **Complementos**.

1. Escoja **Obtener más complementos**.

1. En la página **Seleccionar complementos**, haga lo siguiente:

   1. En la sección **Complementos de Amazon EKS**, seleccione la casilla de verificación para **Observabilidad de Amazon CloudWatch**.

   1. Elija **Siguiente**.

1. En la página **Configurar las opciones de complementos seleccionados**, haga lo siguiente:

   1. Seleccione la **Version (Versión)** que desea utilizar.

   1. (Opcional) Puede ampliar las **Valores de configuración opcionales**. Si selecciona **Anular** en **Método de resolución de conflictos**, una o varias de las configuraciones del complemento existente pueden sobrescribirse con la configuración del complemento de Amazon EKS. Si no habilita esta opción y hay un conflicto con la configuración existente, la operación falla. Puede utilizar el mensaje de error resultante para solucionar el conflicto. Antes de seleccionar esta opción, asegúrese de que el complemento de Amazon EKS no administra las configuraciones que se necesitan autoadministrar.

   1. Elija **Siguiente**.

1. En la página **Revisar y añadir**, elija **Crear**. Una vez finalizada la instalación del complemento, verá el complemento instalado.

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

**Cómo usar la CloudFormation para instalar el complemento de observabilidad de EKS de Amazon CloudWatch**  
Reemplace `my-cluster-name` por el nombre del clúster. Para obtener más información, 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 ]

**Uso del gráfico de Helm de `amazon-cloudwatch-observability`**

1. Debe tener Helm instalado para usar este gráfico. Para más información sobre la instalación de Helm, consulte la [documentación de Helm](https://helm.sh/docs/).

1. Una vez que haya instalado Helm, introduzca los siguientes comandos. Reemplace *my-cluster-name* por el nombre del clúster y *my-cluster-region* por la región en la que se ejecuta el clúster.

   ```
   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 ]

**Cómo usar Terraform para instalar el complemento de observabilidad de EKS de Amazon CloudWatch**  
Reemplace `my-cluster-name` por el nombre del clúster. Para obtener más información, 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"
}
```

------

## Opción 3: instalación con el rol de cuenta de servicio de IAM (solo se aplica a la utilización del complemento)
<a name="install-CloudWatch-Observability-EKS-addon-serviceaccountrole"></a>

Este método solo es válido si utiliza el complemento de observabilidad de EKS de Amazon CloudWatch. Antes de usar este método, verifique los siguientes requisitos previos:
+ Dispone de un clúster de Amazon EKS funcional con nodos asociados en una de las Regiones de AWS que admiten la Información de contenedores. Para ver la lista de las regiones de admitidas, consulte [Información de contenedores](ContainerInsights.md).
+ Tiene instalada y configurada `kubectl` para el clúster. Para obtener más información, consulte [Instalación del `kubectl`](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) en la *Guía del usuario de Amazon EKS*.
+ Tiene instalada `eksctl`. Para obtener más información, consulte [Instalación o actualización de `eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html) en la *Guía del usuario de Amazon EKS*.

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

**Uso de la AWS CLI para instalar el complemento de observabilidad de EKS de Amazon CloudWatch mediante el rol de cuenta de servicio de IAM**

1. Ingrese el siguiente comando para crear un proveedor de OpenID Connect (OIDC), si el clúster aún no tiene uno. Para obtener más información, consulte [Configuración de una cuenta de servicio de Kubernetes para asumir un rol de IAM](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) en la *Guía del usuario de Amazon EKS*.

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

1. Ingrese el siguiente comando para crear el rol de IAM con la política **CloudWatchAgentServerPolicy** adjunta y configure la cuenta de servicio del agente para que asuma ese rol mediante OIDC. Reemplace *my-cluster-name* por el nombre del clúster y reemplace *my-service-account-role* por el nombre del rol al que desea asociar la cuenta de servicio. Si el rol no existe aún, `eksctl` lo crea por usted. 

   ```
   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 el complemento ingresando el siguiente comando: Reemplace *my-cluster-name* por el nombre de su clúster, reemplace *111122223333* por el identificador de su cuenta y reemplace *my-service-account-role* por el rol de IAM creado en el paso 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 ]

**Uso de la consola para instalar el complemento de observabilidad de EKS de Amazon CloudWatch mediante el rol de cuenta de servicio de IAM**

1. Abra la consola de Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. En el panel de navegación izquierdo, elija **Clusters (Clústeres)**.

1. Seleccione el nombre del clúster para el que desea configurar el complemento de observabilidad de EKS de Amazon CloudWatch.

1. Elija la pestaña **Complementos**.

1. Escoja **Obtener más complementos**.

1. En la página **Seleccionar complementos**, haga lo siguiente:

   1. En la sección **Complementos de Amazon EKS**, seleccione la casilla de verificación para **Observabilidad de Amazon CloudWatch**.

   1. Elija **Siguiente**.

1. En la página **Configurar las opciones de complementos seleccionados**, haga lo siguiente:

   1. Seleccione la **Version (Versión)** que desea utilizar.

   1. Para **Acceso al complemento**, seleccione **Roles de IAM para las cuentas de servicio (IRSA)**

   1. Seleccione el rol de IAM en el cuadro **Acceso al complemento**.

   1. (Opcional) Puede ampliar las **Valores de configuración opcionales**. Si selecciona **Anular** en **Método de resolución de conflictos**, una o varias de las configuraciones del complemento existente pueden sobrescribirse con la configuración del complemento de Amazon EKS. Si no habilita esta opción y hay un conflicto con la configuración existente, la operación falla. Puede utilizar el mensaje de error resultante para solucionar el conflicto. Antes de seleccionar esta opción, asegúrese de que el complemento de Amazon EKS no administra las configuraciones que se necesitan autoadministrar.

   1. Elija **Siguiente**.

1. En la página **Revisar y añadir**, elija **Crear**. Una vez finalizada la instalación del complemento, verá el complemento instalado.

------

## Consideraciones para los nodos híbridos de Amazon EKS
<a name="install-CloudWatch-Observability-EKS-addon-hybrid"></a>

Las métricas de nivel de nodo no están disponibles para los nodos híbridos, ya que [Información de contenedores](ContainerInsights.md) depende de la disponibilidad del [servicio de metadatos de instancias (IMDS) de EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) para las métricas de nivel del nodo. Las métricas de nivel del clúster, de la carga de trabajo, del Pod y del contenedor están disponibles para los nodos híbridos.

Tras instalar el complemento siguiendo los pasos de las secciones anteriores, debe actualizar el manifiesto del complemento para que el agente pueda ejecutarse correctamente en los nodos híbridos. Edite el recurso `amazoncloudwatchagents` en el clúster para agregar la variable de entorno `RUN_WITH_IRSA` que coincida con lo siguiente.

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

## Configuraciones adicionales (Opcional)
<a name="install-CloudWatch-Observability-EKS-addon-configuration"></a>

**Topics**
+ [Desactivación de la recopilación de registros de contenedores](#CloudWatch-Observability-EKS-addon-OptOutContainerLogs)
+ [Uso de una configuración de Fluent Bit personalizada](#CloudWatch-Observability-EKS-addon-CustomFluentBit)
+ [Administre las tolerancias de Kubernetes para las cargas de trabajo de los pods instalados](#CloudWatch-Observability-EKS-addon-Tolerations)
+ [Desactivación de la recopilación de métricas de Accelerated Compute](#CloudWatch-Observability-EKS-addon-OptOutAccelerated)
+ [Uso de una configuración del agente de CloudWatch personalizada](#CloudWatch-Observability-EKS-addon-CustomAgentConfig)
+ [Administración de los certificados TLS de webhook de admisión](#CloudWatch-Observability-EKS-addon-Webhook)
+ [Recopile los ID de volumen de Amazon EBS](#CloudWatch-Observability-EKS-addon-VolumeIDs)

### Desactivación de la recopilación de registros de contenedores
<a name="CloudWatch-Observability-EKS-addon-OptOutContainerLogs"></a>

De forma predeterminada, el complemento usa Fluent Bit para recopilar los registros de contenedores de todos los pods y, a continuación, los envía a los registros de CloudWatch. Para obtener información sobre los registros que se recopilan, consulte [Configuración de Fluent Bit](Container-Insights-setup-logs-FluentBit.md#Container-Insights-FluentBit-setup).

**nota**  
Ni el complemento ni el gráfico de Helm administran los recursos de Fluentd o FluentBit existentes en un clúster. Puede eliminar los recursos existentes de Fluentd o Fluent Bit antes de instalar el complemento o el gráfico de Helm. Como alternativa, para conservar su configuración actual y evitar que el complemento o el gráfico de Helm también instalen Fluent Bit, puede desactivarla siguiendo las instrucciones de esta sección. 

Si utiliza el complemento de observabilidad de EKS de Amazon CloudWatch y desea dejar de recopilar registros de contenedores, utilice la siguiente opción cuando cree o actualice el complemento:

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

Si utiliza el gráfico de Helm y desea dejar de recopilar registros de contenedores, utilice la siguiente opción cuando cree o actualice el complemento:

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

### Uso de una configuración de Fluent Bit personalizada
<a name="CloudWatch-Observability-EKS-addon-CustomFluentBit"></a>

A partir de la versión 1.7.0 del complemento de observabilidad de EKS de Amazon CloudWatch, la configuración de Fluent Bit se puede modificar al crear o actualizar el complemento o el gráfico de Helm. La configuración personalizada de Fluent Bit se realiza en la sección raíz `containerLogs` de la configuración avanzada del complemento o las anulaciones de valores en el gráfico de Helm. En esta sección, debe realizar la configuración personalizada de Fluent Bit en la sección `config` (para Linux) o en la sección `configWindows` (para Windows). Además, `config` se divide en las siguientes subsecciones:
+ `service`: esta sección representa la configuración `SERVICE` para definir el comportamiento global del motor Fluent Bit.
+ `customParsers`: esta sección representa cualquier `PARSER` global que desee incluir y que sea capaces de tomar entradas de registro no estructuradas y darles una estructura que facilite su procesamiento y posterior filtrado.
+ `extraFiles`: esta sección se puede utilizar para incluir archivos de `conf` de Fluent Bit adicionales. Por defecto, se incluyen los siguientes tres archivos de `conf`:
  + `application-log.conf`: un archivo `conf` para enviar los registros de las aplicaciones desde el clúster al grupo de registros `/aws/containerinsights/my-cluster-name/application` en Registros de CloudWatch.
  + `dataplane-log.conf`: un archivo `conf` para enviar los registros correspondientes a los componentes del plano de datos del clúster, incluidos los registros de CRI, los registros de kubelet, los registros de kube-proxy y los registros Amazon VPC CIN, al grupo de registros `/aws/containerinsights/my-cluster-name/dataplane` en CloudWatch Logs.
  + `host-log.conf`: un archivo `conf` para enviar registros desde `/var/log/dmesg`, `/var/log/messages` y `/var/log/secure` en Linux y System `winlogs` en Windows al grupo de registros `/aws/containerinsights/my-cluster-name/host` de CloudWatch.

**nota**  
Brinde la configuración completa de cada una de estas secciones individuales, incluso si modifica solo un campo de una subsección. Recomendamos que utilice la configuración predeterminada que se brinda a continuación como base y, a continuación, la modifique en consecuencia para no deshabilitar la funcionalidad habilitada de forma predeterminada. Puede usar la siguiente configuración de YAML al modificar la configuración avanzada del complemento Amazon EKS o al brindar anulaciones de valores para el gráfico de Helm. 

Para encontrar la sección `config` correspondiente a su clúster, consulte [aws-observability / helm-charts](https://github.com/aws-observability/helm-charts/releases) en GitHub y busque la versión correspondiente a la versión del complemento o gráfico de Helm que esté instalando. A continuación, navegue en `/charts/amazon-cloudwatch-observability/values.yaml` hasta encontrar la sección `config` (para Linux) y la sección `configWindows` (para Windows) dentro de la sección `fluentBit` en `containerLogs`.

A modo de ejemplo, la configuración predeterminada de Fluent Bit para la versión 1.7.0 se encuentra [aquí](https://github.com/aws-observability/helm-charts/blob/v1.7.0/charts/amazon-cloudwatch-observability/values.yaml#L44)).

Le recomendamos que brinde el archivo `config` como YAML cuando lo suministre con la configuración avanzada del complemento Amazon EKS o cuando lo suministre como anulaciones de valores en su instalación de Helm. Asegúrese de que el YAML cumpla con la siguiente estructura.

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

El siguiente ejemplo de `config` cambia la configuración global del intervalo de descarga a 45 segundos. Aunque la única modificación es en el campo `Flush`, debe brindar la definición `SERVICE` completa de la subsección del servicio. Como en este ejemplo no se especificaron anulaciones para las demás subsecciones, en ellas se utilizan los valores predeterminados.

```
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
```

El siguiente ejemplo de configuración incluye un archivo `conf` de Fluent bit adicional. En este ejemplo, agregamos un `my-service.conf` personalizado en `extraFiles` y se sumará a los tres `extraFiles` predeterminados.

```
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
```

El siguiente ejemplo elimina por completo un archivo `conf` existente de `extraFiles`. Esto excluye el archivo `application-log.conf` por completo sustituyéndolo por una cadena vacía. En cambio, simplemente omitir `application-log.conf` de `extraFiles` implicaría usar el valor predeterminado, que no es lo que estamos intentando lograr en este ejemplo. Lo mismo se aplica a la eliminación de cualquier archivo `conf` personalizado que haya agregado anteriormente a `extraFiles`.

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

### Administre las tolerancias de Kubernetes para las cargas de trabajo de los pods instalados
<a name="CloudWatch-Observability-EKS-addon-Tolerations"></a>

A partir de la versión 1.7.0 del complemento de observabilidad de EKS de Amazon CloudWatch, el complemento y el gráfico de Helm establecen de forma predeterminada las *tolerancias* de Kubernetes para tolerar todas las taints en las cargas de trabajo de los pods instalados por el complemento o el gráfico de Helm. Esto garantiza que los daemonsets, como el agente de CloudWatch y Fluent Bit, puedan programar pods en todos los nodos del clúster de forma predeterminada. Para más información sobre las taints y toleraciones, consulte [Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) en la documentación de Kubernetes. 

Las tolerancias predeterminadas que establece el complemento o el gráfico de Helm son las siguientes:

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

Puede anular las tolerancias predeterminadas al configurar el campo `tolerations` en la raíz cuando utilice la configuración avanzada del complemento o cuando instale o actualice el gráfico de Helm con anulaciones de valores. Un ejemplo de esto sería el siguiente:

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

Para omitir por completo las tolerancias, puede utilizar una configuración como la siguiente:

```
tolerations: []
```

Cualquier cambio en las tolerancias se aplicará a todas las cargas de trabajo de los pods instalados por el complemento o el gráfico de Helm.

### Desactivación de la recopilación de métricas de Accelerated Compute
<a name="CloudWatch-Observability-EKS-addon-OptOutAccelerated"></a>

De forma predeterminada, Información de contenedores, con una observabilidad mejorada, recopila métricas para la supervisión de Accelerated Compute, incluidas las métricas de GPU de NVIDIA, las métricas de AWS Neuron para AWS Trainium y AWS Inferentia y las métricas de AWS Elastic Fabric Adapter (EFA).

Las métricas de GPU de NVIDIA de las cargas de trabajo de Amazon EKS se recopilan de forma predeterminada a partir de la versión `v1.3.0-eksbuild.1` del complemento de EKS o del gráfico de Helm y la versión `1.300034.0` del agente de CloudWatch. Para acceder a una lista de las métricas recopiladas y los requisitos previos, consulte [Métricas de GPU de NVIDIA](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EKS-GPU).

Las métricas de AWS Neuron de los aceleradores AWS Trainium y AWS Inferentia se recopilan de forma predeterminada a partir de la versión `v1.5.0-eksbuild.1` del complemento de EKS o del gráfico de Helm y la versión `1.300036.0` del agente de CloudWatch. Para acceder a una lista de las métricas recopiladas y los requisitos previos, consulte [Métricas de AWS Neuron para AWS Trainium y AWS Inferentia](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EKS-Neuron).

Las métricas del AWS Elastic Fabric Adapter (EFA) de los nodos de Linux en los clústeres de Amazon EKS se recopilan de forma predeterminada a partir de la versión `v1.5.2-eksbuild.1` del complemento de EKS o del gráfico de Helm y la versión `1.300037.0` del agente de CloudWatch. Para acceder a una lista de las métricas recopiladas y los requisitos previos, consulte [Métricas de AWS Elastic Fabric Adapter (EFA)](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EFA).

Para dejar de recopilar estas métricas, establezca el campo `accelerated_compute_metrics` del archivo de configuración del agente de CloudWatch en `false`. Este campo se encuentra en la sección `kubernetes` de la sección `metrics_collected` del archivo de configuración de CloudWatch. A continuación, se muestra un ejemplo de configuración de desactivación. Para más información sobre cómo utilizar las configuraciones personalizadas de los agentes de CloudWatch, consulte la siguiente sección, [Uso de una configuración del agente de CloudWatch personalizada](#CloudWatch-Observability-EKS-addon-CustomAgentConfig).

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

### Uso de una configuración del agente de CloudWatch personalizada
<a name="CloudWatch-Observability-EKS-addon-CustomAgentConfig"></a>

Para recopilar otras métricas, registros o seguimientos con el agente de CloudWatch, puede especificar una configuración personalizada y, al mismo tiempo, mantener habilitados la Información de contenedores y CloudWatch Application Signals. Para ello, integre el archivo de configuración del agente de CloudWatch en la clave de configuración situada debajo de la clave de agente de la configuración avanzada, que puede utilizar al crear o actualizar el complemento de EKS o el gráfico de Helm. Lo siguiente representa la configuración del agente predeterminada cuando no proporciona configuraciones adicionales.

**importante**  
Cualquier configuración personalizada que proporcione mediante ajustes de configuración adicionales anula la configuración predeterminada que utiliza el agente. Tenga cuidado de no deshabilitar de forma involuntaria las funciones que están habilitadas de forma predeterminada, como Información de contenedores con observabilidad mejorada y CloudWatch Application Signals. En el caso de que tenga que proporcionar una configuración de agente personalizada, le recomendamos que utilice la siguiente configuración predeterminada como referencia y, a continuación, la modifique en consecuencia.
+ Para usar el complemento de observabilidad de EKS de Amazon CloudWatch

  ```
  --configuration-values '{
    "agent": {
      "config": {
        "logs": {
          "metrics_collected": {
            "application_signals": {},
            "kubernetes": {
              "enhanced_container_insights": true
            }
          }
        },
        "traces": {
          "traces_collected": {
            "application_signals": {}
          }
        }
      }
    }   
  }'
  ```
+ Para usar el gráfico de Helm

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

El siguiente ejemplo muestra la configuración de agente predeterminada para el agente de CloudWatch en Windows. El agente de CloudWatch en Windows no admite la configuración personalizada.

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

### Administración de los certificados TLS de webhook de admisión
<a name="CloudWatch-Observability-EKS-addon-Webhook"></a>

El complemento de observabilidad de EKS de Amazon CloudWatch y el gráfico de Helm utilizan los [webhooks de admisión](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/) de Kubernetes para validar y mutar las solicitudes de recursos personalizados (CR) de `AmazonCloudWatchAgent` y `Instrumentation` y, como alternativa, las solicitudes de pod de Kubernetes en el clúster si CloudWatch Application Signals está habilitado. En Kubernetes, los webhooks requieren un certificado TLS en el que el servidor API se configura para confiar y así garantizar una comunicación segura.

De forma predeterminada, el complemento de observabilidad de EKS de Amazon CloudWatch y el gráfico de Helm generan de forma automática una CA autofirmada y un certificado TLS firmado por esta CA para proteger la comunicación entre el servidor de API y el servidor de webhook. Este certificado generado de forma automática caduca de manera predeterminada a los 10 años y no se renueva automáticamente al expirar. Además, el paquete de CA y el certificado se vuelven a generar cada vez que se actualiza o reinstala el complemento o el gráfico de Helm, lo que restablece la caducidad. Si desea cambiar la caducidad predeterminada del certificado generado de forma automática, puede usar las siguientes configuraciones adicionales al crear o actualizar el complemento. Sustituya la *fecha de caducidad en días* por la duración de caducidad deseada en días. 
+ Utilice este para el complemento de observabilidad de EKS de Amazon CloudWatch

  ```
  --configuration-values '{ "admissionWebhooks": { "autoGenerateCert": { "expiryDays": expiry-in-days } } }' 
  ```
+ Utilice esto para el gráfico de Helm

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

Si busca una solución de autoridad de certificación más segura y con más características, el complemento incluye asistencia opcional para [cert-manager](https://cert-manager.io/docs/), una solución ampliamente adoptada para la administración de certificados TLS en Kubernetes, que simplifica el proceso de obtención, renovación, administración y uso de esos certificados. Asegura que los certificados sean válidos y estén actualizados, e intenta renovarlos en un momento configurado antes de que caduquen. Además, cert-manager también facilita la emisión de certificados desde una variedad de fuentes compatibles, que incluye a [AWS Certificate Manager Private Certificate Authority](https://aws.amazon.com/private-ca/).

Le aconsejamos que revise las prácticas recomendadas para la administración de los certificados TLS en sus clústeres y que opte por cert-manager para entornos de producción. Tenga en cuenta que si decide habilitar cert-manager para administrar los certificados de TLS de webhook de admisión, deberá preinstalar cert-manager en su clúster de Amazon EKS antes de instalar el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm. Consulte la [documentación de cert-manager](https://cert-manager.io/docs/installation/) para obtener más información sobre las opciones de instalación disponibles. Una vez instalado, puede utilizar cert-manager para administrar los certificados de TLS de webhook de admisión mediante la siguiente configuración adicional.
+ En caso de utilizar el complemento de observabilidad de EKS de Amazon CloudWatch

  ```
  --configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }' 
  ```
+ En caso de utilizar el gráfico de Helm

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

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

La configuración avanzada que se describe en esta sección utilizará de forma predeterminada un emisor [autofirmado](https://cert-manager.io/docs/configuration/selfsigned/).

### Recopile los ID de volumen de Amazon EBS
<a name="CloudWatch-Observability-EKS-addon-VolumeIDs"></a>

Si desea que se recopilen los identificadores de volumen de Amazon EBS en los registros de rendimiento, debe agregar otra política al rol de IAM asociado a los nodos de trabajo o a la cuenta de servicio. Añada lo siguiente como política insertada. Para obtener más información, consulte [Agregar y eliminar permisos de identidad de 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"
        }
    ]
}
```

------

## Recopilación de las métricas de Java Management Extensions (JMX)
<a name="install-CloudWatch-Observability-EKS-addon-JMX-metrics"></a>

El agente de CloudWatch admite la recopilación de métricas de Java Management Extensions (JMX) en Amazon EKS. Esto le permite recopilar métricas adicionales de las aplicaciones en Java que se ejecutan en los clústeres de Amazon EKS, lo que le permite obtener información sobre el rendimiento, el uso de la memoria, el tráfico y otras métricas críticas. Para obtener más información, consulte [Recopilación de las métricas de Java Management Extensions (JMX)](CloudWatch-Agent-JMX-metrics.md).

## Habilitación de las métricas de Kueue
<a name="enable-Kueue-metrics"></a>

A partir de la versión `v2.4.0-eksbuild.1` del complemento de observabilidad de EKS de CloudWatch, Información de contenedores para Amazon EKS admite la recopilación de métricas de Kueue de clústeres de Amazon EKS. Para obtener más información acerca de estas métricas, consulte [Métricas de Kueue](Container-Insights-metrics-EKS.md#Container-Insights-metrics-Kueue).

Si utiliza el complemento de EKS de gobernanza de tareas de Amazon SageMaker AI HyperPod, puede omitir los pasos de la sección **Requisitos previos** y seguir los pasos que aparecen en [Habilitación del indicador de configuración](#enable-Kueue-metrics-flag).

### Requisitos previos
<a name="enable-Kueue-metrics-prerequisites"></a>

Antes de instalar Kueue en el clúster de Amazon EKS, actualice lo siguiente en el archivo de manifiesto:

1. Habilite las métricas opcionales de los recursos de la cola de clústeres para Kueue. Para ello, modifique el archivo en línea `controller_manager_config.yaml` en ConfigMap `kueue-system`. En la sección `metrics`, agregue o quite el comentario de la línea `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. De forma predeterminada, todos los servicios de `k8s` están disponibles en todo el clúster. Kueue crea un servicio `kueue-controller-manager-metrics-service` para exponer las métricas. Para evitar la duplicación de observaciones de las métricas, modifique este servicio para permitir el acceso únicamente al servicio de métricas desde el mismo nodo. Para ello, agregue la línea `internalTrafficPolicy: Local` a la definición de `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 último, el pod `kueue-controller-manager` crea un contenedor `kube-rbac-proxy`. Actualmente, este contenedor tiene un elevado nivel de detalles de registro, lo que hace que el contenedor registre el token de portador del clúster cuando el rastreador de métricas accede a `kueue-controller-manager-metrics-service`. Le recomendamos que disminuya el nivel de detalle del registro. El valor predeterminado en el manifiesto distribuido por Kueue es 10; se recomienda cambiarlo a 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
           ...
   ```

### Habilitación del indicador de configuración
<a name="enable-Kueue-metrics-flag"></a>

Para habilitar las métricas de Kueue, debe habilitar `kueue_container_insights` en la configuración adicional del complemento. Puede hacerlo mediante la AWS CLI para configurar el complemento de observabilidad de EKS o mediante la consola de Amazon EKS.

Una vez que haya instalado correctamente el complemento de observabilidad de EKS con uno de los siguientes métodos, podrá ver las métricas del clúster de Amazon EKS en la pestaña **Panel** de la consola de HyperPod.

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

**Habilitación de las métricas de Kueue mediante la AWS CLI**
+ Ingrese el siguiente comando AWS CLI para instalar el complemento.

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

  A continuación se muestra un ejemplo del archivo JSON con los valores de configuración.

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

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

**Habilitación de las métricas de Kueue mediante la consola de Amazon EKS**

1. Abra la consola de Amazon EKS en [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Elija el nombre del clúster.

1. Elegir **Complementos**.

1. Busque el complemento **Observabilidad de Amazon CloudWatch** en la lista e instálelo. Cuando lo haga, elija **Configuración opcional** e incluya los siguientes valores de configuración de JSON.

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

------

## Anexión de los archivos de configuración del recopilador de OpenTelemetry
<a name="install-CloudWatch-Observability-EKS-addon-OpenTelemetry"></a>

El agente de CloudWatch admite archivos de configuración complementarios del recopilador de OpenTelemetry junto con sus propios archivos de configuración. Esta característica le permite utilizar las características del agente de CloudWatch, como CloudWatch Application Signals o Información de contenedores, a través de la configuración del agente de CloudWatch e incorporar su configuración del recopilador de OpenTelemetry existente con un solo agente.

Para evitar conflictos de fusión con canalizaciones creadas automáticamente por el agente de CloudWatch, le recomendamos que agregue un sufijo personalizado a cada uno de los componentes y canalizaciones de la configuración del recopilador de OpenTelemetry. De este modo, se evitarán bloqueos y conflictos entre fusiones.
+ En caso de utilizar el complemento de observabilidad de EKS de Amazon CloudWatch

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

  o

  ```
  --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]
  '
  ```
+ En caso de utilizar el gráfico de 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]
  '
  ```

## Activación de APM a través de Application Signals para el clúster de Amazon EKS
<a name="Container-Insights-setup-EKS-appsignalsconfiguration"></a>

De forma predeterminada, la supervisión del rendimiento de las aplicaciones (APM) basada en OpenTelemetry (OTEL) se activa mediante Application Signals al instalar el complemento de observabilidad de EKS de CloudWatch (versión 5.0.0 o posterior) o el gráfico de Helm. Puede personalizar aún más los ajustes específicos utilizando la configuración avanzada para el complemento de Amazon EKS o anulando valores con el gráfico de Helm.

**nota**  
Si utiliza una solución de APM basada en OpenTelemetry (OTEL), la activación de Application Signals afectará a la configuración de observabilidad actual. Revise la implementación actual antes de continuar. Para mantener la configuración de APM actual tras la actualización a la versión 5.0.0 o posterior, consulte [Exclusión de Application Signals](#Opting-out-App-Signals).

**Auto monitor de Application Signals**

La versión 5.0.0 del complemento de Amazon EKS de observabilidad de CloudWatch y el gráfico de Helm presentan una nueva funcionalidad. Ahora puede habilitar automáticamente Application Signals para todas las cargas de trabajo del servicio, o algunas determinadas, en su clúster de EKS mediante la configuración de Auto monitor. Los siguientes ajustes de `autoMonitor` se pueden especificar en la sección `applicationSignals` situada debajo de la sección `manager` de la configuración avanzada.
+ *monitorAllServices*: indicador booleano para habilitar (true) o deshabilitar (false) la supervisión de todas las cargas de trabajo de servicios mediante Auto monitor. El valor predeterminado es true (verdadero). Al habilitar este indicador, se garantizará que todas las cargas de trabajo de Kubernetes (Deployments, DaemonSets y StatefulSets) en el clúster que estén asignadas a un servicio de Kubernetes estarán dentro del alcance para la habilitación automática de Application Signals cuando se inicien por primera vez (o cuando se reinicien para las cargas de trabajo existentes). De manera predeterminada, el sistema excluye las cargas de trabajo en los espacios de nombres `kube-system` y `amazon-cloudwatch`.
+ *languages*: una lista de cadenas que especifica el conjunto de idiomas con los que Application Signals intentará instrumentar automáticamente sus servicios cuando `monitorAllServices` esté habilitado. Es el valor predeterminado para todos los [idiomas admitidos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Sections.html).
+ *restartPods*: un indicador booleano que controla si las cargas de trabajo se reinician tras los cambios de configuración. El valor predeterminado es falso. Al activar este indicador a `true`, se controla si las cargas de trabajo de Kubernetes dentro del ámbito de Auto monitor se reinician automáticamente al guardar los cambios de configuración. Se tendrá en cuenta cualquier configuración de sus cargas de trabajo de Kubernetes que influya en el reinicio de los pods, como `updateStrategy`. Tenga en cuenta que el reinicio puede provocar un tiempo de inactividad del servicio.
+ *customSelector*: configuración para seleccionar espacios de nombres o cargas de trabajo específicos de Kubernetes para Auto monitor.
  + *java*: especifique las cargas de trabajo para instrumentarlas automáticamente con Java.
  + *python*: especifique las cargas de trabajo para instrumentarlas automáticamente con Python.
  + *nodejs*: especifique las cargas de trabajo para instrumentarlas automáticamente con Node.js.
  + *dotnet*: especifique las cargas de trabajo para instrumentarlas automáticamente con .NET.

  Para cada uno de los idiomas anteriores, se pueden configurar los siguientes campos.
  + *namespaces*: lista de cadenas que especifican los espacios de nombres que se seleccionarán. El valor predeterminado es una lista vacía, es decir, [].
  + *deployments*: lista de cadenas que especifican las implementaciones que se seleccionarán. Especifique en formato `namespace/deployment`. El valor predeterminado es una lista vacía, es decir, [].
  + *daemonsets*: lista de cadenas que especifican los daemonsets que se seleccionarán. Especifique en formato `namespace/daemonset`. El valor predeterminado es una lista vacía, es decir, [].
  + *statefulsets*: lista de cadenas que especifican los statefulsets que se seleccionarán. Especifique en formato `namespace/statefulset`. El valor predeterminado es una lista vacía, es decir, [].
+ *exclude*: configuración para excluir de Auto monitor espacios de nombres o cargas de trabajo específicos de Kubernetes. La exclusión de una carga de trabajo tiene prioridad cuando la misma carga de trabajo también está dentro del alcance de `monitorAllServices` o `customSelector`.
  + *java*: especifique las cargas de trabajo que desea evitar que se instrumenten automáticamente con Java.
  + *python*: especifique las cargas de trabajo que desea evitar que se instrumenten automáticamente con Python.
  + *nodejs*: especifique las cargas de trabajo que desea evitar que se instrumenten automáticamente con Node.js.
  + *dotnet*: especifique las cargas de trabajo que desea evitar que se instrumenten automáticamente con .NET.

  Para cada uno de los idiomas anteriores, se pueden configurar los siguientes campos.
  + *namespaces*: lista de cadenas que especifican los espacios de nombres que se excluirán. El valor predeterminado es una lista vacía, es decir, [].
  + *deployments*: lista de cadenas que especifican las implementaciones que se excluirán. Especifique en formato `namespace/deployment`. El valor predeterminado es una lista vacía, es decir, [].
  + *daemonsets*: lista de cadenas que especifican los daemonsets que se excluirán. Especifique en formato `namespace/daemonset`. El valor predeterminado es una lista vacía, es decir, [].
  + *statefulsets*: lista de cadenas que especifican los statefulsets que se excluirán. Especifique en formato `namespace/statefulset`. El valor predeterminado es una lista vacía, es decir, [].

El siguiente es un ejemplo de configuración que habilita automáticamente Application Signals para todas las cargas de trabajo de servicio nuevas y existentes en el clúster.

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

El siguiente es un ejemplo de configuración que habilita automáticamente Application Signals para cualquier carga de trabajo de servicio nueva que se inicie y para cualquier carga de trabajo de servicio existente que se reinicie explícitamente en el clúster.

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

El siguiente es un ejemplo de configuración que habilita automáticamente Application Signals con Java para todos los pods nuevos y existentes correspondientes a una carga de trabajo en el espacio de nombres `pet-warehouse`.

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

El siguiente es un ejemplo de configuración que habilita automáticamente Application Signals con Python para todas las cargas de trabajo de servicio nuevas y existentes en el clúster, excluyendo la implementación de `pet-clinic`.

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

El siguiente es un ejemplo de configuración que habilita automáticamente Application Signals con Java para todas las cargas de trabajo de servicio del clúster, excepto las del espacio de nombres `python-apps`, y además habilita Application Signals con Python específicamente para la implementación de `sample-python-app` en el espacio de nombres `python-apps`.

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

## Solución de problemas del complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm
<a name="Container-Insights-setup-EKS-addon-troubleshoot"></a>

Utilice la siguiente información para solucionar problemas con el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm

**Topics**
+ [Actualización y eliminación del complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm](#EKS-addon-troubleshoot-update)
+ [Verifique la versión del agente de CloudWatch que utiliza el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm](#EKS-addon-troubleshoot-version)
+ [Control de un error de configuración al administrar el complemento o el gráfico de Helm](#EKS-addon-troubleshoot-conflict)

### Actualización y eliminación del complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm
<a name="EKS-addon-troubleshoot-update"></a>

Para obtener instrucciones sobre cómo actualizar o eliminar el complemento de observabilidad de EKS de Amazon CloudWatch, consulte [Administración de complementos de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/managing-add-ons.html). Utilice `amazon-cloudwatch-observability` como nombre del complemento. 

Para eliminar gráfico de Helm en un clúster, escriba siguiente comando.

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

### Verifique la versión del agente de CloudWatch que utiliza el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm
<a name="EKS-addon-troubleshoot-version"></a>

El complemento de observabilidad de EKS de Amazon CloudWatch y el gráfico de Helm instalan un recurso personalizado del tipo `AmazonCloudWatchAgent`, el cual controla el comportamiento del daemonset del agente de CloudWatch en el clúster, incluida la versión del agente de CloudWatch que se utiliza. Puede obtener una lista de todos los recursos personalizados del `AmazonCloudWatchAgent` instalados en su clúster al ingresar el siguiente comando:

```
kubectl get amazoncloudwatchagent -A
```

En la salida de este comando, se puede comprobar la versión del agente de CloudWatch. Como alternativa, también puede describir el recurso del `amazoncloudwatchagent` o uno de los pods del `cloudwatch-agent-*` que se ejecutan en el clúster para inspeccionar la imagen que se utiliza.

### Control de un error de configuración al administrar el complemento o el gráfico de Helm
<a name="EKS-addon-troubleshoot-conflict"></a>

Al instalar o actualizar el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm, si observa un error provocado por un recurso existente, probablemente se deba a que ya tiene el agente de CloudWatch y sus componentes asociados, como ServiceAccount, ClusterRole y ClusterRoleBinding instalados en el clúster.

El error que muestra el complemento incluirá `Conflicts found when trying to apply. Will not continue due to resolve conflicts mode`, 

El error que muestra el gráfico de Helm será similar a `Error: INSTALLATION FAILED: Unable to continue with install and invalid ownership metadata.`.

Cuando el complemento o el gráfico de Helm intenta instalar el agente de CloudWatch y sus componentes asociados, si detecta algún cambio en el contenido, por defecto no se realiza la instalación o la actualización para evitar sobrescribir el estado de los recursos del clúster.

Si intenta incorporar al complemento de observabilidad de EKS de Amazon CloudWatch y observa este error, le recomendamos que elimine la configuración de agente de CloudWatch existente que haya instalado anteriormente en el clúster y, a continuación, instale el complemento de EKS o el gráfico de Helm. Asegúrese de hacer una copia de seguridad de las personalizaciones que haya realizado en la configuración original del agente de CloudWatch, como una configuración de agente personalizada, y envíelas al complemento o al gráfico de Helm la próxima vez que lo instale o actualice. Si ya había instalado el agente de CloudWatch para incorporar Información de contenedores, consulte [Eliminación del agente de CloudWatch y Fluen Bit para Información de contenedores](ContainerInsights-delete-agent.md) para obtener más información.

Como alternativa, el complemento admite una opción de configuración de resolución de conflictos que puede especificar `OVERWRITE`. Puede usar esta opción para continuar con la instalación o actualización del complemento sobrescribiendo los errores en el clúster. Si utiliza la consola de Amazon EKS, encontrará el **método de resolución de errores** al elegir los **ajustes de configuración opcionales** al crear o actualizar el complemento. Si está utilizando la AWS CLI, puede proporcionar `--resolve-conflicts OVERWRITE` al comando para crear o actualizar el complemento. 

## Exclusión de Application Signals
<a name="Opting-out-App-Signals"></a>

Refine las preferencias de supervisión de servicios en la consola de CloudWatch o con el SDK.

Para las versiones anteriores a la 5.0.0, para desactivar la supervisión automática de Application Signals, siga este procedimiento:

**Uso de la CLI o el SDK**

La siguiente configuración se puede aplicar como configuración avanzada al complemento de EKS o como anulación de valores cuando se utiliza el gráfico de Helm.

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

Reinicie los servicios para que los cambios surtan efecto.

**Uso de la consola**

Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, en **Application Signals (APM)**, elija **Servicios**.

1.  Elija **Activar Señales de aplicaciones** para ver la página de activación.

1. Desactive la casilla de verificación **Supervisar automáticamente** para cada servicio que no desee supervisar.

1. Reinicie los servicios para que los cambios surtan efecto.