

# Soluciones de observabilidad de CloudWatch
<a name="Monitoring-Solutions"></a>

Las soluciones de observabilidad de CloudWatch ofrecen un catálogo de configuraciones accesibles para ayudar en la implementación rápida de la supervisión de varios servicios y cargas de trabajo comunes de AWS, como las máquinas virtuales Java (JVM), Apache Kafka, Apache Tomcat y NGINX. Estas soluciones proporcionan orientación específica sobre las principales tareas de supervisión, como la instalación y configuración del agente de CloudWatch, la implementación de paneles personalizados predefinidos y la configuración de alarmas de métricas. Están diseñadas para ayudar a los desarrolladores y a los equipos de operaciones a aprovechar las herramientas de supervisión y observabilidad de AWS de manera más eficaz.

Las soluciones incluyen orientación sobre cuándo usar características de observabilidad específicas, como las métricas de supervisión detallada para la infraestructura, Información de contenedores para la supervisión de contenedores y Application Signals para la supervisión de aplicaciones. Al proporcionar ejemplos prácticos y configuraciones prácticas, estas soluciones tienen como objetivo simplificar el proceso de configuración inicial, lo que permite establecer la supervisión funcional con mayor rapidez y personalizarla según sea necesario para sus requisitos específicos.

Para empezar a utilizar las soluciones de observabilidad, visite la [página de soluciones de observabilidad](https://console.aws.amazon.com/cloudwatch/home?#settings:/observability-solutions) en la consola de CloudWatch.

Para ver las soluciones de código abierto que funcionan con Amazon Managed Grafana, consulte las [soluciones de Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/AMG_solutions.html)

Las soluciones que requieren el agente de CloudWatch se detallan a continuación:

**Topics**
+ [Solución de CloudWatch: carga de trabajo de JVM en Amazon EC2](Solution-JVM-On-EC2.md)
+ [Solución de CloudWatch: carga de trabajo de NGINX en Amazon EC2](Solution-NGINX-On-EC2.md)
+ [Solución de CloudWatch: carga de trabajo de GPU NVIDIA en Amazon EC2](Solution-NVIDIA-GPU-On-EC2.md)
+ [Solución de CloudWatch: carga de trabajo de Kafka en Amazon EC2](Solution-Kafka-On-EC2.md)
+ [Solución de CloudWatch: carga de trabajo de Tomcat en Amazon EC2](Solution-Tomcat-On-EC2.md)
+ [Solución de CloudWatch: Amazon EC2 Health](Solution-EC2-Health.md)

**¿Cómo funcionan los paneles de soluciones?**  
Los paneles de soluciones de CloudWatch utilizan variables basadas en búsquedas (menús desplegables) que permiten explorar y visualizar diferentes aspectos de sus cargas de trabajo de forma dinámica.  
Al combinar la flexibilidad de las variables basadas en búsquedas con los [widgets de métricas](create-and-work-with-widgets.md) preconfigurados, el panel proporciona información detallada sobre sus cargas de trabajo, lo que permite una supervisión, solución de problemas y optimización proactivas. Este enfoque dinámico garantiza que pueda adaptar rápidamente el panel a sus necesidades específicas de supervisión, sin necesidad de una personalización o configuración exhaustivas.

**¿Las soluciones son compatibles con la observabilidad entre regiones?**  
Los paneles de soluciones de CloudWatch muestran las métricas de la región en la que se creó el panel de soluciones. Sin embargo, el panel de soluciones no muestra las métricas de varias regiones. Si tiene un caso práctico para ver los datos de varias regiones en un único panel, tendrá que personalizar el JSON del panel para agregar las regiones que desea ver. Para ello, utilice el atributo `region` del formato de métricas para consultar las métricas de distintas regiones. Para obtener más información sobre cómo modificar el JSON del panel, consulte [Metric Widget: Format for Each Metric in the Array](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html#CloudWatch-Dashboard-Properties-Metrics-Array-Format).

**¿Los paneles de soluciones son compatibles con la consola de [CloudWatch entre cuentas y regiones](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)?**  
Cuando se utiliza la observabilidad entre cuentas de CloudWatch, los paneles de soluciones de la cuenta de supervisión central muestran las métricas de las cuentas de origen de la misma región. Para diferenciar las métricas de cargas de trabajo similares entre cuentas, proporcione valores de dimensión de agrupación únicos en las configuraciones del agente. Por ejemplo, asigne valores distintos de `ClusterName` a los intermediarios de Kafka en diferentes cuentas para la carga de trabajo de Kafka, lo que permitirá seleccionar el clúster con precisión y ver las métricas en el panel.

**¿Los paneles de soluciones son compatibles con la observabilidad entre cuentas de [CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)?**  
Si habilitó la función entre cuentas mediante la consola CloudWatch para varias cuentas y regiones, no podrá utilizar el panel de soluciones creado en la cuenta de supervisión para ver las métricas de las cuentas de origen. En su lugar, tendrá que crear paneles en las cuentas de origen correspondientes. Sin embargo, puede crear el panel en la cuenta de origen y verlo desde la cuenta de supervisión cambiando la configuración del ID de la cuenta en la consola.

**¿Cuáles son las limitaciones de un panel de soluciones?**  
Los paneles de soluciones utilizan las expresiones de búsqueda para filtrar y analizar las métricas de las cargas de trabajo. Esto permite vistas dinámicas basadas en las selecciones de opciones desplegables. Estas expresiones de búsqueda pueden devolver más de 500 series temporales, pero cada widget del panel no puede mostrar más de 500 series temporales. Si una búsqueda de métricas en el panel de soluciones arroja más de 500 series temporales en todas las instancias de Amazon EC2; es posible que el gráfico con los principales contribuyentes muestre resultados inexactos. Para obtener más información sobre las expresiones de búsqueda, consulte [Sintaxis de la expresión de búsqueda de CloudWatch](search-expression-syntax.md).  
CloudWatch muestra la información de las métricas en los paneles si hace clic en el ícono `i` del widget del panel. Sin embargo, actualmente esto no funciona con los widgets del panel que utilizan expresiones de búsqueda. Los paneles de soluciones utilizan expresiones de búsqueda, por lo que no podrá ver la descripción de la métrica en el panel.

**¿Puedo personalizar la configuración del agente o el panel proporcionado por una solución?**  
Puede personalizar la configuración del agente y el panel. Tenga en cuenta que si personaliza la configuración del agente, debe actualizar el panel en consecuencia, o mostrará widgets de métricas vacíos. Tenga en cuenta también que si CloudWatch lanza una nueva versión de una solución, es posible que tenga que repetir las personalizaciones si aplica la versión más reciente de la solución. 

**¿Cómo se asignan las versiones a las soluciones?**  
Cada solución proporciona las instrucciones y los recursos más actualizados. Siempre le recomendamos que utilice la última versión disponible. Si bien las soluciones en sí mismas no tienen asignada una versión, los artefactos asociados (como las plantillas de CloudFormation para los paneles y las instalaciones de los agentes) sí tienen una versión.  
Para identificar la versión de un artefacto implementado anteriormente, consulte el campo de descripción de la plantilla de CloudFormation o el nombre de archivo de la plantilla que descargó. Para determinar si está utilizando la versión más reciente, compare la versión implementada con la versión a la que se hace referencia actualmente en la documentación de la solución.

# Solución de CloudWatch: carga de trabajo de JVM en Amazon EC2
<a name="Solution-JVM-On-EC2"></a>

Esta solución lo ayuda a configurar la recopilación de métricas lista para usar mediante agentes de CloudWatch para aplicaciones de JVM que se ejecutan en instancias de EC2. Además, lo ayuda a configurar un panel de CloudWatch preconfigurado. Para obtener información general sobre todas las soluciones de observabilidad de CloudWatch, consulte [Soluciones de observabilidad de CloudWatch](Monitoring-Solutions.md).

**Topics**
+ [Requisitos](#Solution-JVM-On-EC2-Requirements)
+ [Ventajas](#Solution-JVM-On-EC2-Benefits)
+ [Costos](#Solution-JVM-On-EC2-Costs)
+ [Configuración del agente de CloudWatch para esta solución](#Solution-JVM-CloudWatch-Agent)
+ [Implementar el agente para su solución](#Solution-JVM-Agent-Deploy)
+ [Crear el panel de soluciones de JVM](#Solution-JVM-Dashboard)

## Requisitos
<a name="Solution-JVM-On-EC2-Requirements"></a>

Esta solución es adecuada para las siguientes condiciones:
+ Versiones compatibles: Java LTS versiones 8, 11, 17 y 21
+ Recursos informáticos: Amazon EC2
+ Compatible con hasta 500 instancias de EC2 en todas las cargas de trabajo de JVM en una determinada Región de AWS
+ Versión más reciente del agente de CloudWatch
+ SSM Agent instalado en la instancia de EC2
**nota**  
AWS Systems Manager (SSM Agent) está preinstalado en algunas [Imágenes de máquina de Amazon (AMI)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) proporcionadas por AWS y terceros de confianza. Si el agente no está instalado, puede instalarlo manualmente mediante el procedimiento correspondiente al tipo de sistema operativo.  
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html)
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html)
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Windows Server](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html)

## Ventajas
<a name="Solution-JVM-On-EC2-Benefits"></a>

La solución ofrece supervisión de JVM, lo que proporciona información valiosa para los siguientes casos de uso:
+ Supervise el uso de la memoria acumulada y no acumulada de la JVM.
+ Analice la carga de subprocesos y clases para detectar problemas de simultaneidad.
+ Realice un seguimiento de la recopilación de elementos no utilizados para identificar las pérdidas de memoria.
+ Alterne entre diferentes aplicaciones de JVM configuradas a través de la solución en la misma cuenta.

A continuación se detallan las principales ventajas de la solución:
+ Automatiza la recopilación de métricas para NVIDIA mediante la configuración del agente de CloudWatch, lo que elimina la instrumentación manual.
+ Proporciona un panel de CloudWatch consolidado y preconfigurado para las métricas de JVM. El panel administrará automáticamente las métricas de las nuevas instancias de EC2 de JVM configuradas con la solución, incluso si esas métricas no existían cuando creó el panel por primera vez. También permite agrupar las métricas en aplicaciones lógicas para facilitar el enfoque y la administración.

La siguiente imagen muestra un ejemplo del panel para esta solución:

![\[Ejemplo de panel de JVM\]](http://docs.aws.amazon.com/es_es/AmazonCloudWatch/latest/monitoring/images/JvmDashboard.png)


## Costos
<a name="Solution-JVM-On-EC2-Costs"></a>

Esta solución crea y utiliza recursos en su espacio de trabajo. Se cobrará por el uso estándar, que incluye lo siguiente:
+ Las métricas recopiladas por el agente de CloudWatch se cobran como métricas personalizadas. La cantidad de métricas que utiliza esta solución depende de la cantidad de hosts de EC2.
  + Cada host de JVM configurado para la solución publica un total de 18 métricas más una métrica (`disk_used_percent`), cuyo recuento de métricas depende del número de rutas del host.
+ Un panel personalizado.
+ Operaciones de API solicitadas por el agente de CloudWatch para publicar las métricas. Con la configuración predeterminada de esta solución, el agente de CloudWatch llama a **PutMetricData** una vez por minuto para cada host de EC2. Esto significa que la API **PutMetricData** se llamará `30*24*60=43,200` en un mes de 30 días para cada host de EC2.

Para obtener más información sobre los precios de CloudWatch, consulte [Precios de Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

La calculadora de precios puede ayudarlo a estimar los costos mensuales aproximados del uso de esta solución. 

**Para usar la calculadora de precios para estimar los costos mensuales de la solución**

1. Abra la [calculadora de precios de Amazon CloudWatch](https://calculator.aws/#/createCalculator/CloudWatch).

1. En **Elegir una región**, seleccione la región en la que desea implementar la solución.

1. En la sección **Métricas**, en **Número de métricas**, ingrese **(18 \$1 average number of disk paths per EC2 host) \$1 number of EC2 instances configured for this solution**.

1. En la sección **API**, en **Número de solicitudes de API**, ingrese **43200 \$1 number of EC2 instances configured for this solution**.

   De forma predeterminada, el agente CloudWatch realiza una operación **PutMetricData** por minuto para cada host de EC2.

1. En la sección **Paneles y alarmas**, en **Número de paneles**, escriba **1**.

1. Puede ver sus costos mensuales estimados en la parte inferior de la calculadora de precios.

## Configuración del agente de CloudWatch para esta solución
<a name="Solution-JVM-CloudWatch-Agent"></a>

El agente de CloudWatch es un software que se ejecuta de forma continua y autónoma en sus servidores y en entornos contenerizados. Recopila métricas, registros y trazas de su infraestructura y aplicaciones y los envía a CloudWatch y X-Ray.

Para obtener más información sobre el agente de CloudWatch, consulte [Recopile las métricas, registros y seguimientos con el agente de CloudWatch](Install-CloudWatch-Agent.md).

La configuración del agente de esta solución recopila las métricas fundamentales de la solución. El agente de CloudWatch se puede configurar para recopilar más métricas de JVM de las que muestra el panel de forma predeterminada. Para obtener una lista de todas las métricas de JVM que puede recopilar, consulte [Recopilación de métricas de JVM](CloudWatch-Agent-JMX-metrics.md#CloudWatch-Agent-JVM-metrics). Para obtener información acerca de la configuración del agente de CloudWatch, consulte [Métricas que el agente de CloudWatch ha recopilado](metrics-collected-by-CloudWatch-agent.md).

**Exponga los puertos de JMX para la aplicación de JVM**

El agente de CloudWatch se basa en JMX para recopilar las métricas relacionadas con el proceso de JVM. Para que esto sea posible, debe exponer el puerto de JMX de la aplicación de JVM. Las instrucciones para exponer el puerto de JMX dependen del tipo de carga de trabajo que utilice para la aplicación de JVM. Para obtener estas instrucciones, consulte la documentación de su aplicación.

En general, para habilitar un puerto de JMX para la supervisión y la administración, debe configurar las siguientes propiedades del sistema para su aplicación de JVM. Asegúrese de especificar un número de puerto no utilizado. En el siguiente ejemplo se configura la JMX no autenticada. Si sus políticas o requisitos de seguridad requieren que habilite JMX con autenticación por contraseña o SSL para el acceso remoto, consulte la [documentación de JMX](https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html) para configurar la propiedad requerida.

```
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=port-number
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false
```

Revise los scripts de inicio y los archivos de configuración de su aplicación para encontrar el mejor lugar para agregar estos argumentos. Al ejecutar un archivo `.jar` desde la línea de comandos, este comando podría tener el siguiente aspecto, donde *pet-search.jar* es el nombre del jar de la aplicación.

```
$ java -jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false pet-search.jar
```

**Configuración del agente de CloudWatch para esta solución**

Las métricas que el agente recopiló se definen en la configuración del agente. La solución proporciona configuraciones de agente para recopilar las métricas recomendadas con las dimensiones adecuadas para el panel de la solución. 

Los pasos para implementar la solución se describen más adelante en [Implementar el agente para su solución](#Solution-JVM-Agent-Deploy). La siguiente información tiene por objetivo ayudarlo a comprender cómo personalizar la configuración del agente para su entorno.

Debe personalizar algunas partes de la siguiente configuración de agente para su entorno:
+ El número de puerto de JMX es el que configuró en la sección anterior de esta documentación. Está en la línea `endpoint` de la configuración.
+ `ProcessGroupName`: proporcione nombres significativos para la dimensión `ProcessGroupName`. Estos nombres deben representar el agrupamiento de clústeres, aplicaciones o servicios de las instancias de EC2 que ejecutan la misma aplicación o proceso. Esto lo ayuda a agrupar las métricas de las instancias que pertenecen al mismo grupo de procesos de JVM, lo que proporciona una visión unificada del rendimiento de los clústeres, las aplicaciones y los servicios en el panel de soluciones.

Por ejemplo, si tiene dos aplicaciones Java ejecutándose en la misma cuenta, una para la aplicación `order-processing` y otra para la aplicación `inventory-management`, debe establecer las dimensiones `ProcessGroupName` correspondientes en la configuración del agente de cada instancia.
+ Para las instancias de la aplicación `order-processing`, configure `ProcessGroupName=order-processing`.
+ Para las instancias de la aplicación `inventory-management`, configure `ProcessGroupName=inventory-management`.

Si sigue estas pautas, el panel de soluciones agrupará automáticamente las métricas en función de la dimensión `ProcessGroupName`. El panel incluirá opciones desplegables para seleccionar y ver las métricas de un grupo de procesos específicos, lo que permitirá supervisar el rendimiento de los grupos de procesos individuales por separado.

### Configuración del agente para los hosts de JVM
<a name="Solution-JVM-Agent-Config"></a>

Utilice la siguiente configuración de agente de CloudWatch en las instancias de EC2 en las que se implementan las aplicaciones Java. La configuración se almacenará como parámetro en Parameter Store de SSM, como se detalla más adelante en [Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager](#Solution-JVM-Agent-Step2).

Sustituya *ProcessGroupName* por el nombre de su grupo de procesos. Sustituya *port-number* por el puerto JMX de su aplicación Java. Si JMX se habilitó con autenticación por contraseña o SSL para el acceso remoto, consulte [Recopilación de las métricas de Java Management Extensions (JMX)](CloudWatch-Agent-JMX-metrics.md) para obtener información sobre cómo configurar el TLS o la autorización en la configuración del agente, según sea necesario.

Las métricas de EC2 que se muestran en esta configuración (la configuración se muestra fuera del bloque de JMX) solo funcionan para instancias de Linux y macOS. Si utiliza instancias de Windows, puede optar por omitir estas métricas en la configuración. Para obtener información sobre las métricas recopiladas en las instancias de Windows, consulte [Métricas que el agente de CloudWatch recopila en instancias de Windows Server](metrics-collected-by-CloudWatch-agent.md#windows-metrics-enabled-by-CloudWatch-agent).

```
{
  "metrics": {
    "namespace": "CWAgent",
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "localhost:port-number",
          "jvm": {
            "measurement": [
              "jvm.classes.loaded",
              "jvm.gc.collections.count",
              "jvm.gc.collections.elapsed",
              "jvm.memory.heap.committed",
              "jvm.memory.heap.max",
              "jvm.memory.heap.used",
              "jvm.memory.nonheap.committed",
              "jvm.memory.nonheap.max",
              "jvm.memory.nonheap.used",
              "jvm.threads.count"
            ]
          },
          "append_dimensions": {
            "ProcessGroupName": "ProcessGroupName"
          }
        }
      ],
      "disk": {
        "measurement": [
          "used_percent"
        ]
      },
      "mem": {
        "measurement": [
          "used_percent"
        ]
      },
      "swap": {
        "measurement": [
          "used_percent"
        ]
      },
      "netstat": {
        "measurement": [
          "tcp_established",
          "tcp_time_wait"
        ]
      }
    }
  }
}
```

## Implementar el agente para su solución
<a name="Solution-JVM-Agent-Deploy"></a>

Existen varios métodos de instalación del agente de CloudWatch, según el caso de uso. Recomendamos usar Systems Manager para esta solución. Proporciona una experiencia de consola y simplifica la administración de una flota de servidores administrados en una sola cuenta de AWS. Las instrucciones de esta sección utilizan Systems Manager y están pensadas para cuando el agente de CloudWatch no se esté ejecutando con las configuraciones existentes. Puede comprobar si el agente de CloudWatch se está ejecutando, siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running).

Si ya ejecuta el agente de CloudWatch en los hosts de EC2 en los que se implementa la carga de trabajo y administra las configuraciones del agente, puede omitir las instrucciones de esta sección y seguir el mecanismo de implementación existente para actualizar la configuración. Asegúrese de combinar la configuración de agente de JVM con la configuración de agente existente y, a continuación, implemente la configuración combinada. Si utiliza Systems Manager para almacenar y administrar la configuración del agente de CloudWatch, puede combinar la configuración con el valor del parámetro existente. Para obtener más información, consulte [Managing CloudWatch agent configuration files](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html).

**nota**  
El uso de Systems Manager para implementar las siguientes configuraciones de agente de CloudWatch reemplazará o sobrescribirá cualquier configuración de agente de CloudWatch existente en las instancias de EC2. Puede modificar esta configuración para adaptarla a su entorno o caso de uso únicos. Las métricas definidas en esta solución son las mínimas requeridas para el panel recomendado. 

El proceso de implementación consta de los siguientes pasos:
+ Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios.
+ Paso 2: almacene el archivo de configuración recomendado del agente en Parameter Store de Systems Manager.
+ Paso 3: instale el agente de CloudWatch en una o más instancias de EC2 mediante una pila de CloudFormation.
+ Paso 4: verifique que la configuración del agente sea correcta.

### Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios
<a name="Solution-JVM-Agent-Step1"></a>

Debe conceder permiso a Systems Manager para instalar y configurar el agente de CloudWatch. También debe conceder permiso al agente de CloudWatch para publicar la telemetría de su instancia de EC2 en CloudWatch. Asegúrese de que el rol de IAM adjuntado a la instancia tenga adjuntas las políticas de IAM **CloudWatchAgentServerPolicy** y **AmazonSSMManagedInstanceCore**.
+ Después de crear el rol, adjunte el rol a sus instancias de EC2. Siga los pasos que se indican en [Lanzar una instancia con un rol de IAM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role) para adjuntar un rol al lanzar una nueva instancia de EC2. Para adjuntar un rol a una instancia de EC2 existente, siga los pasos que se indican en [Adjuntar un rol de IAM a una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role).

### Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager
<a name="Solution-JVM-Agent-Step2"></a>

Parameter Store simplifica la instalación del agente de CloudWatch en una instancia de EC2 al almacenar y administrar los parámetros de configuración de forma segura, lo que elimina la necesidad de valores de codificación rígida. Esto garantiza un proceso de implementación más seguro y flexible, lo que permite una administración centralizada y facilita las actualizaciones de las configuraciones en varias instancias.

Siga los pasos a continuación para almacenar el archivo de configuración del agente de CloudWatch recomendado como parámetro en Parameter Store.

**Para crear el archivo de configuración del agente de CloudWatch como parámetro**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Desde el panel de navegación, elija **Administración de aplicaciones**, **Parameter Store**.

1. Siga estos pasos para crear un nuevo parámetro para la configuración.

   1. Elija **Create parameter**.

   1. En el cuadro **Nombre**, ingrese un nombre que utilizará para hacer referencia al archivo de configuración del agente de CloudWatch en pasos posteriores. Por ejemplo, **AmazonCloudWatch-JVM-Configuration**.

   1. (Opcional) En el cuadro **Descripción**, escriba una descripción para el parámetro.

   1. En **Capa de parámetros**, elija **Estándar**. 

   1. En **Type**, elija **String**.

   1. En **⁣Tipo de datos**, elija **texto**.

   1. En el cuadro **Valor**, pegue el bloque JSON correspondiente que aparece en [Configuración del agente para los hosts de JVM](#Solution-JVM-Agent-Config). Asegúrese de personalizar el valor de la dimensión de agrupación y el número de puerto tal y como se describe.

   1. Elija **Create parameter**. 

### Paso 3: instale el agente de CloudWatch y aplique la configuración mediante una plantilla de CloudFormation
<a name="Solution-JVM-Agent-Step3"></a>

Puede usar AWS CloudFormation para instalar el agente y configurarlo para que use la configuración del agente de CloudWatch que creó en los pasos anteriores.

**Para instalar y configurar el agente de CloudWatch para esta solución**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de JVM.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **CWAgentInstallationStack**.

1. En la sección **Parámetros**, especifique los siguientes parámetros:

   1. En **CloudWatchAgentConfigSSM**, ingrese el nombre del parámetro de Systems Manager para la configuración del agente que creó anteriormente, por ejemplo **AmazonCloudWatch-JVM-Configuration**.

   1. Para seleccionar las instancias de destino, tiene dos opciones.

      1. En el caso de **InstanceIds**, especifique una lista delimitada por comas de una lista de ID de instancia en los que desee instalar el agente de CloudWatch con esta configuración. Puede enumerar una sola instancia o varias instancias.

      1. Si realiza una implementación a escala, puede especificar la **TagKey** y el **TagValue** correspondiente para dirigirse a todas las instancias de EC2 con esta etiqueta y valor. Si especifica una **TagKey**, debe especificar el **TagValue** correspondiente. (En el caso de un grupo de escalado automático, especifique **aws:autoscaling:groupName** para **TagKey** y especifique el nombre del grupo de escalado automático para que **TagValue** se implemente en todas las instancias del grupo de escalado automático).

         Si especifica tanto los parámetros **InstanceIds** como **TagKeys**, los **InstanceIds** tendrán prioridad y las etiquetas se ignorarán.

1. Revise la configuración y, a continuación, seleccione **Crear pila**. 

Si quiere editar primero el archivo de plantilla para personalizarlo, seleccione la opción **Cargar un archivo de plantilla** en el **Asistente de creación de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar el siguiente enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json). 

**nota**  
Una vez completado este paso, este parámetro de Systems Manager se asociará a los agentes de CloudWatch que se ejecuten en las instancias de destino. Esto significa que:  
Si se elimina el parámetro de Systems Manager, el agente se detendrá.
Si se edita el parámetro de Systems Manager, los cambios de configuración se aplicarán automáticamente al agente con la frecuencia programada, que es de 30 días por defecto.
Si desea aplicar inmediatamente los cambios a este parámetro de Systems Manager, debe volver a ejecutar este paso. Para obtener más información sobre asociaciones, consulte [Trabajo con asociaciones en Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html).

### Paso 4: verifique que la configuración del agente sea correcta
<a name="Solution-JVM-Agent-Step4"></a>

Puede comprobar si el agente de CloudWatch está instalado siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running). Si el agente de CloudWatch no está instalado ni en ejecución, asegúrese de haber configurado todo correctamente.
+ Asegúrese de haber adjuntado un rol con los permisos correctos a la instancia EC2, tal y como se describe en [Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios](#Solution-JVM-Agent-Step1).
+ Asegúrese de haber configurado correctamente el JSON para el parámetro de Systems Manager. Siga los pasos de [Solución de problemas de la instalación del agente de CloudWatch con CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md#CloudWatch-Agent-CloudFormation-troubleshooting).

Si todo está configurado correctamente, debería ver las métricas de la JVM publicadas en CloudWatch. Puede comprobar la consola de CloudWatch para verificar que se estén publicando.

**Para comprobar que las métricas de JVM se publican en CloudWatch**

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

1. Elija **Métricas**, **Todas las métricas**.

1. Asegúrese de haber seleccionado la región en la que implementó la solución y elija **Namespaces personalizados**, **CWAgent**.

1. Busque las métricas mencionadas en [Configuración del agente para los hosts de JVM](#Solution-JVM-Agent-Config), por ejemplo `jvm.memory.heap.used`. Si ve los resultados de estas métricas, significa que las métricas se están publicando en CloudWatch.

## Crear el panel de soluciones de JVM
<a name="Solution-JVM-Dashboard"></a>

El panel que proporciona esta solución presenta las métricas de la máquina virtual Java (JVM) subyacente del servidor. Ofrece una visión general de la JVM al agregar y presentar las métricas de todas las instancias, lo que proporciona un resumen de alto nivel del estado general y operativo. Además, el panel muestra un desglose de los principales contribuyentes (los 10 principales por widget de métrica) para cada métrica. Esto lo ayuda a identificar rápidamente los valores atípicos o las instancias que contribuyen de manera significativa a las métricas observadas.

El panel de soluciones no muestra las métricas de EC2. Para ver las métricas de EC2, tendrá que usar el panel automático de EC2 para ver las métricas ofrecidas de EC2 y usar el panel de la consola de EC2 para ver las métricas de EC2 recopiladas por el agente de CloudWatch. Para obtener más información sobre los paneles automáticos de los servicios de AWS, consulte [Visualización de un panel de CloudWatch para un solo servicio de AWS](CloudWatch_Automatic_Dashboards_Focus_Service.md).

Para crear el panel, puede usar las siguientes opciones:
+ Use la consola de CloudWatch para crear el panel.
+ Utilice la consola de AWS CloudFormation para implementar el panel.
+ Descargue la infraestructura de AWS CloudFormation como código e intégrela como parte de su automatización de integración continua (CI).

Al utilizar la consola de CloudWatch para crear un panel, puede obtener una vista previa del panel antes de crearlo y que se le cobre por ello.

**nota**  
 El panel creado con CloudFormation en esta solución muestra las métricas de la región en la que se implementa la solución. Asegúrese de crear la pila de CloudFormation en la región en la que se publican las métricas de JVM.   
Si las métricas del agente de CloudWatch se publican en un namespace que no sea `CWAgent` (por ejemplo, si proporcionó un namespace personalizado), tendrá que cambiar la configuración de CloudFormation para sustituir `CWAgent` por el namespace personalizado que esté utilizando.

**Para crear el panel mediante la consola de CloudWatch**
**nota**  
Actualmente, los paneles de soluciones muestran las métricas relacionadas con la recopilación de elementos no utilizados solo para el Recopilador de elementos no utilizados G1, que es el recopilador predeterminado para las versiones más recientes de Java. Si utiliza un algoritmo de recopilación de elementos no utilizados distinto, los widgets relacionados con la recopilación de elementos no utilizados están vacíos. Sin embargo, puede personalizar estos widgets si se cambia la plantilla de CloudFormation del panel y se aplica el tipo de recopilación de elementos no utilizados adecuado a la dimensión de nombre de las métricas relacionadas con la recopilación de elementos no utilizados. Por ejemplo, si utiliza la recolección de elementos no utilizados en paralelo, cambie **name=\$1"G1 Young Generation\$1"** a **name=\$1"Parallel GC\$1"** de la métrica de recuento de recopilación de elementos no utilizados `jvm.gc.collections.count`.

1. Abra la consola de CloudWatch en **Crear panel** mediante este enlace: [https://console.aws.amazon.com/cloudwatch/home?\$1dashboards?dashboardTemplate=JvmOnEc2&referrer=os-catalog](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=JvmOnEc2&referrer=os-catalog). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de JVM.

1. Ingrese el nombre del panel, luego seleccione **Crear panel**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **JVMDashboard-us-east-1**.

1. Obtenga una vista previa del panel y seleccione **Guardar** para crearlo.

**Para crear el panel de control mediante CloudFormation**

1. Abra el asistente de CloudFormation **⁣Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/JVM\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/JVM_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de JVM.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **JVMDashboardStack**.

1. En la sección **Parámetros**, especifique el nombre del panel en el parámetro **DashboardName**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **JVMDashboard-us-east-1**.

1. Reconozca las capacidades de acceso para las transformaciones en **Capacidades y transformaciones**. Tenga en cuenta que CloudFormation no agrega ningún recurso de IAM.

1. Revise la configuración y, a continuación, seleccione **Crear pila**. 

1. Cuando el estado de la pila sea **CREATE\$1COMPLETE**, elija la pestaña **Recursos** situada debajo de la pila creada y, a continuación, elija el enlace situado en **ID físico** para ir al panel. También puede acceder al panel en la consola de CloudWatch seleccionando **Paneles** en el panel de navegación izquierdo de la consola y buscando el nombre del panel en **Paneles personalizados**.

Si desea editar el archivo de plantilla para personalizarlo para cualquier propósito, puede usar la opción **Cargar un archivo de plantilla** en **Crear asistente de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar este enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/JVM\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/JVM_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json). 

**nota**  
Actualmente, los paneles de soluciones muestran las métricas relacionadas con la recopilación de elementos no utilizados solo para el Recopilador de elementos no utilizados G1, que es el recopilador predeterminado para las versiones más recientes de Java. Si utiliza un algoritmo de recopilación de elementos no utilizados distinto, los widgets relacionados con la recopilación de elementos no utilizados están vacíos. Sin embargo, puede personalizar estos widgets si se cambia la plantilla de CloudFormation del panel y se aplica el tipo de recopilación de elementos no utilizados adecuado a la dimensión de nombre de las métricas relacionadas con la recopilación de elementos no utilizados. Por ejemplo, si utiliza la recolección de elementos no utilizados en paralelo, cambie **name=\$1"G1 Young Generation\$1"** a **name=\$1"Parallel GC\$1"** de la métrica de recuento de recopilación de elementos no utilizados `jvm.gc.collections.count`. 

### Introducción al panel de JVM
<a name="Solution-JVM-Dashboard-GetStarted"></a>

Estas son algunas tareas que puede probar con el nuevo panel de JVM. Estas tareas permiten comprobar que el panel funciona correctamente y le proporcionan experiencia práctica en su uso para supervisar un grupo de procesos de JVM. A medida que las vaya probando, se familiarizará con la navegación por el panel y la interpretación de las métricas visualizadas.

**Seleccionar un grupo de procesos**

Utilice la lista desplegable del **Nombre del grupo de procesos de JVM** para seleccionar el grupo de procesos que desea supervisar. El panel se actualiza automáticamente para mostrar las métricas del grupo de procesos seleccionado. Si tiene varias aplicaciones o entornos de Java, cada uno puede representarse como un grupo de procesos independiente. Al seleccionar el grupo de procesos adecuado, se garantiza que se visualizan las métricas específicas de la aplicación o el entorno que se quiere analizar.

**Revisar el uso de la memoria**

En la sección de información general del panel, busque los widgets **Porcentaje de uso de memoria apilada** y **Porcentaje de uso de memoria no apilada**. Estos muestran el porcentaje de memoria apilada y no apilada que se utiliza en todas las JVM en el grupo de procesos seleccionado. Un porcentaje alto indica una posible presión de memoria que podría provocar problemas de rendimiento o excepciones `OutOfMemoryError`. También puede desglosar el uso de la pila por host en **Uso de memoria por host** para comprobar los hosts con un uso elevado.

**Analizar los subprocesos y las clases cargados**

En la sección **Subprocesos y clases cargados por host**, busque los widgets **Recuento de los 10 subprocesos principales** y **Las 10 clases más cargadas**. Busque cualquier JVM con un número anormalmente alto de subprocesos o clases en comparación con otras. Demasiados subprocesos pueden indicar fugas de subprocesos o una concurrencia excesiva, mientras que un número elevado de clases cargadas podría indicar posibles fugas en el cargador de clases o una generación ineficiente de clases dinámicas.

**Identificar los problemas de recopilación de elementos no utilizados**

En la sección **Recopilación de elementos no utilizados**, encuentre los widgets **10 principales invocaciones de recopilaciones de elementos no utilizados por minuto** y **Duración de las 10 principales recopilaciones de elementos no utilizados** para los distintos tipos de recopiladores de elementos no utilizados: **Jóvenes**, **Concurrentes** y **mixtos**. Busque cualquier JVM que tenga un número de recopilaciones inusualmente alto o que tenga una duración de recolección larga en comparación con otras. Esto podría indicar problemas de configuración o pérdidas de memoria.

# Solución de CloudWatch: carga de trabajo de NGINX en Amazon EC2
<a name="Solution-NGINX-On-EC2"></a>

Esta solución lo ayuda a configurar la recopilación de métricas lista para usar mediante agentes de CloudWatch para aplicaciones NGINX que se ejecutan en instancias de EC2. Para obtener información general sobre todas las soluciones de observabilidad de CloudWatch, consulte [Soluciones de observabilidad de CloudWatch](Monitoring-Solutions.md).

**Topics**
+ [Requisitos](#Solution-NGINX-On-EC2-Requirements)
+ [Ventajas](#Solution-NGINX-On-EC2-Benefits)
+ [Costos](#Solution-NGINX-On-EC2-Costs)
+ [Configuración del agente de CloudWatch para esta solución](#Solution-NGINX-CloudWatch-Agent)
+ [Implementar el agente para su solución](#Solution-NGINX-Agent-Deploy)
+ [Crear el panel de soluciones de NGINX](#Solution-NGINX-Dashboard)

## Requisitos
<a name="Solution-NGINX-On-EC2-Requirements"></a>

Esta solución es adecuada para las siguientes condiciones:
+ Versiones compatibles: versión 1.24 de NGINX
+ Recursos informáticos: Amazon EC2
+ Compatible con hasta 500 instancias de EC2 en todas las cargas de trabajo de NGINX en una determinada Región de AWS
+ Versión más reciente del agente de CloudWatch
+ Prometheus Exporter: nginxinc/nginx-prometheus-exporter (licencia Apache 2.0)
+ SSM Agent instalado en la instancia de EC2
**nota**  
AWS Systems Manager (SSM Agent) está preinstalado en algunas [Imágenes de máquina de Amazon (AMI)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) proporcionadas por AWS y terceros de confianza. Si el agente no está instalado, puede instalarlo manualmente mediante el procedimiento correspondiente al tipo de sistema operativo.  
 [Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) 
 [Instalación y desinstalación manual del SSM Agent en instancias de EC2 para macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html) 
 [Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Windows Server](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html) 

## Ventajas
<a name="Solution-NGINX-On-EC2-Benefits"></a>

La solución ofrece supervisión de NGINX, lo que proporciona información valiosa para los siguientes casos de uso:
+ Revise las métricas de conexión para identificar posibles cuellos de botella, problemas de conexión o usos inesperados.
+ Analice el volumen de solicitudes HTTP para comprender la carga de tráfico general en el NGINX.

A continuación se detallan las principales ventajas de la solución:
+ Automatiza la recopilación de métricas para NGINX mediante la configuración del agente de CloudWatch, lo que elimina la instrumentación manual.
+ Proporciona un panel de CloudWatch consolidado y preconfigurado para las métricas de NGINX. El panel administrará automáticamente las métricas de las nuevas instancias de EC2 de NGINX configuradas con la solución, incluso si esas métricas no existían cuando creó el panel por primera vez.

La siguiente imagen muestra un ejemplo del panel para esta solución:

![\[Ejemplo de panel para la solución de NGINX.\]](http://docs.aws.amazon.com/es_es/AmazonCloudWatch/latest/monitoring/images/NGINXDashboard.png)


## Costos
<a name="Solution-NGINX-On-EC2-Costs"></a>

Esta solución crea y utiliza recursos en su espacio de trabajo. Se cobrará por el uso estándar, que incluye lo siguiente:
+ Todas las métricas recopiladas por el agente de CloudWatch para esta solución se publican en Registros de CloudWatch mediante el Embedded Metric Format (EMF). Estos Registros de CloudWatch se cobran en función de su volumen y periodo de retención. Por lo tanto, no se cobrará ninguna llamada a la API **PutMetricData** para esta solución. Las métricas extraídas e ingeridas de sus registros se cobran como métricas personalizadas. La cantidad de métricas que utiliza esta solución depende de la cantidad de hosts de EC2.
  + Cada host de EC2 de NGINX configurado para la solución publica un total de ocho métricas.
+ Un panel personalizado.

Para obtener más información sobre los precios de CloudWatch, consulte [Precios de Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

La calculadora de precios puede ayudarlo a estimar los costos mensuales aproximados del uso de esta solución.

**Para usar la calculadora de precios para estimar los costos mensuales de la solución**

1. Abra la [calculadora de precios de Amazon CloudWatch](https://calculator.aws/#/createCalculator/CloudWatch).

1. En **Elija una región**, seleccione la Región de AWS en la que desea implementar la solución.

1. En la sección **Métricas**, en **Número de métricas**, ingrese **8 \$1 number of EC2 instances configured for this solution**.

1. En la sección **Registros**, en **Registros estándar: datos ingestados**, ingrese el volumen de registro diario estimado generado por el agente de CloudWatch en todos los hosts de EC2. Por ejemplo, cinco instancias de EC2 producen menos de 1000 bytes por día. Una vez configurado, puede comprobar el uso de bytes mediante la métrica ` IncomingBytes` que proporciona registros de CloudWatch. Asegúrese de seleccionar el grupo de registro adecuado.

1. En la sección **Registros**, en **Almacenamiento/archivado de registros (registros estándar y vendidos)**, seleccione **Yes to Store Logs: Assuming 1 month retention**. Modifique este valor si decide realizar cambios personalizados en el periodo de retención.

1. En la sección **Paneles y alarmas**, en **Número de paneles**, escriba **1**.

1. Puede ver sus costos mensuales estimados en la parte inferior de la calculadora de precios.

## Configuración del agente de CloudWatch para esta solución
<a name="Solution-NGINX-CloudWatch-Agent"></a>

El agente de CloudWatch es un software que se ejecuta de forma continua y autónoma en sus servidores y en entornos contenerizados. Recopila métricas, registros y trazas de su infraestructura y aplicaciones y los envía a CloudWatch y X-Ray.

Para obtener más información sobre el agente de CloudWatch, consulte [Recopile las métricas, registros y seguimientos con el agente de CloudWatch](Install-CloudWatch-Agent.md).

La configuración del agente de esta solución recopila un conjunto de métricas para ayudarlo a empezar a monitorear y observar la carga de trabajo de NGINX. El agente de CloudWatch se puede configurar para recopilar más métricas de NGINX de las que muestra el panel de forma predeterminada. Para ver una lista de todas las métricas de NGINX que puede recopilar, consulte [Métricas para NGINX OSS](https://github.com/nginxinc/nginx-prometheus-exporter?tab=readme-ov-file#exported-metrics).

Antes de configurar el agente de CloudWatch, primero debe configurar NGINX para que muestre sus métricas. En segundo lugar, debe instalar y configurar el exportador de métricas de Prometheus de terceros.

### Exponer métricas de NGINX
<a name="Solution-NGINX-Expose-Metrics"></a>

**nota**  
 Los siguientes comandos son para Linux. Consulte la [página de NGINX para Windows](https://nginx.org/en/docs/windows.html) para ver comandos equivalentes en Windows Server. 

En primer lugar, debe habilitar el módulo `stub_status`. Agregue un nuevo bloque de ubicación a su archivo de configuración de NGINX. Agregue las siguientes líneas en el bloque `server` de su `nginx.conf` para habilitar el módulo `stub_status` de NGINX:

```
location /nginx_status { 
          stub_status on;
          allow 127.0.0.1; # Allow only localhost to access
          deny all; # Deny all other IPs
        }
```

Antes de volver a cargar NGINX, valide su configuración de NGINX:

```
sudo nginx -t
```

Este comando de validación ayuda a evitar errores imprevistos, que pueden provocar que su sitio web deje de funcionar. A continuación se muestra un ejemplo de una respuesta correcta.

```
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
```

Una vez que haya validado correctamente la configuración actualizada, vuelva a cargar NGINX (no se espera ningún resultado):

```
sudo systemctl reload nginx
```

Este comando indica al proceso de NGINX que vuelva a cargar la configuración. El proceso de volver a cargar es más sencillo en comparación con un reinicio completo. Al volver a cargar, se inicia el nuevo proceso de trabajo con una nueva configuración y se cierran correctamente los procesos de trabajo antiguos.

Pruebe el punto de conexión de estado de NGINX:

```
curl http://127.0.0.1/nginx_status
```

A continuación se muestra un ejemplo de una respuesta correcta.

```
Active connections: 1
server accepts handled requests
6 6 6
Reading: 0 Writing: 1 Waiting: 0
```

El siguiente ejemplo muestra una respuesta a un error (revise los pasos anteriores antes de continuar):

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
      <head>
          <title>The page is not found</title>
          ...
```

### Configurar el exportador de métricas de Prometheus
<a name="Solution-NGINX-Configure-Prometheus"></a>

Descargue la última versión del exportador de Prometheus de NGINX desde el [repositorio oficial de GitHub.](https://github.com/nginxinc/nginx-prometheus-exporter/releases) Debe descargar el binario correspondiente para su plataforma.

En el siguiente ejemplo, se muestran comandos para AMD64:

```
cd /tmp
wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v1.3.0/nginx-prometheus-exporter_1.3.0_linux_amd64.tar.gz
tar -xzvf nginx-prometheus-exporter_1.3.0_linux_amd64.tar.gz
sudo cp nginx-prometheus-exporter /usr/local/bin/
rm /tmp/nginx-prometheus-exporter*
```

Ejecute el exportador de Prometheus y diríjalo a la página de estado del código auxiliar de NGINX:

```
nohup /usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri http://127.0.0.1/nginx_status &>/dev/null &
```

El siguiente ejemplo muestra una respuesta (ID y PID del trabajo en segundo plano):

```
[1] 74699
```

### Pruebe el punto de conexión de Prometheus de NGINX
<a name="Solution-NGINX-Test-Prometheus"></a>

Valide que el exportador de Prometheus de NGINX haya empezado a exponer las métricas pertinentes:

```
curl http://localhost:port-number/metrics
```

A continuación se muestra un ejemplo de una respuesta correcta.

```
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0
go_gc_duration_seconds{quantile="0.25"} 0
...
# HELP nginx_connections_accepted Accepted client connections
# TYPE nginx_connections_accepted counter
nginx_connections_accepted 14
# HELP nginx_connections_active Active client connections
# TYPE nginx_connections_active gauge
nginx_connections_active 1
...
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 1
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0
```

### Configuración del agente de CloudWatch para esta solución
<a name="Solution-NGINX-Agent-Config-Intro"></a>

Las métricas que el agente recopiló se definen en la configuración del agente. La solución proporciona configuraciones de agentes para recopilar las métricas recomendadas con las dimensiones adecuadas para el panel de la solución.

Los pasos para implementar la solución se describen más adelante en [Implementar el agente para su solución](#Solution-NGINX-Agent-Deploy). La siguiente información tiene por objetivo ayudarlo a comprender cómo personalizar la configuración del agente para su entorno.

Debe personalizar algunas partes de las configuraciones del agente y de Prometheus para su entorno, como el número de puerto utilizado por el exportador de Prometheus.

El puerto utilizado por el exportador de Prometheus se puede verificar mediante el siguiente comando:

```
sudo netstat -antp | grep nginx-prom
```

En el ejemplo siguiente se muestra una respuesta (consulte el valor de puerto 9113):

```
tcp6 0 0 :::9113 :::* LISTEN 76398/nginx-prometh
```

### Configuración del agente para hosts de NGINX
<a name="Solution-NGINX-Agent-Config"></a>

El agente CloudWatch con supervisión de Prometheus necesita dos configuraciones para raspar las métricas de Prometheus. Cada configuración se almacenará como un parámetro independiente en Parameter Store de SSM, como se detalla más adelante en [Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager](#Solution-NGINX-Agent-Step2).

La primera configuración es para el exportador de Prometheus, como se describe en la documentación [scrape\$1config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) de Prometheus. La segunda configuración es para el agente de CloudWatch.

 **Configuración de Prometheus** 

Sustituya el *número de puerto* por el puerto de su servidor.

```
global:
  scrape_interval: 30s
  scrape_timeout: 10s
  
scrape_configs:
- job_name: 'nginx'
  metrics_path: /metrics
  static_configs:
    - targets: ['localhost:port-number']
  ec2_sd_configs:
    - port: port-number
  relabel_configs:
    - source_labels: ['__meta_ec2_instance_id']
      target_label: InstanceId
  metric_relabel_configs:
    - source_labels: ['__name__']
      regex: 'nginx_up|nginx_http_requests_total|nginx_connections_.*'
      action: keep
```

 **⁣Configuración del agente de CloudWatch** 

Según la configuración anterior del agente de CloudWatch, estas métricas se publican mediante los Registros de CloudWatch con el [Embedded Metric Format (EMF)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Specification.html). Estos registros están configurados para usar el grupo de registro ` nginx`. Puede personalizar el *log\$1group\$1name* con un nombre diferente que represente los registros de CloudWatch.

 Si utiliza Windows Server, defina *prometheus\$1config\$1path* en la siguiente configuración en `C:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\prometheus.yaml`. 

```
{
"agent": {
  "metrics_collection_interval": 60
},
"logs": {
  "metrics_collected": {
      "prometheus": {
          "log_group_name": "nginx",
          "prometheus_config_path": "/opt/aws/amazon-cloudwatch-agent/etc/prometheus.yaml",
          "emf_processor": {
              "metric_declaration_dedup": true,
              "metric_namespace": "CWAgent",
              "metric_declaration":[
                  {
                      "source_labels":["InstanceId"],
                      "metric_selectors":["nginx_up", "nginx_http_requests_total", "nginx_connections*"],
                      "dimensions": [["InstanceId"]]
                  }
              ]
          }
      }
  }
}
}
```

## Implementar el agente para su solución
<a name="Solution-NGINX-Agent-Deploy"></a>

Existen varios métodos de instalación del agente de CloudWatch, según el caso de uso. Recomendamos usar Systems Manager para esta solución. Proporciona una experiencia de consola y simplifica la administración de una flota de servidores administrados en una sola cuenta de AWS. Las instrucciones de esta sección utilizan Systems Manager y están pensadas para cuando el agente de CloudWatch no se esté ejecutando con las configuraciones existentes. Puede comprobar si el agente de CloudWatch se está ejecutando, siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running).

Si ya ejecuta el agente de CloudWatch en los hosts de EC2 en los que se implementa la carga de trabajo y administra las configuraciones del agente, puede omitir las instrucciones de esta sección y seguir el mecanismo de implementación existente para actualizar la configuración. Asegúrese de combinar el nuevo agente de CloudWatch y las configuraciones de Prometheus con sus configuraciones existentes y, a continuación, implemente la configuración combinada. Si utiliza Systems Manager para almacenar y administrar la configuración del agente de CloudWatch, puede combinar la configuración con el valor del parámetro existente. Para obtener más información, consulte [Managing CloudWatch agent configuration files](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html).

**nota**  
El uso de Systems Manager para implementar las siguientes configuraciones de agente de CloudWatch reemplazará o sobrescribirá cualquier configuración de agente de CloudWatch existente en las instancias de EC2. Puede modificar esta configuración para adaptarla a su entorno o caso de uso únicos. Las métricas definidas en la configuración son las mínimas requeridas para el panel proporcionado por la solución.

El proceso de implementación consta de los siguientes pasos:
+ Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios.
+ Paso 2: almacene el archivo de configuración recomendado del agente en Parameter Store de Systems Manager.
+ Paso 3: instale el agente de CloudWatch en una o más instancias de EC2 mediante una pila de CloudFormation.
+ Paso 4: verifique que la configuración del agente sea correcta.

### Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios
<a name="Solution-NGINX-Agent-Step1"></a>

Debe conceder permiso a Systems Manager para instalar y configurar el agente de CloudWatch. Debe conceder permiso al agente de CloudWatch para publicar la telemetría de su instancia de EC2 en CloudWatch. También debe conceder al agente de CloudWatch acceso de lectura de EC2. El acceso de lectura de EC2 es necesario para agregar el InstanceID de EC2 como dimensión de métricas. Este requisito adicional se basa en `prometheus.yaml` como se detalló anteriormente, ya que utiliza ` __meta_ec2_instance_id` mediante la detección de servicios de EC2.

Asegúrese de que el rol de IAM adjuntado a la instancia tenga adjuntas las políticas de IAM **CloudWatchAgentServerPolicy**, **AmazonSSMManagedInstanceCore** y **AmazonEC2ReadOnlyAccess**.
+ Después de crear el rol, adjunte el rol a sus instancias de EC2. Para adjuntar un rol a una instancia de EC2, siga los pasos que se indican en [Adjuntar un rol de IAM a una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attach-iam-role.html).

### Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager
<a name="Solution-NGINX-Agent-Step2"></a>

Parameter Store simplifica la instalación del agente de CloudWatch en una instancia de EC2 al almacenar y administrar los parámetros de configuración de forma segura, lo que elimina la necesidad de valores de codificación rígida. Esto garantiza un proceso de implementación más seguro y flexible, lo que permite una administración centralizada y facilita las actualizaciones de las configuraciones en varias instancias.

Siga los pasos a continuación para almacenar el archivo de configuración del agente de CloudWatch recomendado como parámetro en Parameter Store.

**Para crear el archivo de configuración del agente de CloudWatch como parámetro**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta NGINX.

1. Desde el panel de navegación, elija **Administración de aplicaciones**, **Parameter Store**.

1. Siga estos pasos para crear un nuevo parámetro para la configuración.

   1. Elija **Create parameter**.

   1. En el cuadro **Nombre**, ingrese un nombre que utilizará para hacer referencia al archivo de configuración del agente de CloudWatch en pasos posteriores. Por ejemplo, ** AmazonCloudWatch-NGINX-CloudWatchAgent-Configuration**.

   1. (Opcional) En el cuadro **Descripción**, escriba una descripción para el parámetro.

   1. En **Capa de parámetros**, elija **Estándar**.

   1. En **Type**, elija **String**.

   1. En **⁣Tipo de datos**, elija **texto**.

   1. En el cuadro **Valor**, pegue el bloque JSON correspondiente que aparece en [Configuración del agente para hosts de NGINX](#Solution-NGINX-Agent-Config). Asegúrese de personalizarlo según sea necesario. Por ejemplo, el `log_group_name` correspondiente. 

   1. Elija **Create parameter**.

**Para crear el archivo de configuración Prometheus como parámetro**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Desde el panel de navegación, elija **Administración de aplicaciones**, **Parameter Store**.

1. Siga estos pasos para crear un nuevo parámetro para la configuración.

   1. Elija **Create parameter**.

   1. En el cuadro **Nombre**, ingrese un nombre que utilizará para hacer referencia al archivo de configuración en pasos posteriores. Por ejemplo, ** AmazonCloudWatch-NGINX-Prometheus-Configuration**.

   1. (Opcional) En el cuadro **Descripción**, escriba una descripción para el parámetro.

   1. En **Capa de parámetros**, elija **Estándar**.

   1. En **Type**, elija **String**.

   1. En **⁣Tipo de datos**, elija **texto**.

   1. En el cuadro **Valor**, pegue el bloque YAML correspondiente que aparece en [Configuración del agente para hosts de NGINX](#Solution-NGINX-Agent-Config). Asegúrese de personalizarlo según sea necesario. Por ejemplo, el número de puerto correspondiente según `targets`.

   1. Elija **Create parameter**.

### Paso 3: instale el agente de CloudWatch y aplique la configuración mediante una plantilla de CloudFormation
<a name="Solution-NGINX-Agent-Step3"></a>

Puede usar AWS CloudFormation para instalar el agente y configurarlo para que use la configuración del agente de CloudWatch que creó en los pasos anteriores.

**Para instalar y configurar el agente de CloudWatch para esta solución**

1. Abra el asistente de CloudFormation **⁣Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-with-prometheus-config-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-with-prometheus-config-1.0.0.json).

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de NGINX.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como ** CWAgentInstallationStack**.

1. En la sección **Parámetros**, especifique los siguientes parámetros:

   1. En **CloudwatchAgentConfigSSM**, ingrese el nombre del parámetro AWS Systems Manager de la configuración del agente que creó anteriormente, por ejemplo ** AmazonCloudWatch-NGINX-CloudWatchAgent-Configuration**.

   1. En **PrometheusConfigSSM**, ingrese el nombre del parámetro AWS Systems Manager de la configuración del agente que creó anteriormente, por ejemplo ** AmazonCloudWatch-NGINX-Prometheus-Configuration**.

   1. Para seleccionar las instancias de destino, tiene dos opciones.

      1. En el caso de **InstanceIds**, especifique una lista delimitada por comas de una lista de ID de instancia en los que desee instalar el agente de CloudWatch con esta configuración. Puede enumerar una sola instancia o varias instancias.

      1. Si realiza una implementación a escala, puede especificar la **TagKey** y el **TagValue** correspondiente para dirigirse a todas las instancias de EC2 con esta etiqueta y valor. Si especifica una **TagKey**, debe especificar el **TagValue** correspondiente. (En el caso de un grupo de escalado automático, especifique **aws:autoscaling:groupName** para **TagKey** y especifique el nombre del grupo de escalado automático para que **TagValue** se implemente en todas las instancias del grupo de escalado automático).

1. Revise la configuración y, a continuación, seleccione **Crear pila**.

Si quiere editar primero el archivo de plantilla para personalizarlo, seleccione la opción **Cargar un archivo de plantilla** en el **Asistente de creación de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar el siguiente enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-with-prometheus-config-1.0.0.json]( https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-with-prometheus-config-1.0.0.json). 

**nota**  
Una vez completado este paso, este parámetro de Systems Manager se asociará a los agentes de CloudWatch que se ejecuten en las instancias de destino. Esto significa que:  
Si se elimina el parámetro de Systems Manager, el agente se detendrá.
Si se edita el parámetro de Systems Manager, los cambios de configuración se aplicarán automáticamente al agente con la frecuencia programada, que es de 30 días por defecto.
Si desea aplicar inmediatamente los cambios a este parámetro de Systems Manager, debe volver a ejecutar este paso. Para obtener más información sobre asociaciones, consulte [Trabajo con asociaciones en Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html).

### Paso 4: verifique que la configuración del agente sea correcta
<a name="Solution-NGINX-Agent-Step4"></a>

Puede comprobar si el agente de CloudWatch está instalado siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running). Si el agente de CloudWatch no está instalado ni en ejecución, asegúrese de haber configurado todo correctamente.
+ Asegúrese de haber adjuntado un rol con los permisos correctos a la instancia EC2, tal y como se describe en [Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios](#Solution-NGINX-Agent-Step1).
+ Asegúrese de haber configurado correctamente el JSON para el parámetro de Systems Manager. Siga los pasos de [Solución de problemas de la instalación del agente de CloudWatch con CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md#CloudWatch-Agent-CloudFormation-troubleshooting).

Si todo está configurado correctamente, debería ver las métricas de NGINX publicadas en CloudWatch. Puede comprobar la consola de CloudWatch para verificar que se estén publicando.

**Para comprobar que las métricas de NGINX se publican en CloudWatch**

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

1. Elija **Métricas**, **Todas las métricas**.

1. Asegúrese de haber seleccionado la región en la que implementó la solución y elija **Namespaces personalizados**, **CWAgent**.

1. Busque métricas como `nginx_http_requests_total`. Si ve los resultados de estas métricas, significa que las métricas se están publicando en CloudWatch.

## Crear el panel de soluciones de NGINX
<a name="Solution-NGINX-Dashboard"></a>

El panel proporcionado por esta solución presenta las métricas de la carga de trabajo de NGINX mediante la agregación y presentación de las métricas de todas las instancias. El panel muestra un desglose de los principales contribuyentes (los 10 principales por widget de métrica) para cada métrica. Esto lo ayuda a identificar rápidamente los valores atípicos o las instancias que contribuyen de manera significativa a las métricas observadas.

Para crear el panel, puede usar las siguientes opciones:
+ Use la consola de CloudWatch para crear el panel.
+ Utilice la consola de AWS CloudFormation para implementar el panel.
+ Descargue la infraestructura de AWS CloudFormation como código e intégrela como parte de su automatización de integración continua (CI).

Al utilizar la consola de CloudWatch para crear un panel, puede obtener una vista previa del panel antes de crearlo y que se le cobre por ello.

**nota**  
El panel creado con CloudFormation en esta solución muestra las métricas de la región en la que se implementa la solución. Asegúrese de crear la pila CloudFormation en la región en la que se publican sus métricas de NGINX.  
Si especificó un namespace personalizado que no sea `CWAgent` en la configuración del agente de CloudWatch, tendrá que cambiar la plantilla de CloudFormation del panel para sustituir `CWAgent` por el namespace personalizado que esté utilizando.

**Para crear el panel mediante la consola de CloudWatch**

1. Abra la consola de CloudWatch en **Crear panel** mediante este enlace:[ https://console.aws.amazon.com/cloudwatch/home?\$1dashboards?dashboardTemplate=NginxOnEc2&referrer=os-catalog](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=NginxOnEc2&referrer=os-catalog). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de NGINX.

1. Ingrese el nombre del panel, luego seleccione **Crear panel**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **NGINXDashboard-us-east-1**.

1. Obtenga una vista previa del panel y seleccione **Guardar** para crearlo.

**Para crear el panel de control mediante CloudFormation**

1. Abra el asistente deCloudFormation **Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NGINX\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NGINX_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json).

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de NGINX.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como ** NGINXDashboardStack**.

1. En la sección **Parámetros**, especifique el nombre del panel en el parámetro **DashboardName**.

1. Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo ** NGINXDashboard-us-east-1**.

1. Reconozca las capacidades de acceso para las transformaciones en **Capacidades y transformaciones**. Tenga en cuenta que CloudFormation no agrega ningún recurso de IAM.

1. Revise la configuración y, a continuación, seleccione **Crear pila**.

1. Cuando el estado de la pila sea **CREATE\$1COMPLETE**, elija la pestaña **Recursos** situada debajo de la pila creada y, a continuación, elija el enlace situado en **ID físico** para ir al panel. También puede acceder al panel en la consola de CloudWatch seleccionando **Paneles** en el panel de navegación izquierdo de la consola y buscando el nombre del panel en **Paneles personalizados**.

Si quiere editar primero el archivo de plantilla para personalizarlo, seleccione la opción **Cargar un archivo de plantilla** en el **Asistente de creación de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar el siguiente enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NGINX\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json]( https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NGINX_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json). 

### Introducción al panel de NGINX
<a name="Solution-NGINX-Dashboard-GetStarted"></a>

Estas son algunas tareas que puede probar con el nuevo panel de NGINX. Estas tareas permiten validar que el panel funciona correctamente y le proporcionan experiencia práctica en su uso para supervisar cargas de trabajo de NGINX. A medida que las vaya probando, se familiarizará con la navegación por el panel y la interpretación de las métricas visualizadas.

 **Revisar las métricas de conexión** 

En la sección **Conexiones**, puede encontrar varias métricas clave que proporcionan información sobre el manejo de las conexiones de los clientes en su servidor de NGINX. Supervisar estas métricas de conexión puede ayudarlo a identificar posibles cuellos de botella, problemas de conexión o patrones de conexión inesperados.
+ Conexiones de clientes aceptadas
+ Conexiones de clientes inactivas
+ Conexiones de clientes atendidas
+ Solicitudes de lectura de conexiones
+ Conexiones de clientes inactivas
+ Respuestas de conexiones por escrito

 **Analizar el volumen de solicitudes HTTP** 

La métrica `request` de la sección **Solicitudes HTTP** muestra el número total de solicitudes HTTP atendidas por el servidor de NGINX. El seguimiento de esta métrica a lo largo del tiempo puede ayudarlo a comprender la carga de tráfico general de su infraestructura de NGINX y a planificar la asignación de recursos y el escalado en consecuencia.

# Solución de CloudWatch: carga de trabajo de GPU NVIDIA en Amazon EC2
<a name="Solution-NVIDIA-GPU-On-EC2"></a>

Esta solución lo ayuda a configurar la recopilación de métricas lista para usar mediante agentes de CloudWatch para las cargas de trabajo de GPU NVIDIA que se ejecutan en instancias de EC2. Además, lo ayuda a configurar un panel de CloudWatch preconfigurado. Para obtener información general sobre todas las soluciones de observabilidad de CloudWatch, consulte [Soluciones de observabilidad de CloudWatch](Monitoring-Solutions.md). 

**Topics**
+ [Requisitos](#Solution-NVIDIA-GPU-On-EC2-Requirements)
+ [Ventajas](#Solution-NVIDIA-GPU-On-EC2-Benefits)
+ [Configuración del agente de CloudWatch para esta solución](#Solution-NVIDIA-GPU-CloudWatch-Agent)
+ [Implementar el agente para su solución](#Solution-NVIDIA-GPU-Agent-Deploy)
+ [Crear el panel de soluciones de GPU NVIDIA](#Solution-NVIDIA-GPU-Dashboard)

## Requisitos
<a name="Solution-NVIDIA-GPU-On-EC2-Requirements"></a>

Esta solución es adecuada para las siguientes condiciones:
+ Recursos informáticos: Amazon EC2
+ Compatible con hasta 500 GPU en todas las instancias de EC2 en una determinadaRegión de AWS
+ Versión más reciente del agente de CloudWatch
+ SSM Agent instalado en la instancia de EC2
+ La instancia de EC2 debe tener instalado un controlador NVIDIA. Los controladores NVIDIA están preinstalados en algunas Imágenes de máquina de Amazon (AMI). De lo contrario, puede instalar el controlador de forma manual. Para obtener más información, consulte [Instalar los controladores NVIDIA en instancias de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-nvidia-driver.html).

**nota**  
AWS Systems Manager (SSM Agent) está preinstalado en algunas [Imágenes de máquina de Amazon (AMI)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) proporcionadas por AWS y terceros de confianza. Si el agente no está instalado, puede instalarlo manualmente mediante el procedimiento correspondiente al tipo de sistema operativo.  
[ Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html)
[ Instalación y desinstalación manual del SSM Agent en instancias de EC2 para macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html)
[ Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Windows Server](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html)

## Ventajas
<a name="Solution-NVIDIA-GPU-On-EC2-Benefits"></a>

La solución ofrece supervisión NVIDIA, lo que proporciona información valiosa para los siguientes casos de uso:
+ Analice el uso de GPU y de memoria para detectar cuellos de botella en el rendimiento o la necesidad de recursos adicionales.
+ Supervise la temperatura y el consumo de energía para garantizar que las GPU funcionen dentro de límites seguros.
+ Evalúe el rendimiento del codificador para las cargas de trabajo de video de la GPU.
+ Compruebe la conectividad PCIe para conocer la generación y el ancho esperados.
+ Supervise las velocidades de reloj de la GPU para detectar problemas de escala y limitación.

A continuación se detallan las principales ventajas de la solución:
+ Automatiza la recopilación de métricas para NVIDIA mediante la configuración del agente de CloudWatch, lo que elimina la instrumentación manual.
+ Proporciona un panel de CloudWatch consolidado y preconfigurado para las métricas de NVIDIA. El panel administrará automáticamente las métricas de las nuevas instancias de EC2 de NVIDIA configuradas con la solución, incluso si esas métricas no existían cuando creó el panel por primera vez.

La siguiente imagen muestra un ejemplo del panel para esta solución:

![\[Ejemplo de panel para la solución de GPU NVIDIA.\]](http://docs.aws.amazon.com/es_es/AmazonCloudWatch/latest/monitoring/images/NVIDIADashboard.png)


### Costos
<a name="Solution-NVIDIA-GPU-On-EC2-Costs"></a>

Esta solución crea y utiliza recursos en su espacio de trabajo. Se cobrará por el uso estándar, que incluye lo siguiente:
+ Las métricas recopiladas por el agente de CloudWatch se cobran como métricas personalizadas. La cantidad de métricas que utiliza esta solución depende de la cantidad de hosts de EC2.
  + Cada host de EC2 configurado para la solución publica un total de 17 métricas por GPU.
+ Un panel personalizado.
+ Operaciones de API solicitadas por el agente de CloudWatch para publicar las métricas. Con la configuración predeterminada de esta solución, el agente de CloudWatch llama a **PutMetricData** una vez por minuto para cada host de EC2. Esto significa que la API **PutMetricData** se llamará `30*24*60=43,200` en un mes de 30 días para cada host de EC2.

Para obtener más información sobre los precios de CloudWatch, consulte [Precios de Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

La calculadora de precios puede ayudarlo a estimar los costos mensuales aproximados del uso de esta solución.

**Para usar la calculadora de precios para estimar los costos mensuales de la solución**

1. Abra la [calculadora de precios de Amazon CloudWatch](https://calculator.aws/#/createCalculator/CloudWatch).

1. En **Elegir una región**, seleccione la región en la que desea implementar la solución.

1. En la sección **Métricas**, en **Número de métricas**, ingrese **17 \$1 average number of GPUs per EC2 host \$1 number of EC2 instances configured for this solution**.

1. En la sección **API**, en **Número de solicitudes de API**, ingrese **43200 \$1 number of EC2 instances configured for this solution**.

1. De forma predeterminada, el agente CloudWatch realiza una operación **PutMetricData** por minuto para cada host de EC2.

1. En la sección **Paneles y alarmas**, en **Número de paneles**, escriba **1**.

1. Puede ver sus costos mensuales estimados en la parte inferior de la calculadora de precios.

## Configuración del agente de CloudWatch para esta solución
<a name="Solution-NVIDIA-GPU-CloudWatch-Agent"></a>

El agente de CloudWatch es un software que se ejecuta de forma continua y autónoma en sus servidores y en entornos contenerizados. Recopila métricas, registros y trazas de su infraestructura y aplicaciones y los envía a CloudWatch y X-Ray.

Para obtener más información sobre el agente de CloudWatch, consulte [Recopile las métricas, registros y seguimientos con el agente de CloudWatch](Install-CloudWatch-Agent.md).

La configuración del agente de esta solución recopila un conjunto de métricas para ayudarlo a empezar a supervisar y observar su GPU NVIDIA. El agente de CloudWatch se puede configurar para recopilar más métricas de GPU NVIDIA que las que muestra el panel de forma predeterminada. Para ver una lista de todas las métricas de GPU NVIDIA que puede recopilar, consulte [Recopilación de métricas de GPU NVIDIA](CloudWatch-Agent-NVIDIA-GPU.md).

### Configuración del agente de CloudWatch para esta solución
<a name="Solution-NVIDIA-GPU-Agent-Config"></a>

Las métricas que el agente recopiló se definen en la configuración del agente. La solución proporciona configuraciones de agentes para recopilar las métricas recomendadas con las dimensiones adecuadas para el panel de la solución.

Utilice la siguiente configuración de agente de CloudWatch en instancias EC2 con GPU NVIDIA. La configuración se almacenará como parámetro en Parameter Store de SSM, como se detalla más adelante en [Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager](#Solution-NVIDIA-GPU-Agent-Step2).

```
{
    "metrics": {
        "namespace": "CWAgent",
        "append_dimensions": {
            "InstanceId": "${aws:InstanceId}"
        },
        "metrics_collected": {
            "nvidia_gpu": {
                "measurement": [
                    "utilization_gpu",
                    "temperature_gpu",
                    "power_draw",
                    "utilization_memory",
                    "fan_speed",
                    "memory_total",
                    "memory_used",
                    "memory_free",
                    "pcie_link_gen_current",
                    "pcie_link_width_current",
                    "encoder_stats_session_count",
                    "encoder_stats_average_fps",
                    "encoder_stats_average_latency",
                    "clocks_current_graphics",
                    "clocks_current_sm",
                    "clocks_current_memory",
                    "clocks_current_video"
                ],
                "metrics_collection_interval": 60
            }
        }
    },
    "force_flush_interval": 60
}
```

## Implementar el agente para su solución
<a name="Solution-NVIDIA-GPU-Agent-Deploy"></a>

Existen varios métodos de instalación del agente de CloudWatch, según el caso de uso. Recomendamos usar Systems Manager para esta solución. Proporciona una experiencia de consola y simplifica la administración de una flota de servidores administrados en una sola cuenta de AWS. Las instrucciones de esta sección utilizan Systems Manager y están pensadas para cuando el agente de CloudWatch no se esté ejecutando con las configuraciones existentes. Puede comprobar si el agente de CloudWatch se está ejecutando, siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running).

Si ya ejecuta el agente de CloudWatch en los hosts de EC2 en los que se implementa la carga de trabajo y administra las configuraciones del agente, puede omitir las instrucciones de esta sección y seguir el mecanismo de implementación existente para actualizar la configuración. Asegúrese de combinar la configuración de agente de la GPU NVIDIA con la configuración de agente existente y, a continuación, implemente la configuración combinada. Si utiliza Systems Manager para almacenar y administrar la configuración del agente de CloudWatch, puede combinar la configuración con el valor del parámetro existente. Para obtener más información, consulte [Managing CloudWatch agent configuration files](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html).

**nota**  
El uso de Systems Manager para implementar las siguientes configuraciones de agente de CloudWatch reemplazará o sobrescribirá cualquier configuración de agente de CloudWatch existente en las instancias de EC2. Puede modificar esta configuración para adaptarla a su entorno o caso de uso únicos. Las métricas definidas en la configuración son las mínimas requeridas para el panel proporcionado por la solución.

El proceso de implementación consta de los siguientes pasos:
+ Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios.
+ Paso 2: almacene el archivo de configuración recomendado del agente en Parameter Store de Systems Manager.
+ Paso 3: instale el agente de CloudWatch en una o más instancias de EC2 mediante una pila de CloudFormation.
+ Paso 4: verifique que la configuración del agente sea correcta.

### Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios
<a name="Solution-NVIDIA-GPU-Agent-Step1"></a>

Debe conceder permiso a Systems Manager para instalar y configurar el agente de CloudWatch. También debe conceder permiso al agente de CloudWatch para publicar la telemetría de su instancia de EC2 en CloudWatch. Asegúrese de que el rol de IAM adjuntado a la instancia tenga adjuntas las políticas de IAM **CloudWatchAgentServerPolicy** y **AmazonSSMManagedInstanceCore**.
+ Después de crear el rol, adjunte el rol a sus instancias de EC2. Para adjuntar un rol a una instancia de EC2, siga los pasos que se indican en [Adjuntar un rol de IAM a una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attach-iam-role.html).

### Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager
<a name="Solution-NVIDIA-GPU-Agent-Step2"></a>

Parameter Store simplifica la instalación del agente de CloudWatch en una instancia de EC2 al almacenar y administrar los parámetros de configuración de forma segura, lo que elimina la necesidad de valores de codificación rígida. Esto garantiza un proceso de implementación más seguro y flexible, lo que permite una administración centralizada y facilita las actualizaciones de las configuraciones en varias instancias.

Siga los pasos a continuación para almacenar el archivo de configuración del agente de CloudWatch recomendado como parámetro en Parameter Store.

**Para crear el archivo de configuración del agente de CloudWatch como parámetro**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de la GPU NVIDIA.

1. Desde el panel de navegación, elija **Administración de aplicaciones**, **Parameter Store**.

1. Siga estos pasos para crear un nuevo parámetro para la configuración.

   1. Elija **Create parameter**.

   1. En el cuadro **Nombre**, ingrese un nombre que utilizará para hacer referencia al archivo de configuración del agente de CloudWatch en pasos posteriores. Por ejemplo, **AmazonCloudWatch-NVIDIA-GPU-Configuration**.

   1. (Opcional) En el cuadro **Descripción**, escriba una descripción para el parámetro.

   1. En **Capa de parámetros**, elija **Estándar**.

   1. En **Type**, elija **String**.

   1. En **⁣Tipo de datos**, elija **texto**.

   1. En el cuadro **Valor**, pegue el bloque JSON correspondiente que aparece en [Configuración del agente de CloudWatch para esta solución](#Solution-NVIDIA-GPU-Agent-Config).

   1. Elija **Create parameter**.

### Paso 3: instale el agente de CloudWatch y aplique la configuración mediante una plantilla de CloudFormation
<a name="Solution-NVIDIA-GPU-Agent-Step3"></a>

Puede usar AWS CloudFormation para instalar el agente y configurarlo para que use la configuración del agente de CloudWatch que creó en los pasos anteriores.

**Para instalar y configurar el agente de CloudWatch para esta solución**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json).

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de la GPU NVIDIA.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **CWAgentInstallationStack**.

1. En la sección **Parámetros**, especifique los siguientes parámetros:

   1. En **CloudWatchAgentConfigSSM**, ingrese el nombre del parámetro de Systems Manager para la configuración del agente que creó anteriormente, por ejemplo **AmazonCloudWatch-NVIDIA-GPU-Configuration**.

   1. Para seleccionar las instancias de destino, tiene dos opciones.

      1. En el caso de **InstanceIds**, especifique una lista delimitada por comas de una lista de ID de instancia en los que desee instalar el agente de CloudWatch con esta configuración. Puede enumerar una sola instancia o varias instancias.

      1. Si realiza una implementación a escala, puede especificar la **TagKey** y el **TagValue** correspondiente para dirigirse a todas las instancias de EC2 con esta etiqueta y valor. Si especifica una **TagKey**, debe especificar el **TagValue** correspondiente. (En el caso de un grupo de escalado automático, especifique **aws:autoscaling:groupName** para **TagKey** y especifique el nombre del grupo de escalado automático para que **TagValue** se implemente en todas las instancias del grupo de escalado automático).

1. Revise la configuración y, a continuación, seleccione **Crear pila**.

Si quiere editar primero el archivo de plantilla para personalizarlo, seleccione la opción **Cargar un archivo de plantilla** en el **Asistente de creación de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).

**nota**  
Una vez completado este paso, este parámetro de Systems Manager se asociará a los agentes de CloudWatch que se ejecuten en las instancias de destino. Esto significa que:  
Si se elimina el parámetro de Systems Manager, el agente se detendrá.
Si se edita el parámetro de Systems Manager, los cambios de configuración se aplicarán automáticamente al agente con la frecuencia programada, que es de 30 días por defecto.
Si desea aplicar inmediatamente los cambios a este parámetro de Systems Manager, debe volver a ejecutar este paso. Para obtener más información sobre asociaciones, consulte [Trabajo con asociaciones en Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html).

### Paso 4: verifique que la configuración del agente sea correcta
<a name="Solution-NVIDIA-GPU-Agent-Step4"></a>

Puede comprobar si el agente de CloudWatch está instalado siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running). Si el agente de CloudWatch no está instalado ni en ejecución, asegúrese de haber configurado todo correctamente.
+ Asegúrese de haber adjuntado un rol con los permisos correctos a la instancia EC2, tal y como se describe en [Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios](#Solution-NVIDIA-GPU-Agent-Step1).
+ Asegúrese de haber configurado correctamente el JSON para el parámetro de Systems Manager. Siga los pasos de [Solución de problemas de la instalación del agente de CloudWatch con CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md#CloudWatch-Agent-CloudFormation-troubleshooting).

Si todo está configurado correctamente, debería ver las métricas de la GPU NVIDIA publicadas en CloudWatch. Puede comprobar la consola de CloudWatch para verificar que se estén publicando.

**Para verificar que las métricas de la GPU NVIDIA se publican en CloudWatch**

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

1. Elija **Métricas**, **Todas las métricas**.

1. Asegúrese de haber seleccionado la región en la que implementó la solución y elija **Namespaces personalizados**, **CWAgent**.

1. Busque las métricas mencionadas en [Configuración del agente de CloudWatch para esta solución](#Solution-NVIDIA-GPU-Agent-Config), por ejemplo `nvidia_smi_utilization_gpu`. Si ve los resultados de estas métricas, significa que las métricas se están publicando en CloudWatch.

## Crear el panel de soluciones de GPU NVIDIA
<a name="Solution-NVIDIA-GPU-Dashboard"></a>

El panel proporcionado por esta solución presenta las métricas de las GPU NVIDIA mediante la agregación y presentación de las métricas de todas las instancias. El panel muestra un desglose de los principales contribuyentes (los 10 principales por widget de métrica) para cada métrica. Esto lo ayuda a identificar rápidamente los valores atípicos o las instancias que contribuyen de manera significativa a las métricas observadas.

Para crear el panel, puede usar las siguientes opciones:
+ Use la consola de CloudWatch para crear el panel.
+ Utilice la consola de AWS CloudFormation para implementar el panel.
+ Descargue la infraestructura de AWS CloudFormation como código e intégrela como parte de su automatización de integración continua (CI).

Al utilizar la consola de CloudWatch para crear un panel, puede obtener una vista previa del panel antes de crearlo y que se le cobre por ello.

**nota**  
El panel creado con CloudFormation en esta solución muestra las métricas de la región en la que se implementa la solución. Asegúrese de crear la pila CloudFormation en la región en la que se publican las métricas de su GPU NVIDIA.  
Si especificó un namespace personalizado que no sea CWAgent en la configuración del agente de CloudWatch, tendrá que cambiar la plantilla CloudFormation del panel para sustituir CWAgent por el namespace personalizado que esté utilizando.

**Para crear el panel mediante la consola de CloudWatch**

1. Abra la consola de CloudWatch en **Crear panel** mediante este enlace: [https://console.aws.amazon.com/cloudwatch/home?\$1dashboards?dashboardTemplate=NvidiaGpuOnEc2&referrer=os-catalog](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=NvidiaGpuOnEc2&referrer=os-catalog). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de la GPU NVIDIA.

1. Ingrese el nombre del panel, luego seleccione **Crear panel**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **NVIDIA-GPU-Dashboard-us-east-1**.

1. Obtenga una vista previa del panel y seleccione **Guardar** para crearlo.

**Para crear el panel de control mediante CloudFormation**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [ https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NVIDIA\$1GPU\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NVIDIA_GPU_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json).

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de la GPU NVIDIA.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **NVIDIA-GPU-DashboardStack**.

1. En la sección **Parámetros**, especifique el nombre del panel en el parámetro **DashboardName**.

1. Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **NVIDIA-GPU-Dashboard-us-east-1**.

1. Reconozca las capacidades de acceso para las transformaciones en **Capacidades y transformaciones**. Tenga en cuenta que CloudFormation no agrega ningún recurso de IAM.

1. Revise la configuración y, a continuación, seleccione **Crear pila**.

1. Cuando el estado de la pila sea **CREATE\$1COMPLETE**, elija la pestaña **Recursos** situada debajo de la pila creada y, a continuación, elija el enlace situado en **ID físico** para ir al panel. También puede acceder al panel en la consola de CloudWatch seleccionando **Paneles** en el panel de navegación izquierdo de la consola y buscando el nombre del panel en **Paneles personalizados**.

Si desea editar el archivo de plantilla para personalizarlo para cualquier propósito, puede usar la opción **Cargar un archivo de plantilla** en **Crear asistente de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar este enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NVIDIA\$1GPU\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NVIDIA_GPU_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json).

### Introducción al panel de GPU NVIDIA
<a name="Solution-NVIDIA-GPU-Dashboard-GetStarted"></a>

Estas son algunas tareas que puede probar con el nuevo panel de GPU NVIDIA. Estas tareas permiten comprobar que el panel funciona correctamente y le proporcionan experiencia práctica al usarlo para supervisar sus GPU NVIDIA. A medida que las vaya probando, se familiarizará con la navegación por el panel y la interpretación de las métricas visualizadas.

**Revisar el uso de la GPU**

En la sección **Uso**, busque los widgets **Uso de GPU** y **Uso de memoria**. Estos muestran el porcentaje de tiempo que la GPU se utiliza activamente para realizar cálculos y el porcentaje de memoria global que se lee o escribe, respectivamente. Un uso elevado podría indicar posibles cuellos de botella de rendimiento o la necesidad de recursos adicionales de la GPU.

**Analizar el uso de memoria de la GPU**

En la sección **Memoria**, busque los widgets **Memoria total**, **Memoria usada** y **Memoria libre**. Estos proporcionan información sobre la capacidad total de memoria de las GPU y la cantidad de memoria que se consume o está disponible actualmente. La presión de la memoria puede provocar problemas de rendimiento o errores por falta de memoria, por lo que es importante supervisar estas métricas y garantizar que haya suficiente memoria disponible para sus cargas de trabajo.

**Supervisar la temperatura y el consumo de energía**

En la sección **Temperatura/energía**, busque los widgets **Temperatura de GPU** y **Consumo de energía**. Estas métricas son esenciales para garantizar que las GPU funcionen dentro de los límites térmicos y de potencia seguros.

**Identificar el rendimiento del codificador**

En la sección **Codificador**, busque los widgets **Recuento de sesiones del codificador**, **FPS promedio** y **Latencia promedio**. Estas métricas son pertinentes si ejecuta cargas de trabajo de codificación de video en sus GPU. Supervise estas métricas para asegurarse de que sus codificadores funcionan de manera óptima e identifique cualquier posible cuello de botella o problema de rendimiento.

**Compruebe el estado del enlace PCIe**

En la sección **PCIe**, busque los widgets **Generación de enlace PCIe** y **Ancho de enlace PCIe**. Estas métricas proporcionan información sobre el enlace PCIe que conecta la GPU al sistema host. Asegúrese de que el enlace funcione con la generación y el ancho esperados para evitar posibles limitaciones de rendimiento debido a los cuellos de botella del PCIe.

**Revisar los relojes de la GPU**

En la sección **Reloj**, busque los widgets **Reloj gráfico**, **Reloj SM**, **Reloj de memoria** y **Reloj de video**. Estas métricas muestran las frecuencias de funcionamiento actuales de varios componentes de la GPU. La supervisión de estos relojes puede ayudar a identificar posibles problemas relacionados con la escala del reloj de la GPU o la limitación de la frecuencia, que podrían afectar el rendimiento.

# Solución de CloudWatch: carga de trabajo de Kafka en Amazon EC2
<a name="Solution-Kafka-On-EC2"></a>

Esta solución lo ayuda a configurar la recopilación de métricas lista para usar mediante agentes de CloudWatch para las cargas de trabajo de Kafka (intermediarios, productores y consumidores) que se ejecutan en instancias de EC2. Además, lo ayuda a configurar un panel de CloudWatch preconfigurado. Para obtener información general sobre todas las soluciones de observabilidad de CloudWatch, consulte [Soluciones de observabilidad de CloudWatch](Monitoring-Solutions.md).

**Topics**
+ [Requisitos](#Solution-Kafka-On-EC2-Requirements)
+ [Ventajas](#Solution-Kafka-On-EC2-Benefits)
+ [Costos](#Solution-Kafka-On-EC2-Costs)
+ [Configuración del agente de CloudWatch para esta solución](#Solution-Kafka-CloudWatch-Agent)
+ [Implementar el agente para su solución](#Solution-Kafka-Agent-Deploy)
+ [Crear el panel de soluciones de Kafka](#Solution-Kafka-Dashboard)
+ [Configure el agente para varios roles de Kafka en la misma instancia.](#Kafka-Multiple-Roles)

## Requisitos
<a name="Solution-Kafka-On-EC2-Requirements"></a>

Esta solución es adecuada para las siguientes condiciones:
+ Carga de trabajo: Kafka v0.8.2.x y versiones posteriores
+ Recursos informáticos: Amazon EC2
+ Compatible con hasta 500 instancias de EC2 en todas las cargas de trabajo de Kafka en una determinada Región de AWS
+ Versión más reciente del agente de CloudWatch
+ SSM Agent instalado en la instancia de EC2
**nota**  
AWS Systems Manager (SSM Agent) está preinstalado en algunas [Imágenes de máquina de Amazon (AMI)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) proporcionadas por AWS y terceros de confianza. Si el agente no está instalado, puede instalarlo manualmente mediante el procedimiento correspondiente al tipo de sistema operativo.  
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html)
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html)
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Windows Server](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html)

## Ventajas
<a name="Solution-Kafka-On-EC2-Benefits"></a>

La solución ofrece supervisión de servidores Kafka, lo que proporciona información valiosa para los siguientes casos de uso:
+ Supervise el estado del clúster de Kafka mediante métricas de replicación y sincronización.
+ Realice un seguimiento del rendimiento de los intermediarios mediante los errores y las latencias de las solicitudes, junto con el tráfico de la red.
+ Supervise los errores, las latencias y los retrasos entre los productores y los consumidores.
+ Analice el rendimiento subyacente de la JVM para los clústeres de Kafka.
+ Cambie entre varios clústeres, productores y consumidores de Kafka configurados mediante la solución en la misma cuenta.

A continuación se detallan las principales ventajas de la solución:
+ Automatiza la recopilación de métricas para Kafka y la JVM subyacente mediante la configuración del agente de CloudWatch, lo que elimina la instrumentación manual.
+ Proporciona un panel de CloudWatch consolidado y preconfigurado para las métricas de Kafka y JVM. El panel administrará automáticamente las métricas de las nuevas instancias de EC2 de Kafka configuradas con la solución, incluso si esas métricas no existían cuando se creó el panel por primera vez. También permite agrupar las métricas en aplicaciones lógicas para facilitar el enfoque y la administración.

La siguiente imagen muestra un ejemplo del panel para esta solución:

![\[Kafka clúster dashboard showing metrics for partitions, producer/consumer performance, and broker status.\]](http://docs.aws.amazon.com/es_es/AmazonCloudWatch/latest/monitoring/images/KafkaDashboard.png)


## Costos
<a name="Solution-Kafka-On-EC2-Costs"></a>

Esta solución crea y utiliza recursos en su espacio de trabajo. Se cobrará por el uso estándar, que incluye lo siguiente:
+ Las métricas recopiladas por el agente de CloudWatch se cobran como métricas personalizadas. La cantidad de métricas que utiliza esta solución depende de la cantidad de hosts de EC2.
  + Cada host intermediario configurado para la solución publica 33 métricas más una métrica (`disk_used_percent`), cuyo recuento de métricas para cada host de EC2 depende del número de rutas de disco para ese host.
  + Cada host productor configurado para la solución publica tres métricas con la dimensión `topic` y tres métricas sin la dimensión `topic`. En el caso de las métricas con la dimensión `topic`, cada tema cuenta como una métrica independiente.
  + Cada host consumidor configurado para la solución publica dos métricas con dimensiones `topic` y tres métricas sin dimensiones `topic`. En el caso de las métricas con dimensiones de temas, cada tema cuenta como una métrica independiente.
+ Un panel personalizado.
+ Operaciones de API solicitadas por el agente de CloudWatch para publicar las métricas. Con la configuración predeterminada de esta solución, el agente de CloudWatch llama a **PutMetricData** una vez por minuto para cada host de EC2. Esto significa que la API **PutMetricData** se llamará `30*24*60=43,200` en un mes de 30 días para cada host de EC2.

Para obtener más información sobre los precios de CloudWatch, consulte [Precios de Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

La calculadora de precios puede ayudarlo a estimar los costos mensuales aproximados del uso de esta solución. 

**Para usar la calculadora de precios para estimar los costos mensuales de la solución**

1. Abra la [calculadora de precios de Amazon CloudWatch](https://calculator.aws/#/createCalculator/CloudWatch).

1. En la sección **Métricas**, en **Número de métricas**, ingrese **broker\$1metrics\$1count \$1 producer\$1metrics\$1count \$1 consumer\$1metrics\$1count**. Calcúlelas de la siguiente manera:
   + `broker_metrics_count` = (33 \$1 número promedio de rutas de disco por host de EC2) \$1 number\$1of\$1ec2\$1broker\$1hosts 
   + `producer_metrics_count` = (3 \$1 average\$1number\$1of\$1topics\$1per\$1producer\$1host \$1 3) \$1 number\$1of\$1ec2\$1broker\$1hosts 
   + `consumer_metrics_count` = (2 \$1 average\$1number\$1of\$1topics\$1per\$1consumer\$1host \$1 3) \$1 number\$1of\$1ec2\$1consumer\$1hosts 

1. En la sección **API**, en **Número de solicitudes de API**, ingrese **43200 \$1 number of EC2 instances configured for this solution**.

   De forma predeterminada, el agente CloudWatch realiza una operación **PutMetricData** por minuto para cada host de EC2.

1. En la sección **Paneles y alarmas**, en **Número de paneles**, escriba **1**.

1. Puede ver sus costos mensuales estimados en la parte inferior de la calculadora de precios.

## Configuración del agente de CloudWatch para esta solución
<a name="Solution-Kafka-CloudWatch-Agent"></a>

El agente de CloudWatch es un software que se ejecuta de forma continua y autónoma en sus servidores y en entornos contenerizados. Recopila métricas, registros y trazas de su infraestructura y aplicaciones y los envía a CloudWatch y X-Ray.

Para obtener más información sobre el agente de CloudWatch, consulte [Recopile las métricas, registros y seguimientos con el agente de CloudWatch](Install-CloudWatch-Agent.md).

La configuración del agente de esta solución recopila las métricas fundamentales de Kafka, JVM y EC2. El agente de CloudWatch se puede configurar para recopilar más métricas de Kafka y JVM que las que muestra el panel de forma predeterminada. Para ver una lista de todas las métricas de Kafka que puede recopilar, consulte [Recopilación de métricas de Kafka](CloudWatch-Agent-JMX-metrics.md#CloudWatch-Agent-Kafka-metrics). Para obtener una lista de todas las métricas de JVM que puede recopilar, consulte [Recopilación de métricas de JVM](CloudWatch-Agent-JMX-metrics.md#CloudWatch-Agent-JVM-metrics). Para ver una lista de métricas de EC2, consulte [Métricas que el agente de CloudWatch recopila en instancias de Linux y de macOS](metrics-collected-by-CloudWatch-agent.md#linux-metrics-enabled-by-CloudWatch-agent).

**Exponer los puertos JMX para las funciones de intermediario, productor y consumidor de Kafka**

El agente de CloudWatch se basa en JMX para recopilar las métricas relacionadas con los intermediarios, productores y consumidores de Kafka. Para que esto sea posible, debe exponer el puerto de JMX en sus servidores y aplicaciones.

En el caso de los intermediarios de Kafka, debe utilizar la variable de entorno `JMX_PORT` para configurar el puerto. Deberá reiniciar los intermediarios después de configurar esta variable de entorno. Revise los scripts de inicio y los archivos de configuración de su aplicación para encontrar el mejor lugar para agregar estos argumentos.

Por ejemplo, para los sistemas Linux y macOS, puede usar el siguiente comando para configurar el puerto JMX. Asegúrese de especificar un número de puerto no utilizado.

```
export JMX_PORT=port-number
```

En el caso de los productores y consumidores de Kafka, las instrucciones para exponer el puerto de JMX dependen del tipo de carga de trabajo que utilice para su aplicación de JVM de productores o consumidores. Para obtener estas instrucciones, consulte la documentación de su aplicación.

En general, para habilitar un puerto de JMX para la supervisión y la administración, debe configurar las siguientes propiedades del sistema para su aplicación de JVM. En el siguiente ejemplo se configura la JMX no autenticada. Si sus políticas o requisitos de seguridad requieren que habilite JMX con autenticación por contraseña o SSL para el acceso remoto, consulte la [documentación de JMX](https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html) para configurar la propiedad requerida.

```
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=port-number
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false
```

Para verificar el puerto JMX, ejecute `ps aux | grep jmxremote.port`. Los resultados deberían mostrar que el puerto JMX se estableció en los procesos de la JVM.

**Configuración del agente de CloudWatch para esta solución**

Las métricas que el agente recopiló se definen en la configuración del agente. La solución proporciona configuraciones de agente para recopilar las métricas recomendadas con las dimensiones adecuadas para el panel de la solución. Cada rol de Kafka, como intermediario, productor o consumidor, tiene su propia configuración de agente que permite recopilar las métricas de Kafka y las métricas subyacentes de JVM y EC2.

Los pasos para implementar la solución se describen más adelante en [Implementar el agente para su solución](#Solution-Kafka-Agent-Deploy). La siguiente información tiene por objetivo ayudarlo a comprender cómo personalizar la configuración del agente para su entorno.

Debe personalizar algunas partes de la siguiente configuración de agente para su entorno:
+ El número de puerto de JMX es el que configuró en la sección anterior de esta documentación. El número de puerto está en la línea `endpoint` de la configuración.
+ `ClusterName`: se utiliza como una dimensión para métricas recopiladas por los intermediarios. Proporcione un nombre descriptivo que represente la agrupación de clústeres para las instancias en las que se ejecuta el intermediario de Kafka.
+ `ProcessGroupName`: se utiliza como una dimensión para métricas de JVM recopiladas por los intermediarios. Proporcione el mismo valor que indicó para `ClusterName`. Esto permite ver las métricas de JVM del mismo grupo de intermediarios de Kafka que las métricas de intermediarios del panel de soluciones.
+ `ProducerGroupName`: se utiliza como una dimensión para métricas recopiladas por los productores. Proporcione un nombre significativo que represente al grupo de instancias de productores. Para este valor, puede especificar la aplicación o el servicio del productor que desea utilizar para una vista combinada de las métricas del productor en el panel de soluciones.
+ `ConsumerGroupName`: se utiliza como una dimensión para métricas recopiladas por los consumidores. Proporcione un nombre descriptivo que represente al grupo de instancias de consumidores. No es lo mismo que el concepto de grupo de consumidores de Kafka. Se trata simplemente de una dimensión de agrupación en la que puede especificar la aplicación o el servicio de consumidor que desea utilizar para obtener una vista combinada de las métricas de consumo en el panel de la solución. 

Por ejemplo, si tiene dos clústeres de Kafka ejecutándose en la misma cuenta, uno para la aplicación `order-processing` y otro para la aplicación `inventory-management`, debe establecer las dimensiones `ClusterName` y `ProcessGroupName` en consecuencia en la configuración del agente de la instancia del intermediario.
+ Para las instancias del intermediario de clúster `order-processing`, establezca `ClusterName=order-processing` y `ProcessGroupName=order-processing`.
+ Para las instancias del intermediario de clúster `inventory-management`, establezca `ClusterName=inventory-management` y `ProcessGroupName=inventory-management`. 
+ Del mismo modo, configure `ProducerGroupName` para las instancias de productor y `ConsumerGroupName` para las instancias de consumidor en función de sus respectivas aplicaciones.

Si configura correctamente las dimensiones anteriores, el panel de la solución agrupará automáticamente las métricas en función de las dimensiones `ClusterName`, `ProducerGroupName` y `ConsumerGroupName`. El panel incluirá opciones desplegables para seleccionar y ver las métricas de clústeres y grupos específicos, lo que permitirá supervisar el rendimiento de los clústeres y grupos individuales por separado.

Asegúrese de implementar la configuración de agente correspondiente en las instancias de EC2 correctas. Cada configuración se almacenará como un parámetro independiente en Parameter Store de SSM, como se detalla más adelante en [Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager](#Solution-Kafka-Agent-Step2).

En las siguientes instrucciones se describe la situación en la que las funciones de productor, consumidor e intermediario se implementan en instancias de EC2 independientes, sin que se superpongan. Si ejecuta varias funciones de Kafka en las mismas instancias de EC2, consulte [Configure el agente para varios roles de Kafka en la misma instancia.](#Kafka-Multiple-Roles) para obtener más información.

### Configuración de agentes para agentes de intermediarios de Kafka
<a name="Solution-Kafka-Agent-Broker"></a>

Utilice la siguiente configuración de agente de CloudWatch en las instancias de EC2 en las que se implementen los agentes de intermediarios de Kafka. Sustituya *ClusterName* por el nombre del clúster que se usará para agrupar estas métricas y obtener una vista unificada. El valor que especifique para *ClusterName* se utiliza tanto como dimensión `ClusterName` como dimensión `ProcessGroupName`. Sustituya el *port-number* por el puerto JMX de su servidor Kafka. Si JMX se habilitó con autenticación por contraseña o SSL para el acceso remoto, consulte [Recopilación de las métricas de Java Management Extensions (JMX)](CloudWatch-Agent-JMX-metrics.md) para obtener información sobre cómo configurar el TLS o la autorización, según sea necesario.

Las métricas de EC2 que se muestran en esta configuración (la configuración se muestra fuera del bloque de JMX) solo funcionan para instancias de Linux y macOS. Si utiliza instancias de Windows, puede optar por omitir estas métricas en la configuración. Para obtener información sobre las métricas recopiladas en las instancias de Windows, consulte [Métricas que el agente de CloudWatch recopila en instancias de Windows Server](metrics-collected-by-CloudWatch-agent.md#windows-metrics-enabled-by-CloudWatch-agent).

```
{
  "metrics": {
    "namespace": "CWAgent",
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "localhost:port-number",
          "kafka": {
            "measurement": [
              "kafka.request.time.avg",
              "kafka.request.failed",
              "kafka.request.count",
              "kafka.purgatory.size",
              "kafka.partition.under_replicated",
              "kafka.partition.offline",
              "kafka.network.io",
              "kafka.leader.election.rate",
              "kafka.isr.operation.count"
            ]
          },
          "append_dimensions": {
            "ClusterName": "ClusterName"
          }
        },
        {
          "endpoint": "localhost:port-number",
          "jvm": {
            "measurement": [
              "jvm.classes.loaded",
              "jvm.gc.collections.count",
              "jvm.gc.collections.elapsed",
              "jvm.memory.heap.committed",
              "jvm.memory.heap.max",
              "jvm.memory.heap.used",
              "jvm.memory.nonheap.committed",
              "jvm.memory.nonheap.max",
              "jvm.memory.nonheap.used",
              "jvm.threads.count"
            ]
          },
          "append_dimensions": {
            "ProcessGroupName": "ClusterName"
          }
        }
      ],
      "disk": {
        "measurement": [
          "used_percent"
        ]
      },
      "mem": {
        "measurement": [
          "used_percent"
        ]
      },
      "swap": {
        "measurement": [
          "used_percent"
        ]
      },
      "netstat": {
        "measurement": [
          "tcp_established",
          "tcp_time_wait"
        ]
      }
    }
  }
}
```

### Configuración de agente para productores de Kafka
<a name="Solution-Kafka-Agent-Producer"></a>

Utilice la siguiente configuración de agente de CloudWatch en las instancias de Amazon EC2 en las que se implementan productores de Kafka. Sustituya *ProducerGroupName* por el nombre de la aplicación o el grupo que desee utilizar para agrupar las métricas y obtener una vista unificada. Sustituya el *port-number* por el puerto JMX de su aplicación de productor de Kafka.

 La solución no habilita las métricas de JVM para los productores de Kafka porque el panel de la solución no muestra las métricas de JVM relacionadas con la JVM para los productores. También puede personalizar la configuración del agente para que emita métricas de JVM; sin embargo, las métricas de JVM relacionadas con los productores no están visibles en el panel de soluciones.

```
{
  "metrics": {
    "namespace": "CWAgent",
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "localhost:port-number",
          "kafka-producer": {
            "measurement": [
              "kafka.producer.request-rate",
              "kafka.producer.byte-rate",
              "kafka.producer.request-latency-avg",
              "kafka.producer.response-rate",
              "kafka.producer.record-error-rate",
              "kafka.producer.record-send-rate"
            ]
          },
          "append_dimensions": {
            "ProducerGroupName": "ProducerGroupName"
          }
        }
      ]
    }
  }
}
```

### Configuración de agente para consumidores de Kafka
<a name="Solution-Kafka-Agent-Consumer"></a>

Utilice la siguiente configuración de agente de CloudWatch en las instancias de EC2 en las que se ejecuten los agentes de consumidores de Kafka. Sustituya *ConsumerGroupName* por el nombre de la aplicación o el grupo para agrupar las métricas y obtener una vista unificada. Sustituya el *port-number* por el puerto JMX de su aplicación de consumidor de Kafka.

La solución no habilita las métricas de JVM para los consumidores de Kafka porque el panel de soluciones no muestra las métricas de JVM relacionadas con la JVM para los consumidores. Además puede personalizar la configuración del agente para que también emita métricas de JVM; sin embargo, las métricas de JVM relacionadas con el consumidor no están visibles en el panel de soluciones.

```
{
  "metrics": {
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "localhost:port-number",
          "kafka-consumer": {
            "measurement": [
              "kafka.consumer.fetch-rate",
              "kafka.consumer.total.bytes-consumed-rate",
              "kafka.consumer.records-consumed-rate",
              "kafka.consumer.bytes-consumed-rate",
              "kafka.consumer.records-lag-max"
            ]
          },
          "append_dimensions": {
            "ConsumerGroupName": "ConsumerGroupName"
          }
        }
      ]
    }
  }
}
```

## Implementar el agente para su solución
<a name="Solution-Kafka-Agent-Deploy"></a>

Existen varios métodos de instalación del agente de CloudWatch, según el caso de uso. Recomendamos usar Systems Manager para esta solución. Proporciona una experiencia de consola y simplifica la administración de una flota de servidores administrados en una sola cuenta de AWS. Las instrucciones de esta sección utilizan Systems Manager y están pensadas para cuando el agente de CloudWatch no se esté ejecutando con las configuraciones existentes. Puede comprobar si el agente de CloudWatch se está ejecutando, siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running).

Si ya ejecuta el agente de CloudWatch en los hosts de EC2 en los que se implementa la carga de trabajo y administra las configuraciones del agente, puede omitir las instrucciones de esta sección y seguir el mecanismo de implementación existente para actualizar la configuración. Asegúrese de combinar la configuración del agente según el rol (intermediario, productor o consumidor) con la configuración de agente existente y, a continuación, implemente la configuración combinada. Si utiliza Systems Manager para almacenar y administrar la configuración del agente de CloudWatch, puede combinar la configuración con el valor del parámetro existente. Para obtener más información, consulte [Managing CloudWatch agent configuration files](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html).

**nota**  
El uso de Systems Manager para implementar las siguientes configuraciones de agente de CloudWatch reemplazará o sobrescribirá cualquier configuración de agente de CloudWatch existente en las instancias de EC2. Puede modificar esta configuración para adaptarla a su entorno o caso de uso únicos. Las métricas definidas en esta solución son las mínimas requeridas para el panel recomendado. 

El proceso de implementación consta de los siguientes pasos:
+ Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios.
+ Paso 2: almacene el archivo de configuración recomendado del agente en Parameter Store de Systems Manager.
+ Paso 3: instale el agente de CloudWatch en una o más instancias de EC2 mediante una pila de CloudFormation.
+ Paso 4: verifique que la configuración del agente sea correcta.

Debe repetir estos pasos en función de si su intermediario, productor y consumidor están implementados en la misma instancia de EC2 o en instancias diferentes. Por ejemplo, si el intermediario, el productor y los consumidores de Kafka se van a implementar en instancias independientes sin que se superpongan, debe repetir estos pasos tres veces con las configuraciones de agente adecuadas para las instancias de EC2 del intermediario, productor y consumidor.

### Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios
<a name="Solution-Kafka-Agent-Step1"></a>

Debe conceder permiso a Systems Manager para instalar y configurar el agente de CloudWatch. También debe conceder permiso al agente de CloudWatch para publicar la telemetría de su instancia de EC2 en CloudWatch. Asegúrese de que el rol de IAM adjuntado a la instancia tenga adjuntas las políticas de IAM **CloudWatchAgentServerPolicy** y **AmazonSSMManagedInstanceCore**.
+ Después de crear el rol, adjunte el rol a sus instancias de EC2. Siga los pasos que se indican en [Lanzar una instancia con un rol de IAM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role) para adjuntar un rol al lanzar una nueva instancia de EC2. Para adjuntar un rol a una instancia de EC2 existente, siga los pasos que se indican en [Adjuntar un rol de IAM a una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role).

### Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager
<a name="Solution-Kafka-Agent-Step2"></a>

Parameter Store simplifica la instalación del agente de CloudWatch en una instancia de EC2 al almacenar y administrar los parámetros de configuración de forma segura, lo que elimina la necesidad de valores de codificación rígida. Esto garantiza un proceso de implementación más seguro y flexible, lo que permite una administración centralizada y facilita las actualizaciones de las configuraciones en varias instancias.

Siga los pasos a continuación para almacenar el archivo de configuración del agente de CloudWatch recomendado como parámetro en Parameter Store.

**Para crear el archivo de configuración del agente de CloudWatch como parámetro**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Desde el panel de navegación, elija **Administración de aplicaciones**, **Parameter Store**.

1. Siga estos pasos para crear un nuevo parámetro para la configuración.

   1. Elija **Create parameter**.

   1. Proporcione un nombre para el parámetro que almacenará la configuración del agente de CloudWatch, por ejemplo, **AmazonCloudWatch-Kafka-Producer-Configuration** para productores, **AmazonCloudWatch-Kafka-Consumer-Configuration** para consumidores o **AmazonCloudWatch-Kafka-Broker-Configuration** para intermediarios. Si tiene varias funciones de Kafka en un solo EC2, asigne un nombre a las funciones en consecuencia para facilitar la identificación. Este valor se utilizará más adelante para distribuir esta configuración al agente que se ejecuta en la instancia de EC2.

   1. En **Capa de parámetros**, elija **Estándar**. 

   1. En **Type**, elija **String**.

   1. En **⁣Tipo de datos**, elija **texto**.

   1. En el cuadro **Valor**, pegue el texto completo de la configuración del agente de CloudWatch. Asegúrese de seleccionar el bloque JSON para el rol de Kafka del que esta instancia es host. Consulte la configuración proporcionada en [Configuración de agentes para agentes de intermediarios de Kafka](#Solution-Kafka-Agent-Broker), [Configuración de agente para productores de Kafka](#Solution-Kafka-Agent-Producer) y [Configuración de agente para consumidores de Kafka](#Solution-Kafka-Agent-Consumer) al almacenar la configuración para el intermediario, el productor y el consumidor, respectivamente. Si ejecuta varios roles de Kafka en la misma instancia de EC2, asegúrese de combinar la configuración si es necesario, tal como se describe en [Configure el agente para varios roles de Kafka en la misma instancia.](#Kafka-Multiple-Roles) en la misma instancia.

   1. Elija **Create parameter**. 

### Paso 3: instale el agente de CloudWatch y aplique la configuración mediante una plantilla de CloudFormation
<a name="Solution-Kafka-Agent-Step3"></a>

Puede usar AWS CloudFormation para instalar el agente y configurarlo para que use la configuración del agente de CloudWatch que creó en los pasos anteriores.

**Para instalar y configurar el agente de CloudWatch para esta solución**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de Kafka.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **CWAgentInstallationStack**.

1. En la sección **Parámetros**, especifique los siguientes parámetros:

   1. En **CloudwatchAgentConfigSSM**, ingrese el nombre del parámetro Systems Manager para la configuración de agente que creó anteriormente, por ejemplo, **AmazonCloudWatch-Kafka-Broker-Configuration** para intermediarios, **AmazonCloudWatch-Kafka-Producer-Configuration** para productores y **AmazonCloudWatch-Kafka-Consumer-Configuration** para consumidores.

   1. Para seleccionar las instancias de destino, tiene dos opciones.

      1. En el caso de **InstanceIds**, especifique una lista delimitada por comas de una lista de ID de instancia en los que desee instalar el agente de CloudWatch con esta configuración. Puede enumerar una sola instancia o varias instancias.

      1. Si realiza una implementación a escala, puede especificar la **TagKey** y el **TagValue** correspondiente para dirigirse a todas las instancias de EC2 con esta etiqueta y valor. Si especifica una **TagKey**, debe especificar el **TagValue** correspondiente. (En el caso de un grupo de escalado automático, especifique **aws:autoscaling:groupName** para **TagKey** y especifique el nombre del grupo de escalado automático para que **TagValue** se implemente en todas las instancias del grupo de escalado automático).

         Si especifica tanto los parámetros **InstanceIds** como **TagKeys**, los **InstanceIds** tendrán prioridad y las etiquetas se ignorarán.

1. Revise la configuración y, a continuación, seleccione **Crear pila**. 

Si quiere editar primero el archivo de plantilla para personalizarlo, seleccione la opción **Cargar un archivo de plantilla** en el **Asistente de creación de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar el siguiente enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json). 

**nota**  
Una vez completado este paso, este parámetro de Systems Manager se asociará a los agentes de CloudWatch que se ejecuten en las instancias de destino. Esto significa que:  
Si se elimina el parámetro de Systems Manager, el agente se detendrá.
Si se edita el parámetro de Systems Manager, los cambios de configuración se aplicarán automáticamente al agente con la frecuencia programada, que es de 30 días por defecto.
Si desea aplicar inmediatamente los cambios a este parámetro de Systems Manager, debe volver a ejecutar este paso. Para obtener más información sobre asociaciones, consulte [Trabajo con asociaciones en Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html).

### Paso 4: verifique que la configuración del agente sea correcta
<a name="Solution-Kafka-Agent-Step4"></a>

Puede comprobar si el agente de CloudWatch está instalado siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running). Si el agente de CloudWatch no está instalado ni en ejecución, asegúrese de haber configurado todo correctamente.
+ Asegúrese de haber adjuntado un rol con los permisos correctos a la instancia EC2, tal y como se describe en [Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios](Solution-Tomcat-On-EC2.md#Solution-Tomcat-Agent-Step1).
+ Asegúrese de haber configurado correctamente el JSON para el parámetro de Systems Manager. Siga los pasos de [Solución de problemas de la instalación del agente de CloudWatch con CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md#CloudWatch-Agent-CloudFormation-troubleshooting).

Si todo está configurado correctamente, debería ver las métricas de Kafka publicadas en CloudWatch. Puede comprobar la consola de CloudWatch para verificar que se estén publicando.

**Para comprobar que las métricas de Kafka se publican en CloudWatch**

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

1. Elija **Métricas**, **Todas las métricas**.

1. Asegúrese de haber seleccionado la región en la que implementó la solución y elija **Namespaces personalizados**, **CWAgent**.

1. Busque las métricas que se mencionan en la sección de configuración de agente de este documento, por ejemplo, `kafka.partition.offline` para intermediarios, `kafka.consumer.fetch.rate` para consumidores o `kafka.producer.request-rate` para productores. Si ve los resultados de estas métricas, significa que las métricas se están publicando en CloudWatch.

## Crear el panel de soluciones de Kafka
<a name="Solution-Kafka-Dashboard"></a>

Este panel muestra las métricas recién emitidas tanto para Kafka como para la JVM subyacente. Este panel proporciona una visión de los principales colaboradores sobre el estado de su carga de trabajo de Kafka, tanto en productores como en intermediarios y consumidores. La vista de los principales colaboradores muestra el widget de los 10 principales por métrica. Esto permite identificar los valores atípicos de una sola vez. 

El panel de soluciones no muestra las métricas de EC2. Para ver las métricas de EC2, tendrá que usar el panel automático de EC2 para ver las métricas ofrecidas de EC2 y usar el panel de la consola de EC2 para ver las métricas de EC2 recopiladas por el agente de CloudWatch. Para obtener más información sobre los paneles automáticos de los servicios de AWS, consulte [Visualización de un panel de CloudWatch para un solo servicio de AWS](CloudWatch_Automatic_Dashboards_Focus_Service.md).

Para crear el panel, puede usar las siguientes opciones:
+ Use la consola de CloudWatch para crear el panel.
+ Utilice la consola de AWS CloudFormation para implementar el panel.
+ Descargue la infraestructura de AWS CloudFormation como código e intégrela como parte de su automatización de integración continua (CI).

Al utilizar la consola de CloudWatch para crear un panel, puede obtener una vista previa del panel antes de crearlo y que se le cobre por ello.

**nota**  
El panel creado con CloudFormation en esta solución muestra las métricas de la región en la que se implementa la solución. Asegúrese de crear la pila CloudFormation en la región en la que se publican las métricas de JVM y Kafka.  
Si especificó un namespace personalizado que no sea `CWAgent` en la configuración del agente de CloudWatch, tendrá que cambiar la plantilla CloudFormation del panel para sustituir `CWAgent` por el namespace personalizado que esté utilizando.

**Para crear el panel mediante la consola de CloudWatch**
**nota**  
Actualmente, los paneles de soluciones muestran las métricas relacionadas con la recopilación de elementos no utilizados solo para el Recopilador de elementos no utilizados G1, que es el recopilador predeterminado para las versiones más recientes de Java. Si utiliza un algoritmo de recopilación de elementos no utilizados distinto, los widgets relacionados con la recopilación de elementos no utilizados están vacíos. Sin embargo, puede personalizar estos widgets si se cambia la plantilla de CloudFormation del panel y se aplica el tipo de recopilación de elementos no utilizados adecuado a la dimensión de nombre de las métricas relacionadas con la recopilación de elementos no utilizados. Por ejemplo, si utiliza la recolección de elementos no utilizados en paralelo, cambie **name=\$1"G1 Young Generation\$1"** a **name=\$1"Parallel GC\$1"** de la métrica de recuento de recopilación de elementos no utilizados `jvm.gc.collections.count`.

1. Abra la consola de CloudWatch en **Crear panel** mediante este enlace:[ https://console.aws.amazon.com/cloudwatch/home?\$1dashboards?dashboardTemplate=ApacheKafkaOnEc2&referrer=os-catalog](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=ApacheKafkaOnEc2&referrer=os-catalog). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de Kafka.

1. Ingrese el nombre del panel, luego seleccione **Crear panel**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **KafkaDashboard-us-east-1**.

1. Obtenga una vista previa del panel y seleccione **Guardar** para crearlo.

**Para crear el panel de control mediante CloudFormation**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Kafka\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Kafka_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de Kafka.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **KafkaDashboardStack**.

1. En la sección **Parámetros**, especifique el nombre del panel en el parámetro **DashboardName**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **KafkaDashboard-us-east-1**.

1. Reconozca las capacidades de acceso para las transformaciones en **Capacidades y transformaciones**. Tenga en cuenta que CloudFormation no agrega ningún recurso de IAM.

1. Revise la configuración y, a continuación, seleccione **Crear pila**. 

1. Cuando el estado de la pila sea **CREATE\$1COMPLETE**, elija la pestaña **Recursos** situada debajo de la pila creada y, a continuación, elija el enlace situado en **ID físico** para ir al panel. También puede acceder al panel en la consola de CloudWatch seleccionando **Paneles** en el panel de navegación izquierdo de la consola y buscando el nombre del panel en **Paneles personalizados**.

Si desea editar el archivo de plantilla para personalizarlo para cualquier propósito, puede usar la opción **Cargar un archivo de plantilla** en **Crear asistente de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar este enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Kafka\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Kafka_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json). 

**nota**  
Actualmente, los paneles de soluciones muestran las métricas relacionadas con la recopilación de elementos no utilizados solo para el Recopilador de elementos no utilizados G1, que es el recopilador predeterminado para las versiones más recientes de Java. Si utiliza un algoritmo de recopilación de elementos no utilizados distinto, los widgets relacionados con la recopilación de elementos no utilizados están vacíos. Sin embargo, puede personalizar estos widgets si se cambia la plantilla de CloudFormation del panel y se aplica el tipo de recopilación de elementos no utilizados adecuado a la dimensión de nombre de las métricas relacionadas con la recopilación de elementos no utilizados. Por ejemplo, si utiliza la recolección de elementos no utilizados en paralelo, cambie **name=\$1"G1 Young Generation\$1"** a **name=\$1"Parallel GC\$1"** de la métrica de recuento de recopilación de elementos no utilizados `jvm.gc.collections.count`. 

### Introducción al panel de Kafka
<a name="Solution-Kafka-Dashboard-GetStarted"></a>

Estas son algunas tareas que puede probar con el nuevo panel de Kafka. Estas tareas permiten validar que el panel funciona correctamente y le proporcionan experiencia práctica en su uso para supervisar un clúster de Kafka. A medida que las vaya probando, se familiarizará con la navegación por el panel y la interpretación de las métricas visualizadas.

**Cómo utilizar listas desplegables**

El panel incluye listas desplegables en la parte superior que puede utilizar para filtrar y seleccionar los grupos específicos de clúster de Kafka, productores y consumidores que desee supervisar.
+ Para mostrar las métricas de un clúster de Kafka específico, seleccione el nombre de ese clúster en la lista desplegable **Clúster de Kafka**. 
+ Para mostrar las métricas de un grupo de productores de Kafka específico, seleccione el nombre de ese grupo de productores en la lista desplegable **Productor de Kafka**. 
+ Para mostrar las métricas de un grupo de consumidores de Kafka específico, seleccione el nombre de ese grupo de consumidores en la lista desplegable ** Grupo de consumidores de Kafka**. 

**Comprobar el estado del clúster**

En la sección **Descripción general del clúster**, busque los widgets **Particiones incluidas en réplicas replicadas** y **Réplicas sincronizadas**. Lo ideal es que sean cero o un número pequeño. Un valor grande para cualquiera de estas métricas podría indicar problemas con el clúster de Kafka que deben investigarse. 

**Investigar el rendimiento del intermediario**

En la sección **Intermediarios**, busque los widgets **Solicitudes de recuperación fallidas** y **Solicitudes de productor fallidas**. Estos muestran el número de solicitudes fallidas de operaciones de recuperación y producción, respectivamente. Las altas tasas de error podrían indicar problemas con los intermediarios o con la conectividad de la red que requieren una investigación más profunda.

**Supervisar el rendimiento del productor**

En la sección **Descripción general del grupo de productores**, busque los widgets **Tasa media de solicitudes**, **Latencia media de solicitudes** y **Tasa media de envío/error de registros**. Estos darán una visión general del rendimiento de los productores del grupo seleccionado. También puede profundizar para ver las métricas de productores y temas específicos en la sección **Productores**.

**Supervisar el desfase del consumidor**

En la sección **Descripción general de los grupos de consumidores**, busque el widget **Desfase del consumidor**. Esto muestra el retraso de los consumidores a la hora de procesar los mensajes procedentes de las últimas compensaciones en las particiones a las que están suscritos. Lo ideal sería que el retraso con respecto al consumo fuera bajo o nulo. Un retraso elevado en relación con los consumidores podría indicar que los consumidores son incapaces de mantener el ritmo de producción de datos, lo que podría provocar una posible pérdida de datos o retrasos en el procesamiento. También puede profundizar para ver las métricas de consumidores y temas específicos en la sección **Consumidores**.

## Configure el agente para varios roles de Kafka en la misma instancia.
<a name="Kafka-Multiple-Roles"></a>

Las configuraciones individuales de las funciones de Kafka que se enumeran en [Configuración del agente de CloudWatch para esta solución](#Solution-Kafka-CloudWatch-Agent) se aplican solo cuando las funciones de productor, consumidor e intermediario se implementan en instancias de EC2 independientes, sin que se superpongan. Si ejecuta varios roles de Kafka en las mismas instancias de Amazon EC2, tiene dos opciones:
+ Cree un archivo de configuración de agente único que enumere y configure todas las métricas de todos los roles de Kafka implementados en esa instancia. Si va a utilizar Systems Manager para administrar la configuración del agente, esta es la mejor opción.

  Si elige esta opción y las múltiples funciones de Kafka forman parte del mismo proceso de JVM, debe especificar el mismo punto de conexión para cada función de Kafka en la configuración del agente. Si las múltiples funciones de Kafka forman parte de diferentes procesos de JVM, el punto de conexión de cada función puede ser diferente en función del puerto JMX configurado para ese proceso.
+ Cree archivos de configuración de agente independientes para cada función de Kafka y configure el agente para que aplique ambos archivos de configuración. Para obtener instrucciones sobre cómo aplicar varios archivos de configuración, consulte [Creación de varios archivos de configuración del agente de CloudWatch](create-cloudwatch-agent-configuration-file.md#CloudWatch-Agent-multiple-config-files).

El siguiente ejemplo muestra una configuración de agente de CloudWatch en la que las funciones de productor y consumidor se ejecutan en una instancia como parte del mismo proceso de JVM. En este caso, el número de puerto debe ser el mismo en las partes de productor y consumidor de la configuración que se indica a continuación. Si, por el contrario, las dos funciones se ejecutaran como parte de procesos de JVM diferentes, podría especificar números de puerto diferentes para cada una de ellas, de acuerdo con el puerto JMX de cada proceso de JVM individual.

```
{
  "metrics": {
    "namespace": "CWAgent",
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "localhost:port-number",
          "kafka-producer": {
            "measurement": [
              "kafka.producer.request-rate",
              "kafka.producer.byte-rate",
              "kafka.producer.request-latency-avg",
              "kafka.producer.response-rate",
              "kafka.producer.record-error-rate",
              "kafka.producer.record-send-rate"
            ]
          },
          "append_dimensions": {
            "ProducerGroupName": "ProducerGroupName"
          }
        },
        {
          "endpoint": "localhost:port-number",
          "kafka-consumer": {
            "measurement": [
              "kafka.consumer.fetch-rate",
              "kafka.consumer.total.bytes-consumed-rate",
              "kafka.consumer.records-consumed-rate",
              "kafka.consumer.bytes-consumed-rate",
              "kafka.consumer.records-lag-max"
            ]
          },
          "append_dimensions": {
            "ConsumerGroupName": "ConsumerGroupName"
          }
        }
      ]
    }
  }
}
```

# Solución de CloudWatch: carga de trabajo de Tomcat en Amazon EC2
<a name="Solution-Tomcat-On-EC2"></a>

Esta solución lo ayuda a configurar la recopilación de métricas lista para usar mediante agentes de CloudWatch para el servidor Tomcat que se ejecuta en instancias de EC2. Además, lo ayuda a configurar un panel de CloudWatch preconfigurado. Para obtener información general sobre todas las soluciones de observabilidad de CloudWatch, consulte [Soluciones de observabilidad de CloudWatch](Monitoring-Solutions.md).

**Topics**
+ [Requisitos](#Solution-Tomcat-On-EC2-Requirements)
+ [Ventajas](#Solution-Tomcat-On-EC2-Benefits)
+ [Costos](#Solution-Tomcat-On-EC2-Costs)
+ [Configuración del agente de CloudWatch para esta solución](#Solution-Tomcat-CloudWatch-Agent)
+ [Implementar el agente para su solución](#Solution-Tomcat-Agent-Deploy)
+ [Crear el panel de soluciones de Tomcat](#Solution-Tomcat-Dashboard)

## Requisitos
<a name="Solution-Tomcat-On-EC2-Requirements"></a>

Esta solución es adecuada para las siguientes condiciones:
+ Versiones compatibles: versiones de Tomcat 9, 10.1 y 11 (beta)
+ Recursos informáticos: Amazon EC2
+ Compatible con hasta 500 instancias de EC2 en todas las cargas de trabajo de Tomcat de una determinada Región de AWS
+ Versión más reciente del agente de CloudWatch
+ SSM Agent instalado en la instancia de EC2
**nota**  
AWS Systems Manager (SSM Agent) está preinstalado en algunas [Imágenes de máquina de Amazon (AMI)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) proporcionadas por AWS y terceros de confianza. Si el agente no está instalado, puede instalarlo manualmente mediante el procedimiento correspondiente al tipo de sistema operativo.  
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html)
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html)
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Windows Server](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html)

## Ventajas
<a name="Solution-Tomcat-On-EC2-Benefits"></a>

La solución ofrece supervisión de servidores Tomcat, lo que proporciona información valiosa para los siguientes casos de uso:
+ Detecte errores y problemas de rendimiento del servidor Tomcat.
+ Supervise el tráfico de la red para detectar problemas de transferencia de datos.
+ Realice un seguimiento del uso de subprocesos y de las sesiones de usuarios activas.
+ Analice el rendimiento subyacente de la JVM para el servidor Tomcat.

A continuación se detallan las principales ventajas de la solución:
+ Automatiza la recopilación de métricas para Apache Tomcat y la JVM subyacente mediante la configuración del agente de CloudWatch, lo que elimina la instrumentación manual.
+ Proporciona un panel de CloudWatch consolidado y preconfigurado para las métricas de Apache Tomcat y JVM. El panel administrará automáticamente las métricas de las nuevas instancias de EC2 de Tomcat configuradas con la solución, incluso si esas métricas no existían cuando creó el panel por primera vez. También permite agrupar las métricas en aplicaciones lógicas para facilitar el enfoque y la administración.

La siguiente imagen muestra un ejemplo del panel para esta solución:

![\[Ejemplo de panel para la solución Apache Tomcat.\]](http://docs.aws.amazon.com/es_es/AmazonCloudWatch/latest/monitoring/images/TomcatDashboard.png)


## Costos
<a name="Solution-Tomcat-On-EC2-Costs"></a>

Esta solución crea y utiliza recursos en su espacio de trabajo. Se cobrará por el uso estándar, que incluye lo siguiente:
+ Las métricas recopiladas por el agente de CloudWatch se cobran como métricas personalizadas. La cantidad de métricas que utiliza esta solución depende de la cantidad de hosts de EC2.
  + Cada host de Tomcat configurado para la solución publica un total de 27 métricas más una métrica (`disk_used_percent`), cuyo recuento depende del número de rutas de disco de ese host.
+ Un panel personalizado.
+ Operaciones de API solicitadas por el agente de CloudWatch para publicar las métricas. Con la configuración predeterminada de esta solución, el agente de CloudWatch llama a **PutMetricData** una vez por minuto. Esto significa que la API **PutMetricData** se llamará `30*24*60=43,200` en un mes de 30 días para cada host de EC2.

Para obtener más información sobre los precios de CloudWatch, consulte [Precios de Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

La calculadora de precios puede ayudarlo a estimar los costos mensuales aproximados del uso de esta solución. 

**Para usar la calculadora de precios para estimar los costos mensuales de la solución**

1. Abra la [calculadora de precios de Amazon CloudWatch](https://calculator.aws/#/createCalculator/CloudWatch).

1. En la sección **Métricas**, en **Número de métricas**, ingrese **(27 \$1 average number of disk paths per EC2 host) \$1 number of EC2 instances configured for this solution**.

1. En la sección **API**, en **Número de solicitudes de API**, ingrese **43200 \$1 number of EC2 instances configured for this solution**.

   De forma predeterminada, el agente CloudWatch realiza una operación **PutMetricData** por minuto para cada host de EC2.

1. En la sección **Paneles y alarmas**, en **Número de paneles**, escriba **1**.

1. Puede ver sus costos mensuales estimados en la parte inferior de la calculadora de precios.

## Configuración del agente de CloudWatch para esta solución
<a name="Solution-Tomcat-CloudWatch-Agent"></a>

El agente de CloudWatch es un software que se ejecuta de forma continua y autónoma en sus servidores y en entornos contenerizados. Recopila métricas, registros y trazas de su infraestructura y aplicaciones y los envía a CloudWatch y X-Ray.

Para obtener más información sobre el agente de CloudWatch, consulte [Recopile las métricas, registros y seguimientos con el agente de CloudWatch](Install-CloudWatch-Agent.md).

La configuración del agente de esta solución recopila las métricas fundamentales de Tomcat, JVM y EC2. El agente de CloudWatch se puede configurar para recopilar más métricas de JVM de las que muestra el panel de forma predeterminada. Para ver una lista de todas las métricas de Tomcat que puede recopilar, consulte [Recopilación de métricas de Tomcat](CloudWatch-Agent-JMX-metrics.md#CloudWatch-Agent-Tomcat-metrics). Para obtener una lista de todas las métricas de JVM que puede recopilar, consulte [Recopilación de métricas de JVM](CloudWatch-Agent-JMX-metrics.md#CloudWatch-Agent-JVM-metrics). Para obtener una lista de las métricas de Amazon EC2, consulte [Métricas que el agente de CloudWatch recopila en instancias de Linux y de macOS](metrics-collected-by-CloudWatch-agent.md#linux-metrics-enabled-by-CloudWatch-agent).

**Exponer los puertos JMX para el servidor de Tomcat**

El agente de CloudWatch se basa en JMX para recopilar las métricas relacionadas con el proceso de JVM. Para que esto sea posible, debe exponer el puerto de JMX de sus servidores. Para habilitar un puerto JMX para la supervisión y la administración, debe configurar las propiedades del sistema para los servidores de Tomcat. Puede utilizar la variable de entorno `CATALINA_OPTS ` para establecer las propiedades del sistema necesarias para Tomcat. Revise los scripts de inicio y los archivos de configuración del servidor de Tomcat en la mejor ubicación para configurar la variable de entorno. Asegúrese de que especificó un número de puerto no utilizado. Deberá reiniciar el servidor después del cambio. 

```
export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=<<port-number>> -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
```

En el siguiente ejemplo se configura la JMX no autenticada. Si sus políticas o requisitos de seguridad requieren que habilite JMX con autenticación por contraseña o SSL para el acceso remoto, consulte la [documentación de JMX](https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html) para configurar la propiedad requerida.

Para verificar el puerto JMX, ejecute `ps aux | grep jmxremote.port`. Los resultados deberían mostrar que el puerto JMX se estableció en los procesos de la JVM.

### Configuración del agente para la solución de Tomcat
<a name="Solution-Agent-Configuration-Tomcat-Solution"></a>

Las métricas que el agente recopiló se definen en la configuración del agente. La solución proporciona configuraciones de agente para recopilar las métricas recomendadas con las dimensiones adecuadas para el panel de la solución.

Los pasos para implementar la solución se describen más adelante en [Implementar el agente para su solución](#Solution-Tomcat-Agent-Deploy). La siguiente información tiene por objetivo ayudarlo a comprender cómo personalizar la configuración del agente para su entorno.

Debe personalizar algunas partes de la siguiente configuración de agente para su entorno:
+ El número de puerto de JMX es el que configuró en la sección anterior de esta documentación. El número de puerto está en la línea `endpoint` de la configuración.
+ `AppName`: se utiliza como una dimensión para las métricas de la aplicación Tomcat recopiladas. Proporcione un nombre descriptivo que represente la agrupación para las instancias en las que se ejecuta la aplicación de Tomcat..
+ `ProcessGroupName`: se utiliza como una dimensión para métricas de JVM recopiladas por los hosts de Tomcat. Proporcione el valor que sea el mismo que el `AppName` anterior. Esto permite ver las métricas de la JVM del mismo grupo de aplicaciones de Tomcat que las métricas del servidor en el panel de soluciones.

Por ejemplo, si tiene dos aplicaciones de Tomcat ejecutándose en el mismo Cuenta de AWS, una para la aplicación `billing-system` y otra para la aplicación `order-system`, puede establecer las dimensiones `AppName` y `ProcessGroupName` en consecuencia en la configuración del agente de cada instancia.
+ Para las instancias de la aplicación `billing-system`, defina `AppName=billing-system` y `ProcessGroupName=billing-system`.
+ Para las instancias de la aplicación `order-system`, defina `AppName=order-system` y `ProcessGroupName=order-system`.

Si sigue estas pautas, la solución agrupará automáticamente las métricas en función de las dimensiones `AppName` y `ProcessGroupName`. El panel incluirá opciones desplegables para seleccionar y ver las métricas de una aplicación de Tomcat específica, lo que permitirá supervisar el rendimiento de las aplicaciones individuales por separado.

### Configuración de agente para los hosts de Tomcat
<a name="Solution-Agent-Configuration-Tomcat-Host"></a>

Utilice la siguiente configuración de agente de CloudWatch en las instancias de EC2 en las que se implementan las aplicaciones Tomcat. La configuración se almacenará como parámetro en Parameter Store de SSM, como se detalla más adelante en [Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager](#Solution-Tomcat-Agent-Step2).

Sustituya *AppName* por un nombre descriptivo que represente la aplicación Tomcat de la que forman parte las instancias. Sustituya el *port-number* por el puerto JMX de su servidor Tomcat. Si JMX se habilitó con autenticación por contraseña o SSL para el acceso remoto, consulte [Recopilación de las métricas de Java Management Extensions (JMX)](CloudWatch-Agent-JMX-metrics.md) para obtener información sobre cómo configurar el TLS o la autorización en la configuración del agente, según sea necesario.

Las métricas de EC2 que se muestran en esta configuración (la configuración se muestra fuera del bloque de JMX) solo funcionan para instancias de Linux y macOS. Si utiliza instancias de Windows, puede optar por omitir estas métricas en la configuración. Para obtener información sobre las métricas recopiladas en las instancias de Windows, consulte [Métricas que el agente de CloudWatch recopila en instancias de Windows Server](metrics-collected-by-CloudWatch-agent.md#windows-metrics-enabled-by-CloudWatch-agent).

```
{
  "metrics": {
    "namespace": "CWAgent",
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "localhost:port-number",
          "tomcat": {
            "measurement": [
              "tomcat.sessions",
              "tomcat.errors",
              "tomcat.processing_time",
              "tomcat.traffic",
              "tomcat.max_time",
              "tomcat.request_count",
              "tomcat.threads"
            ]
          },
          "append_dimensions": {
            "AppName": "AppName"
          }
        },
        {
          "endpoint": "localhost:port-number",
          "jvm": {
            "measurement": [
              "jvm.classes.loaded",
              "jvm.gc.collections.count",
              "jvm.gc.collections.elapsed",
              "jvm.memory.heap.committed",
              "jvm.memory.heap.max",
              "jvm.memory.heap.used",
              "jvm.memory.nonheap.committed",
              "jvm.memory.nonheap.max",
              "jvm.memory.nonheap.used",
              "jvm.threads.count"
            ]
          },
          "append_dimensions": {
            "ProcessGroupName": "AppName"
          }
        }
      ],
      "disk": {
        "measurement": [
          "used_percent"
        ]
      },
      "mem": {
        "measurement": [
          "used_percent"
        ]
      },
      "swap": {
        "measurement": [
          "used_percent"
        ]
      },
      "netstat": {
        "measurement": [
          "tcp_established",
          "tcp_time_wait"
        ]
      }
    }
  }
}
```

## Implementar el agente para su solución
<a name="Solution-Tomcat-Agent-Deploy"></a>

Existen varios métodos de instalación del agente de CloudWatch, según el caso de uso. Recomendamos usar Systems Manager para esta solución. Proporciona una experiencia de consola y simplifica la administración de una flota de servidores administrados en una sola cuenta de AWS. Las instrucciones de esta sección utilizan Systems Manager y están pensadas para cuando el agente de CloudWatch no se esté ejecutando con las configuraciones existentes. Puede comprobar si el agente de CloudWatch se está ejecutando, siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running).

Si ya ejecuta el agente de CloudWatch en los hosts de EC2 en los que se implementa la aplicación JVM y administra las configuraciones del agente, puede omitir las instrucciones de esta sección y seguir el mecanismo de implementación existente para actualizar la configuración. Asegúrese de combinar la configuración de agente de JVM con la configuración de agente existente y, a continuación, implemente la configuración combinada. Si utiliza Systems Manager para almacenar y administrar la configuración del agente de CloudWatch, puede combinar la configuración con el valor del parámetro existente. Para obtener más información, consulte [Managing CloudWatch agent configuration files](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html).

**nota**  
El uso de Systems Manager para implementar las siguientes configuraciones de agente de CloudWatch reemplazará o sobrescribirá cualquier configuración de agente de CloudWatch existente en las instancias de EC2. Puede modificar esta configuración para adaptarla a su entorno o caso de uso únicos. Las métricas definidas en esta solución son las mínimas requeridas para el panel recomendado. 

El proceso de implementación consta de los siguientes pasos:
+ Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios.
+ Paso 2: almacene el archivo de configuración recomendado del agente en Parameter Store de Systems Manager.
+ Paso 3: instale el agente de CloudWatch en una o más instancias de EC2 mediante una pila de CloudFormation.
+ Paso 4: verifique que la configuración del agente sea correcta.

### Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios
<a name="Solution-Tomcat-Agent-Step1"></a>

Debe conceder permiso a Systems Manager para instalar y configurar el agente de CloudWatch. También debe conceder permiso al agente de CloudWatch para publicar la telemetría de su instancia de EC2 en CloudWatch. Asegúrese de que el rol de IAM adjuntado a la instancia tenga adjuntas las políticas de IAM **CloudWatchAgentServerPolicy** y **AmazonSSMManagedInstanceCore**.
+ Después de crear el rol, adjunte el rol a sus instancias de EC2. Siga los pasos que se indican en [Lanzar una instancia con un rol de IAM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role) para adjuntar un rol al lanzar una nueva instancia de EC2. Para adjuntar un rol a una instancia de EC2 existente, siga los pasos que se indican en [Adjuntar un rol de IAM a una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role).

### Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager
<a name="Solution-Tomcat-Agent-Step2"></a>

Parameter Store simplifica la instalación del agente de CloudWatch en una instancia de EC2 al almacenar y administrar los parámetros de configuración de forma segura, lo que elimina la necesidad de valores de codificación rígida. Esto garantiza un proceso de implementación más seguro y flexible, lo que permite una administración centralizada y facilita las actualizaciones de las configuraciones en varias instancias.

Siga los pasos a continuación para almacenar el archivo de configuración del agente de CloudWatch recomendado como parámetro en Parameter Store.

**Para crear el archivo de configuración del agente de CloudWatch como parámetro**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Desde el panel de navegación, elija **Administración de aplicaciones**, **Parameter Store**.

1. Siga estos pasos para crear un nuevo parámetro para la configuración.

   1. Elija **Create parameter**.

   1. En el cuadro **Nombre**, ingrese un nombre que utilizará para hacer referencia al archivo de configuración del agente de CloudWatch en pasos posteriores. Por ejemplo, **AmazonCloudWatch-Tomcat-Configuration**.

   1. (Opcional) En el cuadro **Descripción**, escriba una descripción para el parámetro.

   1. En **Capa de parámetros**, elija **Estándar**. 

   1. En **Type**, elija **String**.

   1. En **⁣Tipo de datos**, elija **texto**.

   1. En el cuadro **Valor**, pegue el bloque JSON correspondiente que aparece en [Configuración de agente para los hosts de Tomcat](#Solution-Agent-Configuration-Tomcat-Host). Asegúrese de personalizar el valor de la dimensión de agrupación y el número de puerto tal y como se describe.

   1. Elija **Create parameter**. 

### Paso 3: instale el agente de CloudWatch y aplique la configuración mediante una plantilla de CloudFormation
<a name="Solution-Tomcat-Agent-Step3"></a>

Puede usar AWS CloudFormation para instalar el agente y configurarlo para que use la configuración del agente de CloudWatch que creó en los pasos anteriores.

**Para instalar y configurar el agente de CloudWatch para esta solución**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de Tomcat.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **CWAgentInstallationStack**.

1. En la sección **Parámetros**, especifique los siguientes parámetros:

   1. En **CloudWatchAgentConfigSSM**, ingrese el nombre del parámetro de Systems Manager para la configuración del agente que creó anteriormente, por ejemplo **AmazonCloudWatch-Tomcat-Configuration**.

   1. Para seleccionar las instancias de destino, tiene dos opciones.

      1. En el caso de **InstanceIds**, especifique una lista delimitada por comas de una lista de ID de instancia en los que desee instalar el agente de CloudWatch con esta configuración. Puede enumerar una sola instancia o varias instancias.

      1. Si realiza una implementación a escala, puede especificar la **TagKey** y el **TagValue** correspondiente para dirigirse a todas las instancias de EC2 con esta etiqueta y valor. Si especifica una **TagKey**, debe especificar el **TagValue** correspondiente. (En el caso de un grupo de escalado automático, especifique **aws:autoscaling:groupName** para **TagKey** y especifique el nombre del grupo de escalado automático para que **TagValue** se implemente en todas las instancias del grupo de escalado automático).

         Si especifica tanto los parámetros **InstanceIds** como **TagKeys**, los **InstanceIds** tendrán prioridad y las etiquetas se ignorarán.

1. Revise la configuración y, a continuación, seleccione **Crear pila**. 

Si quiere editar primero el archivo de plantilla para personalizarlo, seleccione la opción **Cargar un archivo de plantilla** en el **Asistente de creación de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar el siguiente enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json). 

**nota**  
Una vez completado este paso, este parámetro de Systems Manager se asociará a los agentes de CloudWatch que se ejecuten en las instancias de destino. Esto significa que:  
Si se elimina el parámetro de Systems Manager, el agente se detendrá.
Si se edita el parámetro de Systems Manager, los cambios de configuración se aplicarán automáticamente al agente con la frecuencia programada, que es de 30 días por defecto.
Si desea aplicar inmediatamente los cambios a este parámetro de Systems Manager, debe volver a ejecutar este paso. Para obtener más información sobre asociaciones, consulte [Trabajo con asociaciones en Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html).

### Paso 4: verifique que la configuración del agente sea correcta
<a name="Solution-Tomcat-Agent-Step4"></a>

Puede comprobar si el agente de CloudWatch está instalado siguiendo los pasos que se indican en [Verifique que el agente de CloudWatch esté en ejecución](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running). Si el agente de CloudWatch no está instalado ni en ejecución, asegúrese de haber configurado todo correctamente.
+ Asegúrese de haber adjuntado un rol con los permisos correctos a la instancia EC2, tal y como se describe en [Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios](#Solution-Tomcat-Agent-Step1).
+ Asegúrese de haber configurado correctamente el JSON para el parámetro de Systems Manager. Siga los pasos de [Solución de problemas de la instalación del agente de CloudWatch con CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md#CloudWatch-Agent-CloudFormation-troubleshooting).

Si todo está configurado correctamente, debería ver las métricas de Tomcat publicadas en CloudWatch. Puede comprobar la consola de CloudWatch para verificar que se estén publicando.

**Para comprobar que las métricas de Tomcat se publican en CloudWatch**

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

1. Elija **Métricas**, **Todas las métricas**.

1. Asegúrese de haber seleccionado la región en la que implementó la solución y elija **Namespaces personalizados**, **CWAgent**.

1. Busque las métricas mencionadas en la sección de configuración del agente de este documento, por ejemplo `tomcat.errors`. Si ve los resultados de estas métricas, significa que las métricas se están publicando en CloudWatch.

## Crear el panel de soluciones de Tomcat
<a name="Solution-Tomcat-Dashboard"></a>

Este panel muestra las métricas emitidas recientemente y muestra tanto el servidor de aplicaciones Tomcat como la JVM subyacente. Este panel proporciona una visión de los principales colaboradores sobre el estado de su carga de trabajo de Tomcat. La vista de los principales colaboradores muestra el widget de los 10 principales por métrica. Esto permite identificar los valores atípicos de una sola vez. El panel también incluye una descripción general del clúster al agregar y presentar las métricas de todas las instancias, lo que proporciona un resumen de alto nivel del estado general y operativo del clúster.

El panel de soluciones no muestra las métricas de EC2. Para ver las métricas de EC2, tendrá que usar el panel automático de EC2 para ver las métricas ofrecidas de EC2 y usar el panel de la consola de EC2 para ver las métricas de EC2 recopiladas por el agente de CloudWatch. Para obtener más información acerca de los paneles automáticos para Servicios de AWS, consulte [Visualización de un panel de CloudWatch para un solo servicio de AWS](CloudWatch_Automatic_Dashboards_Focus_Service.md).

Para crear el panel, puede usar las siguientes opciones:
+ Use la consola de CloudWatch para crear el panel.
+ Utilice la consola de AWS CloudFormation para implementar el panel.
+ Descargue la infraestructura de AWS CloudFormation como código e intégrela como parte de su automatización de integración continua (CI).

Al utilizar la consola de CloudWatch para crear un panel, puede obtener una vista previa del panel antes de crearlo y que se le cobre por ello.

**nota**  
El panel creado con CloudFormation en esta solución muestra las métricas de la región en la que se implementa la solución. Asegúrese de crear la pila CloudFormation en la región en la que se publican las métricas de Tomcat.  
Si especificó un namespace personalizado que no sea `CWAgent` en la configuración del agente de CloudWatch, tendrá que cambiar la plantilla CloudFormation del panel para sustituir `CWAgent` por el namespace personalizado que esté utilizando.

**Para crear el panel mediante la consola de CloudWatch**
**nota**  
Actualmente, los paneles de soluciones muestran las métricas relacionadas con la recopilación de elementos no utilizados solo para el Recopilador de elementos no utilizados G1, que es el recopilador predeterminado para las versiones más recientes de Java. Si utiliza un algoritmo de recopilación de elementos no utilizados distinto, los widgets relacionados con la recopilación de elementos no utilizados están vacíos. Sin embargo, puede personalizar estos widgets si se cambia la plantilla de CloudFormation del panel y se aplica el tipo de recopilación de elementos no utilizados adecuado a la dimensión de nombre de las métricas relacionadas con la recopilación de elementos no utilizados. Por ejemplo, si utiliza la recolección de elementos no utilizados en paralelo, cambie **name=\$1"G1 Young Generation\$1"** a **name=\$1"Parallel GC\$1"** de la métrica de recuento de recopilación de elementos no utilizados `jvm.gc.collections.count`.

1. Abra la consola de CloudWatch en **Crear panel** mediante este enlace:[ https://console.aws.amazon.com/cloudwatch/home?\$1dashboards?dashboardTemplate=ApacheTomcatOnEc2&referrer=os-catalog](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=ApacheTomcatOnEc2&referrer=os-catalog). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de Tomcat.

1. Ingrese el nombre del panel, luego seleccione **Crear panel**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **TomcatDashboard-us-east-1**.

1. Obtenga una vista previa del panel y seleccione **Guardar** para crearlo.

**Para crear el panel de control mediante CloudFormation**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Tomcat\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Tomcat_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecuta la carga de trabajo de Tomcat.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **TomcatDashboard-us-east-1**.

1. En la sección **Parámetros**, especifique el nombre del panel en el parámetro **DashboardName**.

1. Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **TomcatDashboard-us-east-1**.

1. Reconozca las capacidades de acceso para las transformaciones en **Capacidades y transformaciones**. Tenga en cuenta que CloudFormation no agrega ningún recurso de IAM.

1. Revise la configuración y, a continuación, seleccione **Crear pila**. 

1. Cuando el estado de la pila sea **CREATE\$1COMPLETE**, elija la pestaña **Recursos** situada debajo de la pila creada y, a continuación, elija el enlace situado en **ID físico** para ir al panel. También puede acceder al panel en la consola de CloudWatch seleccionando **Paneles** en el panel de navegación izquierdo de la consola y buscando el nombre del panel en **Paneles personalizados**.

Si desea editar el archivo de plantilla para personalizarlo para cualquier propósito, puede usar la opción **Cargar un archivo de plantilla** en **Crear asistente de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar este enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Tomcat\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Tomcat_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json). 

**nota**  
Actualmente, los paneles de soluciones muestran las métricas relacionadas con la recopilación de elementos no utilizados solo para el Recopilador de elementos no utilizados G1, que es el recopilador predeterminado para las versiones más recientes de Java. Si utiliza un algoritmo de recopilación de elementos no utilizados distinto, los widgets relacionados con la recopilación de elementos no utilizados están vacíos. Sin embargo, puede personalizar estos widgets si se cambia la plantilla de CloudFormation del panel y se aplica el tipo de recopilación de elementos no utilizados adecuado a la dimensión de nombre de las métricas relacionadas con la recopilación de elementos no utilizados. Por ejemplo, si utiliza la recolección de elementos no utilizados en paralelo, cambie **name=\$1"G1 Young Generation\$1"** a **name=\$1"Parallel GC\$1"** de la métrica de recuento de recopilación de elementos no utilizados `jvm.gc.collections.count`. 

### Introducción al panel de supervisión de Tomcat
<a name="Solution-Tomcat-GetStarted"></a>

Estas son algunas tareas que puede probar con el nuevo panel de Tomcat. Estas tareas permiten validar que el panel funciona correctamente y le proporcionan experiencia práctica en su uso para supervisar una aplicación de Tomcat. A medida que las vaya probando, se familiarizará con la navegación por el panel y la interpretación de las métricas visualizadas.

**Cómo utilizar la lista desplegable**

El panel incluye una lista desplegable en la parte superior que puede utilizar para filtrar y seleccionar la aplicación de Tomcat específica que desee supervisar. Para mostrar las métricas de una aplicación Tomcat específica, seleccione el nombre de esa aplicación en la lista desplegable **Aplicación de Tomcat**. 

**Comprobar el estado de la aplicación**

En la sección **Descripción general de la aplicación**, busque los widgets **Solicitudes**, **Errores** y **Tasa de errores**. Estos proporcionan un resumen de alto nivel del rendimiento de la administración de solicitudes de la aplicación. Busque recuentos o tasas de error anormalmente altos, lo que podría indicar problemas que deban investigarse.

**Supervisar el procesamiento de las solicitudes**

En la sección **Tiempo de procesamiento de solicitudes**, busque los widgets **Tiempo máximo** y **Tiempo total para procesar todas las solicitudes**. Estas métricas lo ayudan a identificar posibles cuellos de botella del rendimiento en el procesamiento de las solicitudes. Busque servidores con tiempos máximos de procesamiento significativamente más altos en comparación con otros. 

**Analizar el tráfico de la red**

En la sección **Tráfico de red**, busque los widgets **Tráfico enviado** y **Tráfico recibido**. Estos muestran la cantidad de datos que la aplicación envía y recibe a través de la red. Los niveles de tráfico inesperadamente altos podrían indicar posibles problemas de saturación de la red o de una transferencia de datos ineficiente.

**Investigar el uso de subprocesos**

En la sección **Sesiones y subprocesos**, busque los widgets **Recuento de subprocesos ocupados**, **Recuento de subprocesos** y **Sesiones**. Estas métricas proporcionan información sobre la administración de subprocesos de la aplicación y las sesiones de usuario activas. Busque servidores con un número anormalmente alto de subprocesos o sesiones ocupados, lo que podría indicar posibles limitaciones de recursos.

# Solución de CloudWatch: Amazon EC2 Health
<a name="Solution-EC2-Health"></a>

Esta solución lo ayuda a configurar la recopilación de métricas lista para usar mediante agentes de CloudWatch para las cargas de trabajo que se ejecutan en instancias de EC2. Además, lo ayuda a configurar un panel de CloudWatch preconfigurado.

**Topics**
+ [Requisitos](#Solution-EC2-Health-Requirements)
+ [Ventajas](#Solution-EC2-Health-Benefits)
+ [Costos](#Solution-EC2-Health-Costs)
+ [Configuración del agente de CloudWatch para esta solución](#Solution-EC2-Health-Agent-Config)
+ [Implementar el agente para su solución](#Solution-EC2-Health-Deploy)
+ [Crear el panel de soluciones de EC2 Health](#Solution-EC2-Health-Dashboard)
+ [Introducción al panel de soluciones de EC2 Health](#Solution-EC2-Health-Dashboard-Usage)

## Requisitos
<a name="Solution-EC2-Health-Requirements"></a>

Esta solución es adecuada para las siguientes condiciones:
+ Recursos informáticos: Amazon EC2
+ Plataforma: Linux y macOS
+ Compatible con hasta 500 instancias de EC2 en una determinada Región de AWS
+ Versión más reciente del agente de CloudWatch
+ SSM Agent instalado en la instancia de EC2
**nota**  
AWS Systems Manager (SSM Agent) está preinstalado en algunas [Imágenes de máquina de Amazon (AMI)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) proporcionadas por AWS y terceros de confianza. Si el agente no está instalado, puede instalarlo manualmente mediante el procedimiento correspondiente al tipo de sistema operativo.  
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html)
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html)
[Instalación y desinstalación manual del SSM Agent en instancias de EC2 para Windows Server](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html)

## Ventajas
<a name="Solution-EC2-Health-Benefits"></a>

La solución ofrece supervisión de servidores de EC2 mediante el agente de CloudWatch, lo que proporciona métricas adicionales a nivel de sistema además de las métricas estándar del namespace de EC2 para los siguientes casos de uso:
+ Detecte los problemas de rendimiento de la CPU y las limitaciones de recursos.
+ Supervise la utilización del disco y la capacidad de almacenamiento en los diferentes discos de sus instancias de EC2.
+ Realice un seguimiento de los patrones de uso de la memoria y de las posibles pérdidas de memoria.
+ Analice las operaciones de E/S y su impacto en el rendimiento general.
+ Observe los patrones de tráfico de la red y las posibles anomalías.

A continuación se detallan las principales ventajas de la solución:
+ Automatiza la recopilación de métricas para las instancias de EC2, lo que elimina la instrumentación manual.
+ Proporciona un panel de CloudWatch consolidado y preconfigurado para las métricas de instancias de EC2. El panel administrará automáticamente las métricas de las nuevas instancias de EC2 configuradas con la solución, incluso si esas métricas no existían cuando creó el panel por primera vez. También permite observar las instancias de EC2 administradas mediante grupos de escalado automático.

La siguiente imagen muestra un ejemplo del panel para esta solución:

![\[Ejemplo de un panel de estado de EC2\]](http://docs.aws.amazon.com/es_es/AmazonCloudWatch/latest/monitoring/images/EC2HealthDashboard.png)


## Costos
<a name="Solution-EC2-Health-Costs"></a>

Esta solución crea y utiliza recursos en su espacio de trabajo. Se cobrará por el uso estándar, que incluye lo siguiente:
+ Las métricas recopiladas por el agente de CloudWatch se cobran como métricas personalizadas. La cantidad de métricas que utiliza esta solución depende de la cantidad de hosts de EC2.

  El número total de métricas del agente de CloudWatch depende de la configuración de los discos. Sin contar las métricas de disco y disco de E/S, la solución publica seis métricas. La cantidad de métricas de disco (`disk_used_percent`, `disk_inodes_free`) depende del recuento de dimensiones `device/fstype/path`. La métrica de entrada/salida de disco (`diskio_io_time`) depende del recuento de dimensiones `name`. Por ejemplo, un solo t2.micro con la configuración predeterminada según la experiencia de la consola de EC2 produce un total de 22 métricas de agentes de CloudWatch (4 CPU, 12 discos, 4 discos de E/S, 1 memoria y 1 intercambio). Las métricas vendidas como `AWS/EC2` se proporcionan de forma gratuita.
+ Un panel personalizado.
+ Operaciones de API solicitadas por el agente de CloudWatch para publicar las métricas. Con la configuración predeterminada de esta solución, el agente de CloudWatch llama a **PutMetricData** una vez por minuto. Esto significa que la API **PutMetricData** se llamará `30*24*60=43,200` en un mes de 30 días para cada host de EC2.

Para obtener más información sobre los precios de CloudWatch, consulte [Precios de Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

La calculadora de precios puede ayudarlo a estimar los costos mensuales aproximados del uso de esta solución.

**Para usar la calculadora de precios para estimar los costos mensuales de la solución**

1. Abra la [calculadora de precios de Amazon CloudWatch](https://calculator.aws/#/createCalculator/CloudWatch).

1. En la sección **Métricas**, en **Número de métricas**, ingrese **(6 \$1 total count of disk and diskio metrics per EC2 host as described above) \$1 number of EC2 instances configured for this solution**.

1. En la sección **API**, en **Número de solicitudes de API**, ingrese **43200 \$1 number of EC2 instances configured for this solution**.

1. De forma predeterminada, el agente CloudWatch realiza una operación **PutMetricData** por minuto para cada host de EC2.

1. En la sección **Paneles y alarmas**, en **Número de paneles**, escriba **1**.

1. Puede ver sus costos mensuales estimados en la parte inferior de la calculadora de precios.

## Configuración del agente de CloudWatch para esta solución
<a name="Solution-EC2-Health-Agent-Config"></a>

El agente de CloudWatch es un software que se ejecuta de forma continua y autónoma en sus servidores y en entornos contenerizados. Recopila métricas, registros y trazas de su infraestructura y aplicaciones y los envía a CloudWatch y X-Ray.

Para obtener más información sobre el agente de Amazon CloudWatch, consulte [Recopilación de métricas, registros y seguimientos con el agente de CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html).

La configuración del agente de esta solución recopila un conjunto de métricas para ayudarlo a empezar a supervisar y observar sus instancias de EC2. El agente de CloudWatch se puede configurar para recopilar más métricas de EC2 que las que muestra el panel de forma predeterminada. Para obtener una lista de métricas de Amazon EC2, consulte [Métricas que el agente de CloudWatch recopila en instancias de Linux y de macOS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html#linux-metrics-enabled-by-CloudWatch-agent). Para obtener información sobre las métricas que el agente de CloudWatch recopila en instancias de Windows, consulte [Métricas que el agente de CloudWatch recopila en instancias de Windows Server](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html#windows-metrics-enabled-by-CloudWatch-agent).

### Configuración de agentes para la solución EC2 Health
<a name="Solution-EC2-Health-Agent-Config-Details"></a>

Las métricas que el agente recopiló se definen en la configuración del agente. La solución proporciona configuraciones de agentes para recopilar las métricas recomendadas con las dimensiones adecuadas para el panel de la solución.

Los pasos para implementar la solución se describen más adelante en [Implementar el agente para su solución](#Solution-EC2-Health-Deploy). La siguiente información tiene por objetivo ayudarlo a comprender cómo personalizar la configuración del agente para su entorno.

**nota**  
Si una instancia EC2 no forma parte de un grupo de escalado automático, el agente de CloudWatch elimina la dimensión `AutoScalingGroupName` por completo. Este comportamiento ayuda a evitar que los nombres de las dimensiones tengan valores nulos o vacíos. Cada widget de métricas incluido en el panel de la solución busca métricas que incluyan y excluyan la dimensión `AutoScalingGroup`. Esto ayuda a garantizar que todas las instancias de EC2 en las que se aplica la solución sean compatibles con el mismo panel.

Si desea realizar alguna modificación en la configuración del agente, debe aplicar los mismos cambios en el panel adjunto a la solución. Por ejemplo, si decide omitir la dimensión ImageID, debe eliminar la misma dimensión de la expresión de búsqueda de métricas utilizada en los widgets del panel.

### Configuración de agentes para instancias de EC2
<a name="Solution-EC2-Health-Agent-Config-Instance"></a>

Utilice la siguiente configuración de agente de CloudWatch en las instancias de Amazon EC2 en las que se implementan las cargas de trabajo.

```
{
    "agent": {
      "metrics_collection_interval": 60,
      "run_as_user": "cwagent"
    },
    "metrics": {
      "append_dimensions": {
        "InstanceId": "${aws:InstanceId}",
        "InstanceType": "${aws:InstanceType}",
        "ImageId": "${aws:ImageId}",
        "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
      },
      "metrics_collected": {
        "cpu": {
          "measurement": [
            "cpu_usage_idle",
             "cpu_usage_iowait",
             "cpu_usage_user",
             "cpu_usage_system"
          ],
          "totalcpu": true
        },
        "disk": {
          "measurement": [
            "used_percent",
            "inodes_free"
          ],
          "resources": [
            "*"
          ],
          "dimensions": [
            ["device", "fstype", "path"]
          ]
        },
        "diskio": {
           "measurement": [
             "io_time"
           ],
           "resources": [
             "*"
           ]
          },
        "mem": {
          "measurement": [
            "used_percent"
          ]
        },
        "swap": {
          "measurement": [
            "used_percent"
          ]
        }
      }
    }
  }
```

## Implementar el agente para su solución
<a name="Solution-EC2-Health-Deploy"></a>

Existen varios métodos de instalación del agente de CloudWatch, según el caso de uso. Recomendamos usar Systems Manager para esta solución. Proporciona una experiencia de consola y simplifica la administración de una flota de servidores administrados en una sola cuenta de AWS. Las instrucciones de esta sección utilizan Systems Manager y están pensadas para cuando el agente de CloudWatch no se esté ejecutando con las configuraciones existentes. Puede comprobar si el agente de CloudWatch se está ejecutando, siguiendo los pasos de [Verificar que el agente de CloudWatch se esté ejecutando](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html#CloudWatch-Agent-troubleshooting-verify-running).

Si ya está ejecutando el agente de CloudWatch en los hosts de EC2 y administrando las configuraciones del agente, puede omitir las instrucciones de esta sección y seguir el mecanismo de implementación existente para actualizar la configuración. Asegúrese de combinar la configuración del agente de EC2 Health con la configuración de agente existente y, a continuación, implemente la configuración combinada. Si utiliza Systems Manager para almacenar y administrar la configuración del agente de CloudWatch, puede combinar la configuración con el valor del parámetro existente. Para obtener más información, consulte [Managing CloudWatch agent configuration files](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html).

**nota**  
El uso de Systems Manager para implementar las siguientes configuraciones de agente de CloudWatch reemplazará o sobrescribirá cualquier configuración de agente de CloudWatch existente en las instancias de EC2. Puede modificar esta configuración para adaptarla a su entorno o caso de uso únicos. Las métricas definidas en la configuración son las mínimas requeridas para el panel proporcionado por la solución.

El proceso de implementación consta de los siguientes pasos:
+ Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios.
+ Paso 2: almacene el archivo de configuración recomendado del agente en Parameter Store de Systems Manager.
+ Paso 3: instale el agente de CloudWatch en una o más instancias de EC2 mediante una pila de CloudFormation.
+ Paso 4: verifique que la configuración del agente sea correcta.

### Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios
<a name="Solution-EC2-Health-Deploy-Step1"></a>

Debe conceder permiso a Systems Manager para instalar y configurar el agente de CloudWatch. También debe conceder permiso al agente de CloudWatch para publicar la telemetría de su instancia de EC2 en CloudWatch. Asegúrese de que el rol de IAM adjuntado a la instancia tenga adjuntas las políticas de IAM **CloudWatchAgentServerPolicy** y **AmazonSSMManagedInstanceCore**.
+ Después de crear el rol, adjunte el rol a sus instancias de EC2. Para adjuntar un rol a una instancia de EC2, siga los pasos que se indican en [Adjuntar un rol de IAM a una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attach-iam-role.html).

### Paso 2: almacene el archivo de configuración recomendado del agente de CloudWatch en Parameter Store de Systems Manager
<a name="Solution-EC2-Health-Deploy-Step2"></a>

Parameter Store simplifica la instalación del agente de CloudWatch en una instancia de EC2 al almacenar y administrar los parámetros de configuración de forma segura, lo que elimina la necesidad de valores de codificación rígida. Esto garantiza un proceso de implementación más seguro y flexible, lo que permite una administración centralizada y facilita las actualizaciones de las configuraciones en varias instancias.

Siga los pasos a continuación para almacenar el archivo de configuración del agente de CloudWatch recomendado como parámetro en Parameter Store. 

**Para crear el archivo de configuración del agente de CloudWatch como parámetro**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecutan las instancias de EC2.

1. Desde el panel de navegación, elija **Administración de aplicaciones**, **Parameter Store**.

1. Siga estos pasos para crear un nuevo parámetro para la configuración.

   1. Elija **Create parameter**.

   1. En el cuadro **Nombre**, ingrese un nombre que utilizará para hacer referencia al archivo de configuración del agente de CloudWatch en pasos posteriores. Por ejemplo, **AmazonCloudWatch-EC2Health-Configuration**.

   1. (Opcional) En el cuadro **Descripción**, escriba una descripción para el parámetro.

   1. En **Capa de parámetros**, elija **Estándar**.

   1. En **Type**, elija **String**.

   1. En **⁣Tipo de datos**, elija **texto**.

   1. En el cuadro **Valor**, pegue el JSON de configuración del agente proporcionado anteriormente en este documento.

   1. Elija **Create parameter**.

### Paso 3: instale el agente de CloudWatch y aplique la configuración mediante una plantilla de CloudFormation
<a name="Solution-EC2-Health-Deploy-Step3"></a>

Puede usar CloudFormation para instalar el agente y configurarlo para que use la configuración del agente de CloudWatch que creó en los pasos anteriores.

**Para instalar y configurar el agente de CloudWatch para esta solución**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json).

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecutan las instancias de EC2.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como **CWAgentInstallationStack**.

1. En la sección **Parámetros**, especifique los siguientes parámetros:

   1. En **CloudWatchAgentConfigSSM**, ingrese el nombre del parámetro de Systems Manager para la configuración del agente que creó anteriormente, por ejemplo **AmazonCloudWatch-EC2Health-Configuration**.

   1. Para seleccionar las instancias de destino, tiene dos opciones.

      1. En el caso de **InstanceIds**, especifique una lista delimitada por comas de una lista de ID de instancia en los que desee instalar el agente de CloudWatch con esta configuración. Puede enumerar una sola instancia o varias instancias.

      1. Si realiza una implementación a escala, puede especificar la **TagKey** y el **TagValue** correspondiente para dirigirse a todas las instancias de EC2 con esta etiqueta y valor. Si especifica una **TagKey**, debe especificar el **TagValue** correspondiente. (En el caso de un grupo de escalado automático, especifique **aws:autoscaling:groupName** para **TagKey** y especifique el nombre del grupo de escalado automático para que **TagValue** se implemente en todas las instancias del grupo de escalado automático).

      Si especifica tanto los parámetros **InstanceIds** como **TagKeys**, los **InstanceIds** tendrán prioridad y las etiquetas se ignorarán.

1. Revise la configuración y, a continuación, seleccione **Crear pila**.

Si quiere editar primero el archivo de plantilla para personalizarlo, seleccione la opción **Cargar un archivo de plantilla** en el **Asistente de creación de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede utilizar el siguiente enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json).

**nota**  
Una vez completado este paso, este parámetro de Systems Manager se asociará a los agentes de CloudWatch que se ejecuten en las instancias de destino. Esto significa que:  
Si se elimina el parámetro de Systems Manager, el agente se detendrá.
Si se edita el parámetro de Systems Manager, los cambios de configuración se aplicarán automáticamente al agente con la frecuencia programada, que es de 30 días por defecto.
Si desea aplicar inmediatamente los cambios a este parámetro de Systems Manager, debe volver a ejecutar este paso. Para obtener más información sobre asociaciones, consulte [Cómo trabajar con asociaciones en AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html).

### Paso 4: verifique que la configuración del agente sea correcta
<a name="Solution-EC2-Health-Deploy-Step4"></a>

Puede comprobar si el agente de CloudWatch está instalado siguiendo los pasos de [Verificar que el agente de CloudWatch se esté ejecutando](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html#CloudWatch-Agent-troubleshooting-verify-running). Si el agente de CloudWatch no está instalado ni en ejecución, asegúrese de haber configurado todo correctamente.
+ Asegúrese de haber adjuntado un rol con los permisos correctos a la instancia EC2, tal y como se describe en [Paso 1: asegúrese de que las instancias de EC2 de destino disponen de los permisos de IAM necesarios](#Solution-EC2-Health-Deploy-Step1).
+ Asegúrese de haber configurado correctamente el JSON para el parámetro de Systems Manager. Siga los pasos que se indican en [Solución de problemas de la instalación del agente de CloudWatch con CloudFormation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent-New-Instances-CloudFormation.html#CloudWatch-Agent-CloudFormation-troubleshooting).

**Para comprobar que las métricas de EC2 Health se publican en CloudWatch**

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

1. Elija **Métricas**, **Todas las métricas**.

1. Asegúrese de haber seleccionado la región en la que implementó la solución y elija **Namespaces personalizados**, **CWAgent**.

1. Busque las métricas mencionadas en la sección de configuración del agente de este documento, por ejemplo `mem_used_percent`. Si ve los resultados de estas métricas, significa que las métricas se están publicando en CloudWatch.

## Crear el panel de soluciones de EC2 Health
<a name="Solution-EC2-Health-Dashboard"></a>

Este panel muestra las métricas emitidas recientemente y las métricas de EC2 Health. Este panel proporciona una visión de los principales colaboradores del estado de las instancias EC2 en una sola región. La vista de los principales colaboradores muestra el widget de los 10 principales por métrica. Esto permite identificar los valores atípicos de una sola vez.

Para crear el panel, puede usar las siguientes opciones:
+ Use la consola de CloudWatch para crear el panel.
+ Utilice la consola de AWS CloudFormation para implementar el panel.
+ Descargue la infraestructura de AWS CloudFormation como código e intégrela como parte de su automatización de integración continua (CI).

Al utilizar la consola de CloudWatch para crear un panel, puede obtener una vista previa del panel antes de crearlo y que se le cobre por ello.

**nota**  
El panel creado con CloudFormation en esta solución muestra las métricas de la región en la que se implementa la solución. Asegúrese de crear la pila CloudFormation en la región en la que se publican las métricas de EC2.  
Si especificó un namespace personalizado que no sea `CWAgent` en la configuración del agente de CloudWatch, tendrá que cambiar la plantilla CloudFormation del panel para sustituir `CWAgent` por el namespace personalizado que esté utilizando.

**Para crear el panel mediante la consola de CloudWatch**

1. Abra la consola de CloudWatch en **Crear panel** mediante este enlace:[ https://console.aws.amazon.com/cloudwatch/home?\$1dashboards?dashboardTemplate=Ec2LinuxMacOsHealth&referrer=os-catalog](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=Ec2LinuxMacOsHealth&referrer=os-catalog). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecutan las instancias de EC2.

1. Ingrese el nombre del panel, luego seleccione **Crear panel**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **EC2HealthDashboard-us-east-1**.

1. Obtenga una vista previa del panel y seleccione **Guardar** para crearlo.

**Para crear el panel de control mediante CloudFormation**

1. Abra el asistente de CloudFormation **Creación rápida de pilas** mediante este enlace: [ https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/EC2\$1Health/CloudWatch/CFN/v1.0.0/dashboard-template-linux-macos-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/EC2_Health/CloudWatch/CFN/v1.0.0/dashboard-template-linux-macos-1.0.0.json). 

1. Compruebe que la región seleccionada en la consola sea la región en la que se ejecutan las instancias de EC2.

1. En **Nombre de la pila**, ingrese un nombre para identificar esta pila, como `EC2HealthDashboardStack`.

1. En la sección **Parámetros**, especifique el nombre del panel en el parámetro **DashboardName**.

   Para diferenciar fácilmente este panel de otros paneles similares de otras regiones, recomendamos incluir el nombre de la región en el nombre del panel, por ejemplo **EC2HealthDashboard-us-east-1**.

1. Reconozca las capacidades de acceso para las transformaciones en **Capacidades y transformaciones**. Tenga en cuenta que CloudFormation no agrega ningún recurso de IAM.

1. Revise la configuración y, a continuación, seleccione **Crear pila**.

1. Cuando el estado de la pila sea **CREATE\$1COMPLETE**, elija la pestaña **Recursos** situada debajo de la pila creada y, a continuación, elija el enlace situado en **ID físico** para ir al panel. También puede acceder al panel en la consola de CloudWatch seleccionando **Paneles** en el panel de navegación izquierdo de la consola y buscando el nombre del panel en **Paneles personalizados**.

Si desea editar el archivo de plantilla para personalizarlo para cualquier propósito, puede usar la opción **Cargar un archivo de plantilla** del **Asistente de creación de pilas** para cargar la plantilla editada. Para obtener más información, consulte [Creación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Puede usar este enlace para descargar la plantilla: [https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/EC2\$1Health/CloudWatch/CFN/v1.0.0/dashboard-template-linux-macos-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/EC2_Health/CloudWatch/CFN/v1.0.0/dashboard-template-linux-macos-1.0.0.json) 

## Introducción al panel de soluciones de EC2 Health
<a name="Solution-EC2-Health-Dashboard-Usage"></a>

Estas son algunas tareas que puede probar con el nuevo panel de supervisión de EC2. Estas tareas permiten validar que el panel funciona correctamente y le proporcionan experiencia práctica en su uso para supervisar instancias de EC2. A medida que las vaya probando, se familiarizará con la navegación por el panel y la interpretación de las métricas visualizadas.

Supervise las distintas métricas de uso de la CPU  
En la sección **CPU**, examine el conjunto de métricas de uso de la CPU. Estas proporcionan información sobre cómo se utilizan los recursos de la CPU en diferentes actividades, como los procesos de usuario, las tareas del sistema y las operaciones de E/S. Busque instancias con un uso elevado y constante o patrones inusuales, lo que podría indicar la necesidad de escalarlas u optimizarlas.

Analice la utilización del disco en distintos dispositivos  
Diríjase a la sección **Disco** para encontrar las métricas de uso de almacenamiento y disponibilidad de nodos de índice. Lo ayudan a identificar las instancias que se están quedando sin espacio de almacenamiento o con pocos recursos del sistema de archivos. Preste atención a cualquier instancia que se acerque a niveles elevados de uso del disco, ya que esto podría provocar problemas de rendimiento o interrupciones en el servicio.

Investigar los patrones de uso de memoria  
En la sección **Memoria**, observe el gráfico que representa el uso de la memoria a lo largo del tiempo. Esto muestra la cantidad de memoria disponible que utiliza cada instancia. Busque patrones o picos en el uso de la memoria que puedan correlacionarse con momentos o eventos específicos. Un uso elevado de la memoria podría indicar la necesidad de cambiar el tamaño de instancia o de optimizar las aplicaciones.

Correlacione los patrones entre las métricas de uso principales  
Compare y observe los patrones de utilización relacionados. Por ejemplo, una carga de trabajo que ejecute un proceso de rotación de registros podría provocar aumentos periódicos en la utilización de la **CPU** y la **memoria**, seguidos de una disminución en la utilización del **disco**.

Inspeccionar la actividad de la red  
En la sección **Red**, examine las métricas del tráfico de red entrante y saliente, tanto en términos de volumen de datos como de recuento de paquetes. Le proporcionan información sobre la actividad de red de sus instancias de EC2. Esté atento a los picos de tráfico de red habituales o anómalos, o a los desequilibrios entre los datos entrantes y salientes.