

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