CloudWatch Lösung: NGINX-Workload auf Amazon EC2 - Amazon CloudWatch

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

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

Voraussetzungen

Diese Lösung ist für die folgenden Bedingungen relevant:

Vorteile

Die Lösung ermöglicht NGINX-Überwachung und bietet wertvolle Erkenntnisse für die folgenden Anwendungsfälle:

  • Überprüfen Sie die Verbindungsmetriken, um potenzielle Engpässe, Verbindungsprobleme oder unerwartete Nutzung zu identifizieren.

  • Analysieren Sie das Volumen der HTTP-Anfragen, um die Gesamtverkehrslast auf dem NGINX zu verstehen.

Im Folgenden sind die wichtigsten Vorteile 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 EC2 NGINX-Instanzen, die mit der Lösung konfiguriert wurden, auch wenn diese Metriken bei der ersten Erstellung des Dashboards noch nicht vorhanden waren.

Das folgende Bild ist ein Beispiel für das Dashboard für diese Lösung.

Beispiel-Dashboard für eine NGINX-Lösung.

Kosten

Diese Lösung erstellt und verwendet Ressourcen in Ihrem Konto. Ihnen wird die Standardnutzung in Rechnung gestellt, einschließlich der folgenden Kosten:

  • Alle vom CloudWatch Agenten für diese Lösung gesammelten Metriken werden im 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 PutMetricDataAPI-Aufrufe für diese Lösung in Rechnung gestellt. Die aus Ihren Protokollen extrahierten und aufgenommenen Metriken werden als benutzerdefinierte Metriken berechnet. Die Anzahl der von dieser Lösung verwendeten Metriken hängt von der Anzahl der EC2 Hosts ab.

    • Jeder für die Lösung konfigurierte EC2 NGINX-Host veröffentlicht insgesamt acht Metriken.

  • Ein benutzerdefiniertes Dashboard.

Weitere Informationen zur CloudWatch Preisgestaltung finden Sie unter CloudWatch Amazon-Preise.

Mit dem Preisrechner 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 Lösungskosten zu verwenden
  1. Öffnen Sie den CloudWatchAmazon-Preisrechner.

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

  3. Geben Sie im Abschnitt Metriken für Anzahl der Metriken den Wert ein8 * number of EC2 instances configured for this solution.

  4. Geben Sie im Abschnitt Protokolle für Standardprotokolle: Aufgenommene Daten 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 CloudWatch Logs bereitgestellten IncomingBytes Metrik überprüfen. Achten Sie darauf, die entsprechende Protokollgruppe auszuwählen.

  5. Wählen Sie im Abschnitt Logs für Log Storage/Archival (Standard und Vended Logs) die Option aus. Yes to Store Logs: Assuming 1 month retention Ändern Sie diesen Wert, wenn Sie benutzerdefinierte Änderungen an der Aufbewahrungsdauer vornehmen möchten.

  6. Geben Sie im Abschnitt Dashboards und Alarme für Anzahl der Dashboards den Wert ein. 1

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

CloudWatch Agentenkonfiguration für diese Lösung

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 unterErfassen Sie mithilfe des CloudWatch Agenten Metriken, Protokolle und Traces.

Die Agentenkonfiguration in dieser Lösung erfasst eine Reihe von Metriken, die Ihnen den Einstieg in die Überwachung und Beobachtung Ihres NGINX-Workloads 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 sammeln können, finden Sie unter Metriken für NGINX OSS.

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

Machen Sie NGINX-Metriken verfügbar

Anmerkung

Die folgenden Befehle gelten für Linux. Suchen Sie auf der Seite NGINX für Windows nach entsprechenden Befehlen in Windows Server.

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

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, überprüfen Sie Ihre NGINX-Konfiguration:

sudo nginx -t

Dieser Validierungsbefehl hilft dabei, unvorhergesehene Fehler zu vermeiden, die dazu führen können, dass Ihre Website nicht mehr funktioniert. Das folgende 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

Sobald 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 an, die Konfiguration neu zu laden. Das Neuladen ist im Vergleich zu einem vollständigen Neustart reibungsloser. Beim Neuladen wird der neue Worker-Prozess mit einer neuen Konfiguration gestartet, wodurch alte Worker-Prozesse ordnungsgemäß heruntergefahren werden.

