

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# CloudWatch Lösung: NGINX-Workload auf Amazon EC2
<a name="Solution-NGINX-On-EC2"></a>

Diese Lösung hilft Ihnen bei der Konfiguration der out-of-the-box Metrikerfassung mithilfe von CloudWatch Agenten für NGINX-Anwendungen, die auf EC2-Instances ausgeführt werden. Allgemeine Informationen zu allen CloudWatch Observability-Lösungen finden Sie unter. [CloudWatch Observability-Lösungen](Monitoring-Solutions.md)

**Topics**
+ [Voraussetzungen](#Solution-NGINX-On-EC2-Requirements)
+ [Vorteile](#Solution-NGINX-On-EC2-Benefits)
+ [Kosten](#Solution-NGINX-On-EC2-Costs)
+ [CloudWatch Agentenkonfiguration für diese Lösung](#Solution-NGINX-CloudWatch-Agent)
+ [Bereitstellung des Agenten für Ihre Lösung](#Solution-NGINX-Agent-Deploy)
+ [Erstellen des NGINX-Lösungs-Dashboards](#Solution-NGINX-Dashboard)

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

Diese Lösung ist für folgende Bedingungen relevant:
+ Unterstützte Versionen: NGINX Version 1.24
+ Computing: Amazon EC2
+ Unterstützt bis zu 500 EC2-Instances für alle NGINX-Workloads in einer bestimmten AWS-Region
+ Aktuelle Version des Agenten CloudWatch 
+ Prometheus Exporter: nginx-prometheus-exporter nginxinc/ (Apache 2.0-Lizenz)
+ Der SSM-Agent ist auf der EC2-Instance installiert
**Anmerkung**  
AWS Systems Manager (SSM-Agent) ist auf einigen [Amazon Machine Images (AMIs)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) vorinstalliert, die von vertrauenswürdigen Drittanbietern AWS bereitgestellt werden. Wenn der Agent nicht installiert ist, können Sie ihn manuell installieren, indem Sie das Verfahren für Ihren Betriebssystemtyp verwenden.  
 [Manuelle Installation und Deinstallation des SSM-Agenten auf EC2-Instances für Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) 
 [Manuelle Installation und Deinstallation des SSM-Agenten auf EC2-Instances für macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html) 
 [Manuelle Installation und Deinstallation des SSM-Agenten auf EC2-Instances für Windows Server](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html) 

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

Die Lösung bietet NGINX-Überwachung und wertvolle Erkenntnisse für die folgenden Anwendungsfälle:
+ Überprüfen Sie die Verbindungsmetriken, um potenzielle Engpässe, Verbindungsprobleme oder unerwartete Nutzung zu erkennen.
+ Analysieren Sie das Volumen der HTTP-Anforderungen, um die Gesamt-Datenverkehrslast auf NGINX zu verstehen.

Im Folgenden sind die Hauptvorteile der Lösung aufgeführt:
+ Automatisiert die Erfassung von Metriken für NGINX mithilfe der CloudWatch Agentenkonfiguration, wodurch die manuelle Instrumentierung entfällt.
+ Bietet ein vorkonfiguriertes, konsolidiertes CloudWatch Dashboard für NGINX-Metriken. Das Dashboard verarbeitet automatisch Metriken von neuen NGINX-EC2-Instances, die mit der Lösung konfiguriert wurden, auch wenn diese Metriken bei der ersten Erstellung des Dashboards noch nicht vorhanden waren.

Die nachfolgende Abbildung ist ein Beispiel eines Dashboards dieser Lösung.

![\[Beispiel-Dashboard für eine NGINX-Lösung.\]](http://docs.aws.amazon.com/de_de/AmazonCloudWatch/latest/monitoring/images/NGINXDashboard.png)


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

Diese Lösung erstellt und nutzt Ressourcen in Ihrem Konto. Ihnen wird die Standardnutzung berechnet, einschließlich der folgenden Kosten:
+ Alle vom CloudWatch Agenten für diese Lösung gesammelten Metriken werden mithilfe des Embedded Metric Format (EMF) in CloudWatch Logs veröffentlicht. Diese CloudWatch Protokolle werden auf der Grundlage ihres Volumens und ihrer Aufbewahrungsdauer berechnet. Daher werden Ihnen keine **PutMetricData**API-Aufrufe für diese Lösung in Rechnung gestellt. Die aus Ihren Protokollen extrahierten und erfassten Metriken werden als benutzerdefinierte Metriken berechnet. Die Zahl der von dieser Lösung zu erfassenden Metriken hängt von der Anzahl der EC2-Hosts ab.
  + Jeder für die Lösung konfigurierte NGINX-EC2-Host veröffentlicht insgesamt acht Metriken.
+ Ein benutzerdefiniertes Dashboard.

Weitere Informationen zur CloudWatch Preisgestaltung finden Sie unter [ CloudWatch Amazon-Preise](https://aws.amazon.com/cloudwatch/pricing/).

Mithilfe des Preisrechners können Sie die ungefähren monatlichen Kosten für die Nutzung dieser Lösung abschätzen.

**Um den Preisrechner zur Schätzung Ihrer monatlichen Kosten für die Lösung zu verwenden**

1. Öffnen Sie den [ CloudWatchAmazon-Preisrechner](https://calculator.aws/#/createCalculator/CloudWatch).

1. **Wählen Sie unter Region** auswählen die Region aus, AWS-Region in der Sie die Lösung bereitstellen möchten.

1. Geben Sie im Abschnitt **Metriken** für die **Anzahl der Metriken** den Wert **8 \$1 number of EC2 instances configured for this solution** ein.

1. Geben Sie im Abschnitt **Logs** für **Standard Logs: Data Ingested** das geschätzte tägliche Protokollvolumen ein, das der CloudWatch Agent auf allen EC2-Hosts generiert. Beispielsweise produzieren fünf EC2-Instances weniger als 1000 Byte pro Tag. Nach der Einrichtung können Sie Ihre Byte-Nutzung anhand der von Logs ` IncomingBytes` bereitgestellten Metrik überprüfen. CloudWatch Achten Sie auf die Auswahl der entsprechenden Protokollgruppe.

1. Wählen Sie im Abschnitt **Protokolle** für **Protokollspeicher/Archivierung (Standard und Vended-Protokolle**) die Option **Yes to Store Logs: Assuming 1 month retention** aus. Ändern Sie diesen Wert, wenn Sie die Aufbewahrungsdauer benutzerdefiniert ändern möchten.

1. Geben Sie im Abschnitt **Dashboards und Alarme** für **Anzahl der Dashboards** **1** ein.

1. Sie finden Ihre geschätzten monatlichen Kosten unten im Preisrechner.

## CloudWatch Agentenkonfiguration für diese Lösung
<a name="Solution-NGINX-CloudWatch-Agent"></a>

Der CloudWatch Agent ist eine Software, die kontinuierlich und autonom auf Ihren Servern und in containerisierten Umgebungen ausgeführt wird. Es sammelt Metriken, Logs und Traces aus Ihrer Infrastruktur und Ihren Anwendungen und sendet sie an CloudWatch X-Ray.

Weitere Informationen über den CloudWatch Agenten finden Sie unter[Erfassen Sie Metriken, Logs und Traces mithilfe des CloudWatch Agenten](Install-CloudWatch-Agent.md).

Die Agentenkonfiguration in dieser Lösung erfasst verschiedene Metriken, die Ihnen den Einstieg in die Überwachung und Beobachtung Ihrer NGINX-Workload erleichtern. Der CloudWatch Agent kann so konfiguriert werden, dass er standardmäßig mehr NGINX-Metriken sammelt, als das Dashboard anzeigt. Eine Liste aller NGINX-Metriken, die Sie erfassen können, finden Sie unter [Metriken für NGINX OSS.](https://github.com/nginxinc/nginx-prometheus-exporter?tab=readme-ov-file#exported-metrics)

Bevor Sie den CloudWatch Agenten konfigurieren, müssen Sie zunächst NGINX so konfigurieren, dass seine Metriken verfügbar gemacht werden. Als Zweites müssen Sie den Prometheus-Metrik-Exporter eines Drittanbieters installieren und konfigurieren.

### Offenlegen von NGINX-Metriken
<a name="Solution-NGINX-Expose-Metrics"></a>

**Anmerkung**  
 Die folgenden Befehle sind für Linux: Suchen Sie auf der [NGINX-für-Windows-Seite](https://nginx.org/en/docs/windows.html) nach entsprechenden Befehlen in Windows Server. 

Sie müssen zunächst das Modul `stub_status` aktivieren. Fügen Sie zu Ihrer NGINX-Konfigurationsdatei einen neuen Standortblock hinzu. Fügen Sie dem `server`-Block Ihres `nginx.conf` die folgenden Zeilen hinzu, um das Modul `stub_status` von NGINX zu aktivieren:

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

Bevor Sie NGINX neu laden, prüfen Sie Ihre NGINX-Konfiguration:

```
sudo nginx -t
```

Dieser Validierungsbefehl hilft beim Vermeiden unvorhergesehener Fehler, die dazu führen können, dass Ihre Website nicht mehr funktioniert. Das nachfolgende Beispiel zeigt eine erfolgreiche Antwort:

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

Nachdem Sie die aktualisierte Konfiguration erfolgreich validiert haben, laden Sie NGINX neu (es wird keine Ausgabe erwartet):

```
sudo systemctl reload nginx
```

Dieser Befehl weist den NGINX-Prozess dazu an, die Konfiguration neu zu laden. Das erneute Laden läuft im Vergleich zu einem vollständigen Neustart reibungsloser. Beim erneuten Laden wird der neue Worker-Prozess mit einer neuen Konfiguration gestartet, wobei alte Worker-Prozesse ordnungsgemäß heruntergefahren werden.

Testen des NGINX-Status-Endpunkts:

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

Das nachfolgende Beispiel zeigt eine erfolgreiche Antwort:

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

Das folgende Beispiel zeigt eine Reaktion auf einen Fehler (prüfen Sie die vorherigen Schritte, bevor Sie fortfahren):

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

### Konfigurieren von Prometheus-Metrik-Exporter
<a name="Solution-NGINX-Configure-Prometheus"></a>

[Laden Sie die neueste Version des NGINX Prometheus Exporter aus dem offiziellen Repository herunter. GitHub ](https://github.com/nginxinc/nginx-prometheus-exporter/releases) Sie müssen dazu die entsprechende Binärdatei für Ihre Plattform herunterladen.

Das folgende Beispiel zeigt Befehle für: 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*
```

Führen Sie den Prometheus-Exporter aus und verweisen Sie ihn an die NGINX-Stub-Statusseite:

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

Im folgenden Beispiel wird eine Antwort gezeigt (Job-ID und PID im Hintergrund):

```
[1] 74699
```

### Testen des NGINX-Prometheus-Endpunkts
<a name="Solution-NGINX-Test-Prometheus"></a>

Sorgen Sie dafür, dass der NGINX-Prometheus-Exporter damit begonnen hat, die relevanten Metriken bereitzustellen:

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

Das nachfolgende Beispiel zeigt eine erfolgreiche Antwort:

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

### Agentenkonfiguration für diese Lösung
<a name="Solution-NGINX-Agent-Config-Intro"></a>

Die vom Agenten zu erfassenden Metriken werden in der Agentenkonfiguration definiert. Die Lösung bietet Agenten-Konfigurationen zum Erfassen der empfohlenen Metriken mit geeigneten Dimensionen für das Dashboard der Lösung.

Die Schritte zur Bereitstellung der Lösung werden weiter unten in [Bereitstellung des Agenten für Ihre Lösung](#Solution-NGINX-Agent-Deploy) beschrieben. Die folgenden Informationen beschreiben, wie Sie die Agentenkonfiguration für Ihre Umgebung anpassen können.

Sie müssen einige Teile der Agent- und Prometheus-Konfigurationen an Ihre Umgebung anpassen, z. B. die vom Prometheus-Exporter verwendete Portnummer.

Der vom Prometheus-Exporter genutzte Port kann mit dem folgenden Befehl überprüft werden:

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

Im folgenden Beispiel wird eine Antwort dargestellt (siehe Portwert 9113):

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

### Agentenkonfiguration für NGINX-Hosts
<a name="Solution-NGINX-Agent-Config"></a>

Der CloudWatch Agent mit Prometheus-Überwachung benötigt zwei Konfigurationen, um die Prometheus-Metriken zu erfassen. Jede Konfiguration wird als separater Parameter im Parameterspeicher von SSM gespeichert, wie weiter unten in [Schritt 2: Speichern Sie die empfohlene CloudWatch Agentenkonfigurationsdatei im Systems Manager Parameter Store](#Solution-NGINX-Agent-Step2) beschrieben.

Die erste Konfiguration ist für den Prometheus Exporter wie in [<scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) in der Prometheus-Dokumentation erläutert. Die zweite Konfiguration ist für den Agenten. CloudWatch 

 **Prometheus-Konfiguration** 

*port-number*Ersetzen Sie es durch den Port Ihres Servers.

```
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 Agent-Konfiguration** 

Gemäß der vorherigen CloudWatch Agentenkonfiguration werden diese Metriken über CloudWatch Logs im [Embedded Metric Format (EMF)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Specification.html) veröffentlicht. Diese Protokolle wurden für die Verwendung der Protokollgruppe ` nginx` konfiguriert. Sie können das *log\$1group\$1name* mit einem anderen Namen anpassen, der für die CloudWatch Protokolle steht.

 Wenn Sie Windows Server verwenden, stellen Sie *prometheus\$1config\$1path* in der folgenden Konfiguration auf ein`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"]]
                  }
              ]
          }
      }
  }
}
}
```

## Bereitstellung des Agenten für Ihre Lösung
<a name="Solution-NGINX-Agent-Deploy"></a>

Je nach Anwendungsfall gibt es mehrere Möglichkeiten, den CloudWatch Agenten zu installieren. Wir empfehlen die Nutzung von Systems Manager für diese Lösung. Es bietet eine Konsolenerfahrung und erleichtert die Verwaltung einer Flotte verwalteter Server innerhalb eines einzigen AWS Kontos. Die Anweisungen in diesem Abschnitt verwenden Systems Manager und sind für den Fall vorgesehen, dass der CloudWatch Agent nicht mit vorhandenen Konfigurationen ausgeführt wird. Sie können überprüfen, ob der CloudWatch Agent ausgeführt wird, indem Sie die Schritte unter befolgen[Stellen Sie sicher, dass der CloudWatch Agent läuft](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running).

Wenn Sie den CloudWatch Agenten bereits auf den EC2-Hosts ausführen, auf denen der Workload bereitgestellt wird, und die Agentenkonfigurationen verwalten, können Sie die Anweisungen in diesem Abschnitt überspringen und Ihren bestehenden Bereitstellungsmechanismus verwenden, um die Konfiguration zu aktualisieren. Stellen Sie sicher, dass Sie neue CloudWatch Agenten- und Prometheus-Konfigurationen mit Ihren vorhandenen Konfigurationen zusammenführen und dann die zusammengeführten Konfigurationen bereitstellen. Wenn Sie Systems Manager verwenden, um die Konfiguration für den CloudWatch Agenten zu speichern und zu verwalten, können Sie die Konfiguration mit dem vorhandenen Parameterwert zusammenführen. Weitere Informationen finden Sie unter [ CloudWatch Agent-Konfigurationsdateien verwalten](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html).

**Anmerkung**  
Wenn Sie Systems Manager zur Bereitstellung der folgenden CloudWatch Agentenkonfigurationen verwenden, werden alle vorhandenen CloudWatch Agentenkonfigurationen auf Ihren EC2-Instances ersetzt oder überschrieben. Sie können diese Konfiguration an Ihre individuelle Umgebung oder Ihren jeweiligen Anwendungsfall anpassen. Die in der Konfiguration definierten Metriken sind die Mindestwerte, die für das Dashboard der Lösung erforderlich sind.

Der Bereitstellungsprozess umfasst die folgenden Schritte:
+ Schritt 1: Stellen Sie sicher, dass die EC2-Ziel-Instances über die erforderlichen IAM-Berechtigungen verfügen.
+ Schritt 2: Speichern Sie die empfohlene Agentenkonfigurationsdatei in Systems Manager Parameter Store.
+ Schritt 3: Installieren Sie den CloudWatch Agenten mithilfe eines Stacks auf einer oder mehreren EC2-Instances. CloudFormation 
+ Schritt 4: Stellen Sie sicher, dass das Agenten-Setup richtig konfiguriert ist

### Schritt 1: Stellen Sie sicher, dass die EC2-Ziel-Instances über die erforderlichen IAM-Berechtigungen verfügen
<a name="Solution-NGINX-Agent-Step1"></a>

Sie müssen Systems Manager die Erlaubnis erteilen, den CloudWatch Agenten zu installieren und zu konfigurieren. Sie müssen dem CloudWatch Agenten die Erlaubnis erteilen, Telemetriedaten von Ihrer EC2-Instance an zu veröffentlichen. CloudWatch Sie müssen dem CloudWatch Agenten auch EC2-Lesezugriff gewähren. EC2-Lesezugriff ist erforderlich, damit EC2 als InstanceId metrische Dimension hinzugefügt werden kann. Diese Zusatzanforderung wird wie oben beschrieben von `prometheus.yaml` bestimmt, da sie` __meta_ec2_instance_id` über die EC2-Serviceerkennung nutzt.

Stellen Sie sicher, dass der IAM-Rolle, die der Instance zugewiesen ist ** CloudWatchAgentServerPolicy**, die Amazon- und ****Amazon SSMManaged InstanceCore EC2 ReadOnlyAccess**** IAM-Richtlinien angehängt sind.
+ Nachdem die Rolle erstellt wurde, weisen Sie Ihren EC2-Instances eine Rolle zu. Um einer EC2-Instance eine Rolle zuzuweisen, folgen Sie den Schritten unter [Anfügen einer IAM-Rolle an eine Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attach-iam-role.html).

### Schritt 2: Speichern Sie die empfohlene CloudWatch Agentenkonfigurationsdatei im Systems Manager Parameter Store
<a name="Solution-NGINX-Agent-Step2"></a>

Parameter Store vereinfacht die Installation des CloudWatch Agenten auf einer EC2-Instance, indem Konfigurationsparameter sicher gespeichert und verwaltet werden, sodass keine hartcodierten Werte erforderlich sind. Das gestaltet den Bereitstellungsprozess sicherer und flexibler und ermöglicht eine zentrale Verwaltung und einfachere Aktualisierungen von Konfigurationen über mehrere Instances hinweg.

Gehen Sie wie folgt vor, um die empfohlene CloudWatch Agent-Konfigurationsdatei als Parameter im Parameter Store zu speichern.

**Um die CloudWatch Agenten-Konfigurationsdatei als Parameter zu erstellen**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Sorgen Sie dafür, dass die ausgewählte Region auf der Konsole die Region ist, in der NGINX ausgeführt wird.

1. Wählen Sie im Navigationsbereich **Anwendungsmanagement**, **Parameter Store** aus

1. Befolgen Sie diese Schritte, um einen neuen Parameter für die Konfiguration zu erstellen.

   1. Wählen Sie **Parameter erstellen** aus.

   1. Geben Sie im Feld **Name** einen Namen ein, mit dem Sie in späteren Schritten auf die CloudWatch Agenten-Konfigurationsdatei verweisen werden. Beispiel, ** AmazonCloudWatch-NGINX-CloudWatchAgent-Configuration**.

   1. (Optional) Geben Sie in das Feld **Beschreibung** eine Beschreibung für den Parameter ein.

   1. Wählen Sie für **Parameterstufe** die Option **Standard** aus.

   1. Wählen Sie unter **Type** (Typ) die Option **String** (Zeichenfolge) aus.

   1. Wählen Sie als **Datentyp** die Option **Text** aus.

   1. Fügen Sie in das Feld **Wert** den entsprechenden JSON-Block ein, der unter [Agentenkonfiguration für NGINX-Hosts](#Solution-NGINX-Agent-Config) aufgeführt war. Nehmen Sie die Anpassungen nach Bedarf vor. Zum Beispiel ist der relevante `log_group_name`. 

   1. Wählen Sie **Parameter erstellen** aus.

**So erstellen Sie die prometheus-Konfigurationsdatei als Parameter**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Anwendungsmanagement**, **Parameter Store** aus

1. Befolgen Sie diese Schritte, um einen neuen Parameter für die Konfiguration zu erstellen.

   1. Wählen Sie **Parameter erstellen** aus.

   1. Geben Sie im Feld **Name** einen Namen ein, mit dem Sie in späteren Schritten die Konfigurationsdatei referenzieren werden. Beispiel, ** AmazonCloudWatch-NGINX-Prometheus-Configuration**.

   1. (Optional) Geben Sie in das Feld **Beschreibung** eine Beschreibung für den Parameter ein.

   1. Wählen Sie für **Parameterstufe** die Option **Standard** aus.

   1. Wählen Sie unter **Type** (Typ) die Option **String** (Zeichenfolge) aus.

   1. Wählen Sie als **Datentyp** die Option **Text** aus.

   1. Fügen Sie in das Feld **Wert** den entsprechenden YAML-Block ein, der unter [Agentenkonfiguration für NGINX-Hosts](#Solution-NGINX-Agent-Config) aufgeführt war. Nehmen Sie die Anpassungen nach Bedarf vor. Zum Beispiel die relevante Portnummer gemäß `targets`.

   1. Wählen Sie **Parameter erstellen** aus.

### Schritt 3: Installieren Sie den CloudWatch Agenten und wenden Sie die Konfiguration mithilfe einer CloudFormation Vorlage an
<a name="Solution-NGINX-Agent-Step3"></a>

Sie können AWS CloudFormation damit den Agenten installieren und ihn so konfigurieren, dass er die CloudWatch Agentenkonfiguration verwendet, die Sie in den vorherigen Schritten erstellt haben.

**Um den CloudWatch Agenten für diese Lösung zu installieren und zu konfigurieren**

1. Öffnen Sie den Assistenten CloudFormation **zum schnellen Erstellen von Stacks** über diesen Link: [ 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. Sorgen Sie dafür, dass die ausgewählte Region auf der Konsole die Region ist, in der die NGINX-Workload ausgeführt wird.

1. Geben Sie unter **Stack-Name** einen Namen für diesen Stack, z. B. ** CWAgentInstallationStack**, ein.

1. Gehen Sie im Abschnitt **Parameter** wie folgt vor:

   1. Geben Sie für **CloudWatchAgentConfigSSM** den Namen des AWS Systems Manager Parameters für die Agentenkonfiguration ein, den Sie zuvor erstellt haben, z. B. ** AmazonCloudWatch-NGINX-CloudWatchAgent-Configuration**

   1. Geben Sie für **PrometheusConfigSSM** den Namen des AWS Systems Manager Parameters für die Agentenkonfiguration ein, die Sie zuvor erstellt haben, z. B. ** AmazonCloudWatch-NGINX-Prometheus-Configuration**

   1. Um die Ziel-Instances auszuwählen, haben Sie zwei Optionen.

      1. Geben Sie für **InstanceIds**eine durch Kommas getrennte Liste der Instanzen eine Liste der Instanzen IDs an, IDs in denen Sie den CloudWatch Agenten mit dieser Konfiguration installieren möchten. Sie können eine einzelne Instance oder mehrere Instances auflisten.

      1. Wenn Sie die Bereitstellung in großem Umfang durchführen, können Sie die ** TagKey**und die entsprechende **TagValue**Option für alle EC2-Instances mit diesem Tag und Wert angeben. Wenn Sie eine angeben ** TagKey**, müssen Sie eine entsprechende **TagValue**angeben. (Geben Sie für eine Auto Scaling Scaling-Gruppe **aws:autoscaling:groupName** für die **TagKey**und den Namen der Auto Scaling Scaling-Gruppe an, die **TagValue**auf allen Instances innerhalb der Auto Scaling Scaling-Gruppe bereitgestellt werden soll.)

1. Überprüfen Sie die Einstellungen und wählen Sie dann **Stack erstellen** aus.

Wenn Sie die Vorlagendatei zuerst bearbeiten möchten, um sie anzupassen, wählen Sie im **Assistenten zum Erstellen von Stacks** die Option **Eine Vorlagendatei hochladen** aus, um die bearbeitete Vorlage hochzuladen. Weitere Informationen finden Sie unter [Einen Stack auf der CloudFormation Konsole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) erstellen. Sie können den folgenden Link verwenden, um die Vorlage herunterzuladen: [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). 

**Anmerkung**  
Nach Abschluss dieses Schritts wird dieser Systems Manager Manager-Parameter den CloudWatch Agenten zugeordnet, die in den Zielinstanzen ausgeführt werden. Dies bedeutet, dass:  
Wenn der Systems-Manager-Parameter gelöscht wird, wird der Agent gestoppt.
Wenn der Systems-Manager-Parameter bearbeitet wird, werden die Konfigurationsänderungen automatisch in der geplanten Häufigkeit, die standardmäßig 30 Tage beträgt, für den Agenten übernommen.
Wenn Sie Änderungen an diesem Systems-Manager-Parameter sofort anwenden möchten, müssen Sie diesen Schritt erneut ausführen. Weitere Informationen über Zuordnungen finden Sie unter [Arbeiten mit Zuordnungen in Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html).

### Schritt 4: Stellen Sie sicher, dass das Agenten-Setup richtig konfiguriert ist
<a name="Solution-NGINX-Agent-Step4"></a>

Sie können überprüfen, ob der CloudWatch Agent installiert ist, indem Sie die Schritte unter befolgen[Stellen Sie sicher, dass der CloudWatch Agent läuft](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running). Wenn der CloudWatch Agent nicht installiert ist und nicht ausgeführt wird, stellen Sie sicher, dass Sie alles richtig eingerichtet haben.
+ Sorgen Sie dafür, dass Sie der EC2-Instance eine Rolle mit den richtigen Berechtigungen zugewiesen haben, wie unter beschrieben [Schritt 1: Stellen Sie sicher, dass die EC2-Ziel-Instances über die erforderlichen IAM-Berechtigungen verfügen](#Solution-NGINX-Agent-Step1).
+ Stellen Sie sicher, dass Sie JSON für den Systems-Manager-Parameter korrekt konfiguriert haben. Führen Sie die Schritte unter [Fehlerbehebung bei der Installation des CloudWatch Agenten mit CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md#CloudWatch-Agent-CloudFormation-troubleshooting) aus.

Wenn alles korrekt eingerichtet ist, sollten Sie sehen, wie die NGINX-Metriken veröffentlicht werden. CloudWatch Sie können in der CloudWatch Konsole nachsehen, ob sie veröffentlicht wurden.

**Um zu überprüfen, ob NGINX-Metriken veröffentlicht werden CloudWatch**

1. Öffnen Sie die CloudWatch Konsole unter. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Wählen Sie **Metriken**, **Alle Metriken** aus.

1. Stellen Sie sicher, dass Sie die Region ausgewählt haben, in der Sie die Lösung bereitgestellt haben, und wählen Sie **Benutzerdefinierte Namespaces**,. **CWAgent**

1. Suchen Sie nach Metriken wie z. B. `nginx_http_requests_total`. Wenn Sie Ergebnisse für diese Metriken sehen, werden die Metriken unter veröffentlicht. CloudWatch

## Erstellen des NGINX-Lösungs-Dashboards
<a name="Solution-NGINX-Dashboard"></a>

Das von dieser Lösung bereitgestellte Dashboard präsentiert NGINX-Workload-Metriken, indem es Metriken für alle Instances aggregiert und präsentiert. Das Dashboard zeigt eine Aufschlüsselung der wichtigsten Faktoren (Top-10-pro-Metrik-Widget) für jede Metrik. Auf diese Weise identifizieren Sie schnell Ausreißer oder Fälle, die erheblich zu den beobachteten Metriken beitragen.

Um das Dashboard zu erstellen, können Sie die folgenden Optionen nutzen.
+ Verwenden Sie die CloudWatch Konsole, um das Dashboard zu erstellen.
+ Verwenden Sie die AWS CloudFormation Konsole, um das Dashboard bereitzustellen.
+ Laden Sie die AWS CloudFormation Infrastruktur als Code herunter und integrieren Sie sie als Teil Ihrer Continuous Integration (CI) -Automatisierung.

Wenn Sie die CloudWatch Konsole zum Erstellen eines Dashboards verwenden, können Sie eine Vorschau des Dashboards anzeigen, bevor Sie es tatsächlich erstellen und bezahlen.

**Anmerkung**  
Das CloudFormation in dieser Lösung erstellte Dashboard zeigt Metriken aus der Region an, in der die Lösung bereitgestellt wird. Stellen Sie sicher, dass Sie den CloudFormation Stack in der Region erstellen, in der Ihre NGINX-Metriken veröffentlicht werden.  
Wenn Sie einen anderen benutzerdefinierten Namespace als `CWAgent` in der CloudWatch Agentenkonfiguration angegeben haben, müssen Sie die CloudFormation Vorlage für das Dashboard so ändern, dass sie durch den von Ihnen verwendeten benutzerdefinierten Namespace `CWAgent` ersetzt wird.

**Um das Dashboard über die Konsole zu erstellen CloudWatch**

1. Öffnen Sie die CloudWatch Konsole **Create Dashboard** über diesen Link: [ https://console.aws.amazon.com/cloudwatch/Home? \$1dashboards? NginxOnEcDashboardTemplate=](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=NginxOnEc2&referrer=os-catalog) 2&referrer=os-catalog. 

1. Sorgen Sie dafür, dass die ausgewählte Region auf der Konsole die Region ist, in der die NGINX-Workload ausgeführt wird.

1. Geben Sie den Namen für das Dashboard ein und wählen Sie dann **Dashboard erstellen** aus.

   Um dieses Dashboard leicht von ähnlichen Dashboards in anderen Regionen zu unterscheiden, empfehlen wir, den Namen der Region in den Namen des Dashboards aufzunehmen, z. B. **NGINXDashboard-us-east-1**.

1. Zeigen Sie eine Vorschau des Dashboards an und wählen Sie **Speichern** aus, um das Dashboard zu erstellen.

**Um das Dashboard zu erstellen über CloudFormation**

1. Öffnen Sie den Assistenten CloudFormation **zum schnellen Erstellen von Stacks** über diesen Link: [ 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. Sorgen Sie dafür, dass die ausgewählte Region auf der Konsole die Region ist, in der die NGINX-Workload ausgeführt wird.

1. Geben Sie unter **Stack-Name** einen Namen für diesen Stack, z. B. ** NGINXDashboardStack**, ein.

1. Geben Sie im Abschnitt **Parameter** den Namen des Dashboards unter dem Parameter an. **DashboardName**

1. Um dieses Dashboard leicht von ähnlichen Dashboards in anderen Regionen zu unterscheiden, empfehlen wir, den Namen der Region in den Namen des Dashboards aufzunehmen, z. B. ** NGINXDashboard-us-east-1**.

1. Bestätigen Sie die Zugriffsmöglichkeiten für Transformationen unter **Funktionen und Transformationen**. Beachten Sie, dass dadurch CloudFormation keine IAM-Ressourcen hinzugefügt werden.

1. Überprüfen Sie die Einstellungen und wählen Sie dann **Stack erstellen** aus.

1. Wenn der Stack-Status **CREATE\$1COMPLETE** lautet, wählen Sie unter dem erstellten Stack die Registerkarte **Ressourcen** und dann den Link unter **Physische ID** aus, um zum Dashboard zu gelangen. Sie können auch in der CloudWatch Konsole auf das Dashboard zugreifen, indem Sie im linken Navigationsbereich der Konsole **Dashboards** auswählen und den Namen des Dashboards unter **Benutzerdefinierte** Dashboards suchen.

Wenn Sie die Vorlagendatei zuerst bearbeiten möchten, um sie anzupassen, wählen Sie im **Assistenten zum Erstellen von Stacks** die Option **Eine Vorlagendatei hochladen** aus, um die bearbeitete Vorlage hochzuladen. Weitere Informationen finden Sie unter [Einen Stack auf der CloudFormation Konsole erstellen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Sie können den folgenden Link verwenden, um die Vorlage herunterzuladen: [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). 

### Erste Schritte mit dem NGINX-Dashboard
<a name="Solution-NGINX-Dashboard-GetStarted"></a>

Hier finden Sie ein paar Aufgaben, die Sie mit dem neuen NGINX-Dashboard ausprobieren können. Mit diesen Aufgaben können Sie prüfen, ob das Dashboard ordnungsgemäß funktioniert, und Sie erhalten praktische Erfahrung mit der Überwachung einer NGINX-Workload. Wenn Sie diese Optionen ausprobieren, werden Sie sich mit der Navigation im Dashboard und der Interpretation der visualisierten Metriken vertraut machen.

 **Überprüfen der Verbindungsmetriken** 

Im Abschnitt **Verbindungen** finden Sie mehrere wichtige Metriken, die Einblicke in die Handhabung der Client-Verbindungen Ihres NGINX-Servers bereitstellen. Durch die Überwachung dieser Verbindungsmetriken können Sie potenzielle Engpässe, Verbindungsprobleme oder unerwartete Verbindungsmuster erkennen.
+ Akzeptierte Client-Verbindungen
+ Aktive Client-Verbindungen
+ Gehandhabte Client-Verbindungen
+ Verbindungen, die Anforderungen lesen
+ Verbindungen von Clients im Leerlauf
+ Verbindungen, die Antworten schreiben

 **Analysieren des Volumens der HTTP-Anforderungen** 

Die `request`-Metrik im Abschnitt **HTTP-Anforderungen** zeigt die Gesamtzahl der vom NGINX-Server verarbeiteten HTTP-Anforderungen. Wenn Sie diese Metrik im Laufe der Zeit nachverfolgen, können Sie die gesamte Datenverkehrsbelastung Ihrer NGINX-Infrastruktur besser verstehen und die Ressourcenzuweisung und Skalierung entsprechend planen.