

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# CloudWatch solution : charge de travail NGINX sur Amazon EC2
<a name="Solution-NGINX-On-EC2"></a>

Cette solution vous permet de configurer la collecte de out-of-the-box métriques à l'aide d' CloudWatch agents pour les applications NGINX exécutées sur des instances EC2. Pour des informations générales sur toutes les solutions CloudWatch d'observabilité, consultez[CloudWatch solutions d'observabilité](Monitoring-Solutions.md).

**Topics**
+ [Exigences](#Solution-NGINX-On-EC2-Requirements)
+ [Avantages](#Solution-NGINX-On-EC2-Benefits)
+ [Coûts](#Solution-NGINX-On-EC2-Costs)
+ [CloudWatch configuration de l'agent pour cette solution](#Solution-NGINX-CloudWatch-Agent)
+ [Déployer l’agent pour votre solution](#Solution-NGINX-Agent-Deploy)
+ [Créer le tableau de bord de la solution NGINX](#Solution-NGINX-Dashboard)

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

Cette solution est pertinente pour les conditions suivantes :
+ Versions prises en charge : NGINX version 1.24
+ Calcul : Amazon EC2
+ Prend en charge jusqu’à 500 instances EC2 sur l’ensemble des charges de travail NGINX dans une Région AWS donnée
+ Dernière version de l' CloudWatch agent
+ Prometheus Exporter : nginx-prometheus-exporter nginxinc/ (licence Apache 2.0)
+ Agent SSM installé sur l’instance EC2
**Note**  
AWS Systems Manager (agent SSM) est préinstallé sur certaines [Amazon Machine Images (AMIs)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) fournies par des tiers AWS de confiance. Si l’agent n’est pas installé, vous pouvez l’installer manuellement à l’aide de la procédure correspondant à votre type de système d’exploitation.  
 [Installation et désinstallation manuelles de l’agent SSM sur les instances EC2 pour Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) 
 [Installation et désinstallation manuelles de l’agent SSM sur les instances EC2 pour macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html) 
 [Installation et désinstallation manuelles de l’agent SSM sur les instances EC2 pour Windows Server](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html) 

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

La solution assure la surveillance de NGINX et fournit des informations précieuses pour les cas d’utilisation suivants :
+ Examinez les métriques de connexion pour identifier les goulots d’étranglement potentiels, les problèmes de connexion ou une utilisation inattendue.
+ Analysez le volume des requêtes HTTP pour comprendre la charge globale du trafic sur le NGINX.

Vous trouverez ci-dessous les principaux avantages de la solution :
+ Automatise la collecte de métriques pour NGINX à l'aide de la configuration de l' CloudWatch agent, éliminant ainsi l'instrumentation manuelle.
+ Fournit un tableau de CloudWatch bord consolidé préconfiguré pour les métriques NGINX. Le tableau de bord traitera automatiquement les métriques des nouvelles instances EC2 NGINX configurées à l’aide de la solution, même si ces métriques n’existent pas lorsque vous créez le tableau de bord pour la première fois.

L’image suivante est un exemple de tableau de bord pour cette solution.

![\[Exemple de tableau de bord pour la solution NGINX.\]](http://docs.aws.amazon.com/fr_fr/AmazonCloudWatch/latest/monitoring/images/NGINXDashboard.png)


## Coûts
<a name="Solution-NGINX-On-EC2-Costs"></a>

Cette solution crée et utilise des ressources dans votre compte. Les coûts d’utilisation standard vous sont facturés, y compris les éléments suivants :
+ Toutes les métriques collectées par l' CloudWatch agent pour cette solution sont publiées dans CloudWatch Logs à l'aide du format EMF (Embedded Metric Format). Ces CloudWatch journaux sont facturés en fonction de leur volume et de leur durée de conservation. Par conséquent, aucun appel d'**PutMetricData**API ne vous sera facturé pour cette solution. Les métriques extraites et ingérées à partir de vos journaux sont facturées en tant que métriques personnalisées. Le nombre de métriques utilisées par cette solution dépend du nombre d’hôtes EC2.
  + Chaque hôte NGINX EC2 configuré pour la solution publie un total de huit métriques.
+ Un tableau de bord personnalisé.

Pour plus d'informations sur CloudWatch les tarifs, consultez [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/).

Le calculateur de prix peut vous aider à estimer les coûts mensuels approximatifs de l’utilisation de cette solution.

**Pour utiliser le calculateur de prix afin d’estimer les coûts mensuels de votre solution**

1. Ouvrez le [calculateur CloudWatch de prix Amazon](https://calculator.aws/#/createCalculator/CloudWatch).

1. Pour **Choisir une région**, sélectionnez l' Région AWS endroit où vous souhaitez déployer la solution.

1. Dans la section **Métriques**, pour **Nombre de métriques**, entrez **8 \$1 number of EC2 instances configured for this solution**.

1. Dans la section **Logs**, pour **Standard Logs : Data Ingested**, entrez le volume de log quotidien estimé généré par l' CloudWatchagent sur tous les hôtes EC2. Par exemple, cinq instances EC2 produisent moins de 1000 octets par jour. Une fois configuré, vous pouvez vérifier votre utilisation d'octets à l'aide de la ` IncomingBytes` métrique, distribuée par CloudWatch Logs. Veillez à sélectionner le groupe de journaux approprié.

1. Dans la section **Journaux**, pour **Stockage/archivage des journaux (journaux standard et fournis)**, sélectionnez **Yes to Store Logs: Assuming 1 month retention**. Modifiez cette valeur si vous décidez d’apporter des modifications personnalisées à la période de rétention.

1. Dans la section **Tableaux de bord et alarmes**, pour **Nombre de tableaux de bord**, entrez **1**.

1. Vous pouvez voir vos coûts mensuels estimés en bas du calculateur de prix.

## CloudWatch configuration de l'agent pour cette solution
<a name="Solution-NGINX-CloudWatch-Agent"></a>

L' CloudWatch agent est un logiciel qui s'exécute de manière continue et autonome sur vos serveurs et dans des environnements conteneurisés. Il collecte des métriques, des journaux et des traces à partir de votre infrastructure et de vos applications et les envoie à CloudWatch X-Ray.

Pour plus d'informations sur l' CloudWatch agent, consultez[Collectez des métriques, des journaux et des traces à l'aide de l' CloudWatch agent](Install-CloudWatch-Agent.md).

La configuration de l’agent dans cette solution collecte un ensemble de métriques pour vous aider à démarrer la surveillance et l’observation de votre charge de travail NGINX. L' CloudWatch agent peut être configuré pour collecter plus de métriques NGINX que ce que le tableau de bord affiche par défaut. Pour obtenir une liste de toutes les métriques NGINX que vous pouvez collecter, consultez [Métriques pour NGINX OSS](https://github.com/nginxinc/nginx-prometheus-exporter?tab=readme-ov-file#exported-metrics).

Avant de configurer l' CloudWatch agent, vous devez d'abord configurer NGINX pour exposer ses métriques. Deuxièmement, vous devez installer et configurer l’exportateur de métriques tiers Prometheus.

### Exposer les métriques NGINX
<a name="Solution-NGINX-Expose-Metrics"></a>

**Note**  
 Les commandes suivantes sont pour Linux. Consultez la [page NGINX pour Windows](https://nginx.org/en/docs/windows.html) pour les commandes équivalentes dans Windows Server. 

Vous devez d’abord activer le module `stub_status`. Ajoutez un nouveau bloc d’emplacement dans votre fichier de configuration NGINX. Ajoutez les lignes suivantes dans le bloc `server` de votre `nginx.conf` pour activer le module `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
        }
```

Avant de recharger NGINX, validez votre configuration NGINX :

```
sudo nginx -t
```

Cette commande de validation permet d’éviter toute erreur imprévue qui pourrait entraîner la fermeture de votre site Web. L’exemple suivant montre une réponse positive :

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

Une fois que vous avez validé la configuration mise à jour, rechargez NGINX (aucune sortie n’est attendue) :

```
sudo systemctl reload nginx
```

Cette commande demande au processus NGINX de recharger la configuration. Les rechargements sont plus gracieux qu’un redémarrage complet. Un rechargement démarre le nouveau processus de travailleur avec une nouvelle configuration, en arrêtant les anciens processus de travailleur de manière élégante.

Testez le point de terminaison de statut de NGINX :

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

L’exemple suivant montre une réponse positive :

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

L’exemple suivant montre une réponse d’échec (revoyez les étapes précédentes avant de continuer) :

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

### Configurer l’exportateur de métriques Prometheus
<a name="Solution-NGINX-Configure-Prometheus"></a>

[Téléchargez la dernière version de l'exportateur NGINX Prometheus depuis le dépôt officiel. GitHub ](https://github.com/nginxinc/nginx-prometheus-exporter/releases) Vous devez télécharger le binaire correspondant à votre plateforme.

L'exemple suivant illustre les commandes pour 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*
```

Exécutez l’exportateur Prometheus et dirigez-le vers la page de statut du stub NGINX :

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

L’exemple suivant démontre une réponse (ID et PID de la tâche d’arrière-plan) :

```
[1] 74699
```

### Testez le point de terminaison Prometheus NGINX
<a name="Solution-NGINX-Test-Prometheus"></a>

Validez que l’exportateur Prometheus NGINX a commencé à exposer les métriques pertinentes :

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

L’exemple suivant montre une réponse positive :

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

### Configuration de l’agent pour cette solution
<a name="Solution-NGINX-Agent-Config-Intro"></a>

Les métriques collectées par l’agent sont définies dans la configuration de l’agent. La solution fournit des configurations d’agent pour collecter les métriques recommandées avec des dimensions appropriées pour le tableau de bord de la solution.

Les étapes du déploiement de la solution sont décrites plus loin dans [Déployer l’agent pour votre solution](#Solution-NGINX-Agent-Deploy). Les informations suivantes ont pour but de vous aider à comprendre comment personnaliser la configuration de l’agent en fonction de votre environnement.

Vous devez adapter certaines parties des configurations de l’agent et de Prometheus à votre environnement, comme le numéro de port utilisé par l’exportateur Prometheus.

Le port utilisé par l’exportateur Prometheus peut être vérifié à l’aide de la commande suivante :

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

L’exemple suivant montre une réponse (voir la valeur du port 9113) :

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

### Configuration de l’agent pour les hôtes NGINX
<a name="Solution-NGINX-Agent-Config"></a>

L' CloudWatch agent chargé de surveiller Prometheus a besoin de deux configurations pour récupérer les métriques Prometheus. Chaque configuration sera stockée en tant que paramètre distinct dans le magasin de paramètres de SSM, comme détaillé plus loin dans [Étape 2 : enregistrer le fichier de configuration d' CloudWatch agent recommandé dans le magasin de paramètres de Systems Manager](#Solution-NGINX-Agent-Step2).

La première configuration est pour l’exportateur Prometheus, comme indiqué dans la documentation [scrape\$1config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) de Prometheus. La deuxième configuration concerne l' CloudWatch agent.

 **Configuration de Prometheus** 

*port-number*Remplacez-le par le port de votre serveur.

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

 **CloudWatch configuration de l'agent** 

Conformément à la configuration précédente de l' CloudWatch agent, ces métriques sont publiées via CloudWatch des journaux en utilisant le [format de métrique intégré (EMF)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Specification.html). Ces journaux sont configurés pour utiliser le groupe de journaux ` nginx`. Vous pouvez le personnaliser *log\$1group\$1name* avec un nom différent qui représente les CloudWatch journaux.

 Si vous utilisez Windows Server, définissez *prometheus\$1config\$1path* la configuration suivante sur`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"]]
                  }
              ]
          }
      }
  }
}
}
```

## Déployer l’agent pour votre solution
<a name="Solution-NGINX-Agent-Deploy"></a>

Il existe plusieurs approches pour installer l' CloudWatch agent, selon le cas d'utilisation. Nous vous recommandons d’utiliser Systems Manager pour cette solution. Il fournit une expérience de console et simplifie la gestion d'un parc de serveurs gérés au sein d'un seul AWS compte. Les instructions de cette section utilisent Systems Manager et sont destinées aux situations où l' CloudWatch agent n'est pas exécuté avec des configurations existantes. Vous pouvez vérifier si l' CloudWatch agent est en cours d'exécution en suivant les étapes décrites dans[Vérifiez que l' CloudWatch agent est en cours d'exécution](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running).

Si vous exécutez déjà l' CloudWatch agent sur les hôtes EC2 sur lesquels la charge de travail est déployée et que vous gérez les configurations de l'agent, vous pouvez ignorer les instructions de cette section et suivre votre mécanisme de déploiement existant pour mettre à jour la configuration. Assurez-vous de fusionner les nouvelles configurations d' CloudWatch agent et de Prometheus avec vos configurations existantes, puis de déployer les configurations fusionnées. Si vous utilisez Systems Manager pour stocker et gérer la configuration de l' CloudWatch agent, vous pouvez fusionner la configuration avec la valeur de paramètre existante. Pour plus d'informations, consultez [la section Gestion des fichiers de configuration des CloudWatch agents](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html).

**Note**  
L'utilisation de Systems Manager pour déployer les configurations d' CloudWatch agent suivantes remplacera ou remplacera toute configuration d' CloudWatch agent existante sur vos instances EC2. Vous pouvez modifier cette configuration pour l’adapter à votre environnement unique ou à votre cas d’utilisation. Les métriques définies dans la configuration sont le minimum requis pour le tableau de bord fourni la solution.

Le processus de déploiement comprend les étapes suivantes :
+ Étape 1 : assurez-vous que les instances EC2 cibles disposent des autorisations IAM requises.
+ Étape 2 : stockez le fichier de configuration de l’agent recommandé dans le magasin de paramètres de Systems Manager.
+ Étape 3 : installez l' CloudWatch agent sur une ou plusieurs instances EC2 à l'aide d'une CloudFormation pile.
+ Étape 4 : vérifiez que l’installation de l’agent est configurée correctement.

### Étape 1 : assurez-vous que les instances EC2 cibles disposent des autorisations IAM requises.
<a name="Solution-NGINX-Agent-Step1"></a>

Vous devez autoriser Systems Manager à installer et configurer l' CloudWatch agent. Vous devez autoriser l' CloudWatch agent à publier des données télémétriques depuis votre instance EC2 vers. CloudWatch Vous devez également accorder à l' CloudWatch agent un accès en lecture EC2. L'accès en lecture EC2 est requis pour que l'EC2 InstanceId soit ajouté en tant que dimension métrique. Cette exigence supplémentaire est motivée par `prometheus.yaml` comme détaillé ci-dessus parce qu’il utilise ` __meta_ec2_instance_id` via EC2 Service Discovery.

**Assurez-vous que les politiques Amazon et **Amazon SSMManaged InstanceCore** IAM sont attachées au ** CloudWatchAgentServerPolicy**rôle EC2 ReadOnlyAccess IAM attaché à l'instance.**
+ Une fois le rôle créé, attachez-le à vos instances EC2. Pour attacher un rôle à une instance EC2, suivez les étapes de la section [Attacher un rôle IAM à une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attach-iam-role.html).

### Étape 2 : enregistrer le fichier de configuration d' CloudWatch agent recommandé dans le magasin de paramètres de Systems Manager
<a name="Solution-NGINX-Agent-Step2"></a>

Parameter Store simplifie l'installation de l' CloudWatch agent sur une instance EC2 en stockant et en gérant de manière sécurisée les paramètres de configuration, éliminant ainsi le besoin de valeurs codées en dur. Cela garantit un processus de déploiement plus sûr et plus flexible, permettant une gestion centralisée et des mises à jour plus faciles des configurations sur plusieurs instances.

Procédez comme suit pour enregistrer le fichier de configuration d' CloudWatch agent recommandé en tant que paramètre dans Parameter Store.

**Pour créer le fichier de configuration de CloudWatch l'agent en tant que paramètre**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Vérifiez que la région sélectionnée dans la console est celle où NGINX est exécuté.

1. Dans le volet de navigation, sélectionnez **Gestion des applications**, **Magasin de paramètres**

1. Suivez ces étapes pour créer un nouveau paramètre pour la configuration.

   1. Sélectionnez **Create parameter** (Créer un paramètre).

   1. Dans le champ **Nom**, entrez un nom que vous utiliserez pour référencer le fichier de configuration de l' CloudWatch agent lors des étapes ultérieures. Par exemple, ** AmazonCloudWatch-NGINX-CloudWatchAgent-Configuration**.

   1. (Facultatif) Dans la zone **Description**, saisissez une description pour le paramètre.

   1. Pour **Niveau de paramètre**, choisissez **Standard**.

   1. Pour **Type**, choisissez **String** (Chaîne).

   1. Pour **Type de données**, choisissez **texte**.

   1. Dans la case **Valeur**, collez le bloc JSON correspondant qui a été répertorié dans [Configuration de l’agent pour les hôtes NGINX](#Solution-NGINX-Agent-Config). Personnalisez les paramètres selon vos besoins. Par exemple, le nom `log_group_name`. 

   1. Sélectionnez **Create parameter** (Créer un paramètre).

**Pour créer le fichier de configuration Prometheus en tant que paramètre**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le volet de navigation, sélectionnez **Gestion des applications**, **Magasin de paramètres**

1. Suivez ces étapes pour créer un nouveau paramètre pour la configuration.

   1. Sélectionnez **Create parameter** (Créer un paramètre).

   1. Dans la zone **Nom**, saisissez un nom que vous utiliserez pour référencer le fichier de configuration dans les étapes suivantes. Par exemple, ** AmazonCloudWatch-NGINX-Prometheus-Configuration**.

   1. (Facultatif) Dans la zone **Description**, saisissez une description pour le paramètre.

   1. Pour **Niveau de paramètre**, choisissez **Standard**.

   1. Pour **Type**, choisissez **String** (Chaîne).

   1. Pour **Type de données**, choisissez **texte**.

   1. Dans la case **Valeur**, collez le bloc YAML correspondant qui a été répertorié dans [Configuration de l’agent pour les hôtes NGINX](#Solution-NGINX-Agent-Config). Personnalisez les paramètres selon vos besoins. Par exemple, le numéro de port correspondant selon `targets`.

   1. Sélectionnez **Create parameter** (Créer un paramètre).

### Étape 3 : Installation de l' CloudWatch agent et application de la configuration à l'aide d'un CloudFormation modèle
<a name="Solution-NGINX-Agent-Step3"></a>

Vous pouvez l'utiliser AWS CloudFormation pour installer l'agent et le configurer de manière à utiliser la configuration d' CloudWatch agent que vous avez créée lors des étapes précédentes.

**Pour installer et configurer l' CloudWatch agent pour cette solution**

1. Ouvrez l'assistant de **création CloudFormation rapide d'une pile** en utilisant ce lien : [ https://console.aws.amazon.com/cloudformation/accueil ? \$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. Vérifiez que la région sélectionnée sur la console est la région où la charge de travail NGINX s’exécute.

1. Pour **Nom de la pile**, entrez un nom pour identifier cette pile, par exemple ** CWAgentInstallationStack**.

1. Dans la section **Paramètres**, indiquez les éléments suivants :

   1. Pour **CloudWatchAgentConfigSSM**, entrez le nom du AWS Systems Manager paramètre pour la configuration de l'agent que vous avez créée précédemment, par exemple** AmazonCloudWatch-NGINX-CloudWatchAgent-Configuration**.

   1. Pour **PrometheusConfigSSM**, entrez le nom du AWS Systems Manager paramètre pour la configuration de l'agent que vous avez créée précédemment, par exemple** AmazonCloudWatch-NGINX-Prometheus-Configuration**.

   1. Pour sélectionner les instances cibles, vous avez deux options.

      1. Pour **InstanceIds**, spécifiez une liste séparée par IDs des virgules d'instances IDs où vous souhaitez installer l' CloudWatch agent avec cette configuration. Vous pouvez répertorier une seule instance ou plusieurs instances.

      1. Si vous déployez à grande échelle, vous pouvez spécifier le ** TagKey**et le correspondant **TagValue**pour cibler toutes les instances EC2 avec cette balise et cette valeur. Si vous spécifiez un ** TagKey**, vous devez spécifier un correspondant **TagValue**. (Pour un groupe Auto Scaling, spécifiez **aws:autoscaling:groupName** le **TagKey**et spécifiez le nom du groupe Auto Scaling **TagValue**à déployer sur toutes les instances du groupe Auto Scaling.)

1. Examinez les paramètres, puis choisissez **Créer la pile**.

Si vous voulez d’abord modifier le fichier modèle pour le personnaliser, choisissez l’option **Charger un fichier modèle** sous **Assistant de création de pile** pour charger le modèle modifié. Pour plus d'informations, consultez [Création d'une pile sur CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Vous pouvez utiliser le lien suivant pour télécharger le modèle : [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). 

**Note**  
Une fois cette étape terminée, ce paramètre Systems Manager sera associé aux CloudWatch agents exécutés dans les instances ciblées. Cela signifie que :  
Si le paramètre Systems Manager est supprimé, l’agent s’arrêtera.
Si le paramètre Systems Manager est modifié, les modifications de configuration s’appliqueront automatiquement à l’agent à la fréquence planifiée qui est de 30 jours par défaut.
Si vous voulez appliquer immédiatement les modifications apportées à ce paramètre Systems Manager, vous devez exécuter à nouveau cette étape. Pour plus d’informations sur les associations, consultez [Travailler avec des associations dans Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html).

### Étape 4 : vérifiez que la configuration de l’agent est correcte
<a name="Solution-NGINX-Agent-Step4"></a>

Vous pouvez vérifier si l' CloudWatch agent est installé en suivant les étapes décrites dans[Vérifiez que l' CloudWatch agent est en cours d'exécution](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running). Si l' CloudWatch agent n'est pas installé et n'est pas en cours d'exécution, assurez-vous que tout est correctement configuré.
+ Assurez-vous d’avoir attaché un rôle avec les autorisations correctes pour l’instance EC2, comme décrit dans [Étape 1 : assurez-vous que les instances EC2 cibles disposent des autorisations IAM requises.](#Solution-NGINX-Agent-Step1).
+ Assurez-vous d’avoir correctement configuré le fichier JSON pour le paramètre Systems Manager. Suivez les étapes de [Résolution des problèmes liés à l'installation de CloudWatch l'agent avec CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md#CloudWatch-Agent-CloudFormation-troubleshooting).

Si tout est correctement configuré, vous devriez voir les métriques NGINX publiées sur. CloudWatch Vous pouvez consulter la CloudWatch console pour vérifier qu'ils sont publiés.

**Pour vérifier que les métriques NGINX sont publiées sur CloudWatch**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Choisissez **Métriques**, **Toutes les métriques**.

1. Assurez-vous d'avoir sélectionné la région dans laquelle vous avez déployé la solution, puis choisissez **Espaces de noms personnalisés**. **CWAgent**

1. Recherchez des métriques telles que `nginx_http_requests_total`. Si vous obtenez des résultats pour ces mesures, celles-ci sont publiées sur CloudWatch.

## Créer le tableau de bord de la solution NGINX
<a name="Solution-NGINX-Dashboard"></a>

Le tableau de bord fourni par cette solution présente les métriques de la charge de travail NGINX en regroupant et en présentant les métriques de toutes les instances. Le tableau de bord présente une répartition des principaux contributeurs (les 10 premiers par widget de métrique) pour chaque métrique. Cela vous aide à identifier rapidement les valeurs aberrantes ou les instances qui contribuent de manière significative aux métriques observées.

Pour créer le tableau de bord, vous pouvez utiliser les options suivantes :
+ Utilisez CloudWatch la console pour créer le tableau de bord.
+ Utilisez AWS CloudFormation la console pour déployer le tableau de bord.
+ Téléchargez l' AWS CloudFormation infrastructure sous forme de code et intégrez-la dans le cadre de votre automatisation d'intégration continue (CI).

En utilisant la CloudWatch console pour créer un tableau de bord, vous pouvez prévisualiser le tableau de bord avant de le créer et de le débiter.

**Note**  
Le tableau de bord créé avec CloudFormation cette solution affiche les statistiques de la région dans laquelle la solution est déployée. Assurez-vous de créer la CloudFormation pile dans la région où vos métriques NGINX sont publiées.  
Si vous avez spécifié un espace de noms personnalisé autre que `CWAgent` dans la configuration de l' CloudWatch agent, vous devrez modifier le CloudFormation modèle du tableau de bord pour le `CWAgent` remplacer par l'espace de noms personnalisé que vous utilisez.

**Pour créer le tableau de bord via CloudWatch la console**

1. Ouvrez la CloudWatch console **Create Dashboard** en utilisant ce lien : [ https://console.aws.amazon.com/cloudwatch/home ? \$1dashboards ? Modèle de tableau de bord = 2&referrer=os-catalog. NginxOnEc](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=NginxOnEc2&referrer=os-catalog) 

1. Vérifiez que la région sélectionnée sur la console est la région où la charge de travail NGINX s’exécute.

1. Saisissez le nom du tableau de bord, puis choisissez **Créer le tableau de bord**.

   Pour différencier facilement ce tableau de bord de tableaux de bord similaires dans d’autres régions, nous vous recommandons d’inclure le nom de la région dans le nom du tableau de bord, par exemple **NGINXDashboard-us-east-1**.

1. Prévisualisez le tableau de bord et cliquez sur **Enregistrer** pour créer le tableau de bord.

**Pour créer le tableau de bord via CloudFormation**

1. Ouvrez l'assistant de **création CloudFormation rapide d'une pile** en utilisant ce lien : [ https://console.aws.amazon.com/cloudformation/accueil ? \$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. Vérifiez que la région sélectionnée sur la console est la région où la charge de travail NGINX s’exécute.

1. Pour **Nom de la pile**, entrez un nom pour identifier cette pile, par exemple ** NGINXDashboardStack**.

1. Dans la section **Paramètres**, spécifiez le nom du tableau de bord sous le **DashboardName**paramètre.

1. Pour différencier facilement ce tableau de bord de tableaux de bord similaires dans d’autres régions, nous vous recommandons d’inclure le nom de la région dans le nom du tableau de bord, par exemple ** NGINXDashboard-us-east-1**.

1. Validez les capacités d’accès pour les transformateurs sous **Capacités et transformateurs**. Notez que CloudFormation cela n'ajoute aucune ressource IAM.

1. Examinez les paramètres, puis choisissez **Créer la pile**.

1. Une fois que le statut de la pile est **CREATE\$1COMPLETE**, sélectionnez l’onglet **Ressources** sous la pile créée, puis cliquez sur le lien sous **ID physique** pour accéder au tableau de bord. Vous pouvez également accéder au tableau de bord dans la CloudWatch console en choisissant **Tableaux** de bord dans le volet de navigation gauche de la console et en recherchant le nom du tableau de bord sous **Tableaux de bord personnalisés**.

Si vous voulez d’abord modifier le fichier modèle pour le personnaliser, choisissez l’option **Charger un fichier modèle** sous **Assistant de création de pile** pour charger le modèle modifié. Pour plus d'informations, consultez [Création d'une pile sur CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Vous pouvez utiliser le lien suivant pour télécharger le modèle : [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). 

### Démarrer avec le tableau de bord NGINX
<a name="Solution-NGINX-Dashboard-GetStarted"></a>

Voici quelques tâches que vous pouvez essayer avec le nouveau tableau de bord NGINX. Ces tâches vous permettent de valider que le tableau de bord fonctionne correctement et vous donnent une expérience pratique de son utilisation pour surveiller une charge de travail NGINX. Au fur et à mesure de vos essais, vous vous familiariserez avec la navigation dans le tableau de bord et l’interprétation des métriques visualisées.

 **Examiner les métriques de connexion** 

Dans la section **Connexions**, vous pouvez trouver plusieurs métriques clés qui donnent un aperçu de la gestion des connexions client de votre serveur NGINX. La surveillance de ces métriques de connexion peut vous aider à identifier les goulots d’étranglement potentiels, les problèmes de connexion ou les modèles de connexion inattendus.
+ Connexions client acceptées
+ Connexions client actives
+ Connexions client gérées
+ Connexions lisant des requêtes
+ Connexions client inactives
+ Connexions écrivant des réponses

 **Analyser le volume des requêtes HTTP** 

La métrique `request` de la section **Requêtes HTTP** indique le nombre total de requêtes HTTP traitées par le serveur NGINX. Le suivi de cette métrique au fil du temps peut vous aider à comprendre la charge de trafic globale sur votre infrastructure NGINX et à planifier l’allocation des ressources et la mise à l’échelle en conséquence.