Testen Sie den NGINX-Status-Endpunkt:

curl http://127.0.0.1/nginx_status

Das folgende 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 (überprü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> ...

Prometheus-Metrik-Exporter konfigurieren

Laden Sie die neueste Version des NGINX Prometheus Exporter aus dem offiziellen Repository herunter. GitHub Sie müssen 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 auf die NGINX-Stub-Statusseite:

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

Das folgende Beispiel zeigt eine Antwort (Job-ID und PID im Hintergrund):

[1] 74699

Testen Sie den NGINX Prometheus-Endpunkt

Stellen Sie sicher, dass der NGINX Prometheus-Exporter damit begonnen hat, die relevanten Metriken bereitzustellen:

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

Das folgende 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

Die vom Agenten gesammelten Metriken sind in der Agentenkonfiguration definiert. Die Lösung bietet Agentenkonfigurationen zur Erfassung der empfohlenen Metriken mit geeigneten Dimensionen für das Dashboard der Lösung.

Die Schritte zur Bereitstellung der Lösung werden weiter unten in beschriebenStellen Sie den Agenten für Ihre Lösung bereit. Die folgenden Informationen sollen Ihnen helfen zu verstehen, wie Sie die Agentenkonfiguration an 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 verwendete Port kann mit dem folgenden Befehl überprüft werden:

sudo netstat -antp | grep nginx-prom

Das folgende Beispiel zeigt eine Antwort (siehe Portwert 9113):

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

Agentenkonfiguration für NGINX-Hosts

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 beschrieben wird. Schritt 2: Speichern Sie die empfohlene CloudWatch Agentenkonfigurationsdatei im Systems Manager Parameter Store

Die erste Konfiguration ist für den Prometheus-Exporter, wie in der scrape_config-Dokumentation von Prometheus dokumentiert. Die zweite Konfiguration ist für den Agenten. CloudWatch

Prometheus-Konfiguration

port-numberErsetzen 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) veröffentlicht. Diese Protokolle sind für die Verwendung der Protokollgruppe nginx konfiguriert. Sie können das log_group_name mit einem anderen Namen anpassen, der für die CloudWatch Protokolle steht.

Wenn Sie Windows Server verwenden, stellen Sie prometheus_config_path in der folgenden Konfiguration auf einC:\\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"]] } ] } } } } }

Stellen Sie den Agenten für Ihre Lösung bereit

Je nach Anwendungsfall gibt es mehrere Ansätze für die Installation des CloudWatch Agenten. Wir empfehlen die Verwendung 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 befolgenStellen Sie sicher, dass der CloudWatch Agent läuft.

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

Anmerkung

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

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 im Systems Manager Parameter Store.

  • Schritt 3: Installieren Sie den CloudWatch Agenten mithilfe eines AWS CloudFormation Stacks auf einer oder mehreren EC2 Instanzen.

  • Schritt 4: Stellen Sie sicher, dass das Agenten-Setup richtig konfiguriert ist.

Schritt 1: Stellen Sie sicher, dass die EC2 Zielinstanzen über die erforderlichen IAM-Berechtigungen verfügen

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 Instanz an zu CloudWatch veröffentlichen. Sie müssen dem CloudWatch Agenten auch EC2 Lesezugriff gewähren. EC2 Lesezugriff ist erforderlich EC2 InstanceId , damit die Dimension als Metrik hinzugefügt werden kann. Diese zusätzliche Anforderung wird prometheus.yaml wie oben beschrieben bestimmt, da sie __meta_ec2_instance_id über EC2 Service Discovery verwendet wird.

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.

Schritt 2: Speichern Sie die empfohlene CloudWatch Agentenkonfigurationsdatei im Systems Manager Parameter Store

Parameter Store vereinfacht die Installation des CloudWatch Agenten auf einer EC2 Instanz, indem Konfigurationsparameter sicher gespeichert und verwaltet werden, sodass keine hartcodierten Werte erforderlich sind. Dies gewährleistet einen sichereren und flexibleren Bereitstellungsprozess, ermöglicht eine zentrale Verwaltung und einfachere Aktualisierungen von Konfigurationen über mehrere Instanzen hinweg.

