

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