Gehen Sie wie folgt vor, um die empfohlene CloudWatch Agentenkonfigurationsdatei 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/.

  2. Stellen Sie sicher, dass die ausgewählte Region auf der Konsole die Region ist, in der NGINX ausgeführt wird.

  3. Wählen Sie im Navigationsbereich Application Management, Parameter Store

  4. Gehen Sie wie folgt vor, um einen neuen Parameter für die Konfiguration zu erstellen.

    1. Wählen Sie Parameter erstellen aus.

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

    3. (Optional) Geben Sie im Feld Beschreibung eine Beschreibung für den Parameter ein.

    4. Wählen Sie für Parameterebene die Option Standard aus.

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

    6. Wählen Sie als Datentyp Text aus.

    7. Fügen Sie in das Feld Wert den entsprechenden JSON-Block ein, der unter aufgeführt warAgentenkonfiguration für NGINX-Hosts. Stellen Sie sicher, dass Sie die Anpassungen nach Bedarf vornehmen. Zum Beispiel das relevantelog_group_name.

    8. Wählen Sie Parameter erstellen aus.

Um die Prometheus-Konfigurationsdatei als Parameter zu erstellen
  1. Öffnen Sie die AWS Systems Manager Konsole unter. https://console.aws.amazon.com/systems-manager/

  2. Wählen Sie im Navigationsbereich Application Management, Parameter Store

  3. Gehen Sie wie folgt vor, um einen neuen Parameter für die Konfiguration zu erstellen.

    1. Wählen Sie Parameter erstellen aus.

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

    3. (Optional) Geben Sie im Feld Beschreibung eine Beschreibung für den Parameter ein.

    4. Wählen Sie für Parameterebene die Option Standard aus.

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

    6. Wählen Sie als Datentyp Text aus.

    7. Fügen Sie in das Feld Wert den entsprechenden YAML-Block ein, der in der Agentenkonfiguration für NGINX-Hosts aufgeführt war. Stellen Sie sicher, dass Sie die Anpassungen nach Bedarf vornehmen. Zum Beispiel die entsprechende Portnummer gemäßtargets.

    8. Wählen Sie Parameter erstellen aus.

Schritt 3: Installieren Sie den CloudWatch Agenten und wenden Sie die Konfiguration mithilfe einer AWS CloudFormation Vorlage an

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 AWS CloudFormation Quick Create Stack Wizard über diesen Link: 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.

  2. Stellen Sie sicher, dass die ausgewählte Region auf der Konsole die Region ist, in der der NGINX-Workload ausgeführt wird.

  3. Geben Sie unter Stackname einen Namen zur Identifizierung dieses Stacks ein, z. B. CWAgentInstallationStack

  4. Geben Sie im Abschnitt Parameter Folgendes an:

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

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

    3. Um die Zielinstanzen auszuwählen, haben Sie zwei Möglichkeiten.

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

      2. Wenn Sie die Bereitstellung in großem Umfang durchführen, können Sie die TagKeyund die entsprechenden Optionen angeben TagValue, sodass alle EC2 Instanzen mit diesem Tag und Wert als Ziel ausgewählt werden. Wenn Sie eine angeben TagKey, müssen Sie eine entsprechende angeben TagValue. (Geben Sie für eine Auto Scaling Scaling-Gruppe aws:autoscaling:groupName für die TagKeyund den Namen der Auto Scaling Scaling-Gruppe an, die TagValueauf allen Instances innerhalb der Auto Scaling Scaling-Gruppe bereitgestellt werden soll.)

  5. Überprüfen Sie die Einstellungen und wählen Sie dann Stack erstellen.

Wenn Sie die Vorlagendatei zunächst bearbeiten möchten, um sie anzupassen, wählen Sie unter Assistent zum Erstellen von Stacks die Option Vorlagendatei hochladen, um die bearbeitete Vorlage hochzuladen. Weitere Informationen finden Sie unter Einen Stack auf der AWS CloudFormation Konsole 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.

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:

  1. Wenn der Systems Manager Manager-Parameter gelöscht wird, wird der Agent gestoppt.

  2. Wenn der Systems Manager 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.

  3. Wenn Sie Änderungen an diesem Systems Manager Manager-Parameter sofort anwenden möchten, müssen Sie diesen Schritt erneut ausführen. Weitere Informationen zu Zuordnungen finden Sie unter Arbeiten mit Zuordnungen in Systems Manager.

Schritt 4: Stellen Sie sicher, dass das Agenten-Setup richtig konfiguriert ist

Sie können überprüfen, ob der CloudWatch Agent installiert ist, indem Sie die Schritte unter befolgenStellen Sie sicher, dass der CloudWatch Agent läuft. Wenn der CloudWatch Agent nicht installiert ist und nicht ausgeführt wird, stellen Sie sicher, dass Sie alles richtig eingerichtet haben.

Wenn alles korrekt eingerichtet ist, sollten Sie sehen, auf welcher Seite 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/

  2. Wählen Sie Metriken, Alle Metriken aus.

  3. Vergewissern Sie sich, dass Sie die Region ausgewählt haben, in der Sie die Lösung bereitgestellt haben, und wählen Sie Benutzerdefinierte Namespaces, aus. CWAgent

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

Erstellen Sie das NGINX-Lösungs-Dashboard

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

Um das Dashboard zu erstellen, können Sie die folgenden Optionen verwenden:

  • 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 erstellen und bezahlen.

Anmerkung

Das AWS 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 AWS 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? #dashboards? NginxOnEcDashboardTemplate= 2&referrer=os-catalog.

  2. Stellen Sie sicher, dass die ausgewählte Region auf der Konsole die Region ist, in der der NGINX-Workload ausgeführt wird.

  3. Geben Sie den Namen des Dashboards ein und wählen Sie dann Create Dashboard 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

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

Um das Dashboard zu erstellen, verwenden Sie AWS CloudFormation
  1. Öffnen Sie den Assistenten AWS CloudFormation zum schnellen Erstellen von Stacks über diesen Link: 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.

  2. Stellen Sie sicher, dass die ausgewählte Region auf der Konsole die Region ist, in der der NGINX-Workload ausgeführt wird.

  3. Geben Sie unter Stackname einen Namen zur Identifizierung dieses Stacks ein, z. B. NGINXDashboardStack

  4. Geben Sie im Abschnitt Parameter den Namen des Dashboards unter dem DashboardNameParameter an.

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

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

  7. Überprüfen Sie die Einstellungen und wählen Sie dann Stapel erstellen aus.

  8. Wenn der Stack-Status CREATE_COMPLETE lautet, wählen Sie unter dem erstellten Stack die Registerkarte Ressourcen und dann den Link unter Physikalische ID, 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 zunächst bearbeiten möchten, um sie anzupassen, wählen Sie unter Create Stack Wizard die Option Eine Vorlagendatei hochladen, um die bearbeitete Vorlage hochzuladen. Weitere Informationen finden Sie unter Einen Stack auf der AWS CloudFormation Konsole 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/NGINX_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json.

Beginnen Sie mit dem NGINX-Dashboard

Hier sind ein paar Aufgaben, die Sie mit dem neuen NGINX-Dashboard ausprobieren können. Mit diesen Aufgaben können Sie überprüfen, ob das Dashboard ordnungsgemäß funktioniert, und Sie erhalten praktische Erfahrungen bei der Überwachung eines NGINX-Workloads. Wenn Sie diese ausprobieren, werden Sie sich mit der Navigation im Dashboard und der Interpretation der visualisierten Metriken vertraut machen.

Überprüfen Sie die Verbindungsmetriken

Im Abschnitt Verbindungen finden Sie mehrere wichtige Metriken, die Einblicke in die Handhabung der Client-Verbindungen Ihres NGINX-Servers bieten. Durch die Überwachung dieser Verbindungsmetriken können Sie potenzielle Engpässe, Verbindungsprobleme oder unerwartete Verbindungsmuster identifizieren.

  • Akzeptierte Client-Verbindungen

  • Aktive Client-Verbindungen

  • Verwaltete Client-Verbindungen

  • Verbindungen, Leseanfragen

  • Client-Verbindungen im Leerlauf

  • Verbindungen, die Antworten schreiben

Analysieren Sie das Volumen der HTTP-Anfragen

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