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
Themen
Voraussetzungen
Diese Lösung ist für folgende Bedingungen relevant:
-
Unterstützte Versionen: NGINX Version 1.24
-
Berechnung: Amazon EC2
-
Unterstützt bis zu 500 EC2 Instanzen für alle NGINX-Workloads in einem bestimmten AWS-Region
-
Aktuelle Version des Agenten CloudWatch
-
Prometheus Exporter: nginx-prometheus-exporter nginxinc/ (Apache 2.0-Lizenz)
-
SSM-Agent ist auf EC2 der Instanz installiert
Anmerkung
AWS Systems Manager (SSM-Agent) ist auf einigen Amazon Machine Images (AMIs) 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.
Vorteile
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.
-
Stellt ein vorkonfiguriertes, konsolidiertes CloudWatch Dashboard für NGINX-Metriken bereit. 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.
Die nachfolgende Abbildung ist ein Beispiel eines Dashboards dieser Lösung.
Kosten
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 PutMetricDataAPI-Aufrufe für diese Lösung in Rechnung gestellt. Die aus Ihren Protokollen extrahierten und erfassten 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
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
-
Öffnen Sie den CloudWatchAmazon-Preisrechner
. -
Wählen Sie unter Region auswählen die Region aus, AWS-Region in der Sie die Lösung bereitstellen möchten.
-
Geben Sie im Abschnitt Metriken für die Anzahl der Metriken den Wert
8 * number of EC2 instances configured for this solutionein. -
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
IncomingBytesMetrik überprüfen. Achten Sie auf die Auswahl der entsprechenden Protokollgruppe. -
Wählen Sie im Abschnitt Protokolle für Protokollspeicher/Archivierung (Standard und Vended-Protokolle) die Option
Yes to Store Logs: Assuming 1 month retentionaus. Ändern Sie diesen Wert, wenn Sie die Aufbewahrungsdauer benutzerdefiniert ändern möchten. -
Geben Sie im Abschnitt Dashboards und Alarme für Anzahl der Dashboards
1ein. -
Sie finden Ihre geschätzten monatlichen Kosten 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 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.
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
Anmerkung
Die folgenden Befehle sind für Linux: Suchen Sie auf der NGINX-für-Windows-Seite
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
Laden Sie die neueste Version des NGINX Prometheus Exporter aus dem offiziellen Repository herunter. GitHub
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
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
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 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
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 beschrieben.
Die erste Konfiguration ist für den Prometheus Exporter wie in <scrape_config>
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-numberrelabel_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 wurden 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"]] } ] } } } } }
Bereitstellung des Agenten für Ihre Lösung
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 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 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 Zielinstanzen ü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 CloudFormation Stacks auf einer oder mehreren EC2 Instances.
-
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.
-
Nachdem die Rolle erstellt wurde, fügen Sie sie Ihren EC2 Instances hinzu. Um einer EC2 Instanz eine Rolle zuzuweisen, folgen Sie den Schritten unter Eine IAM-Rolle an eine Instance anhängen.
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. 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
Öffnen Sie die AWS Systems Manager Konsole unter https://console.aws.amazon.com/systems-manager/
. -
Sorgen Sie dafür, dass die ausgewählte Region auf der Konsole die Region ist, in der NGINX ausgeführt wird.
-
Wählen Sie im Navigationsbereich Anwendungsmanagement, Parameter Store aus
-
Befolgen Sie diese Schritte, um einen neuen Parameter für die Konfiguration zu erstellen.
-
Wählen Sie Parameter erstellen aus.
-
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. -
(Optional) Geben Sie in das Feld Beschreibung eine Beschreibung für den Parameter ein.
-
Wählen Sie für Parameterstufe die Option Standard aus.
-
Wählen Sie unter Type (Typ) die Option String (Zeichenfolge) aus.
-
Wählen Sie als Datentyp die Option Text aus.
-
Fügen Sie in das Feld Wert den entsprechenden JSON-Block ein, der unter Agentenkonfiguration für NGINX-Hosts aufgeführt war. Nehmen Sie die Anpassungen nach Bedarf vor. Zum Beispiel ist der relevante
log_group_name. -
Wählen Sie Parameter erstellen aus.
-
So erstellen Sie die prometheus-Konfigurationsdatei als Parameter
Öffnen Sie die AWS Systems Manager Konsole unter https://console.aws.amazon.com/systems-manager/
. -
Wählen Sie im Navigationsbereich Anwendungsmanagement, Parameter Store aus
-
Befolgen Sie diese Schritte, um einen neuen Parameter für die Konfiguration zu erstellen.
-
Wählen Sie Parameter erstellen aus.
-
Geben Sie im Feld Name einen Namen ein, mit dem Sie in späteren Schritten die Konfigurationsdatei referenzieren werden. Beispiel,
AmazonCloudWatch-NGINX-Prometheus-Configuration. -
(Optional) Geben Sie in das Feld Beschreibung eine Beschreibung für den Parameter ein.
-
Wählen Sie für Parameterstufe die Option Standard aus.
-
Wählen Sie unter Type (Typ) die Option String (Zeichenfolge) aus.
-
Wählen Sie als Datentyp die Option Text aus.
-
Fügen Sie in das Feld Wert den entsprechenden YAML-Block ein, der unter Agentenkonfiguration für NGINX-Hosts aufgeführt war. Nehmen Sie die Anpassungen nach Bedarf vor. Zum Beispiel die relevante Portnummer gemäß
targets. -
Wählen Sie Parameter erstellen aus.
-
Schritt 3: Installieren Sie den CloudWatch Agenten und wenden Sie die Konfiguration mithilfe einer 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
-
Öffnen Sie den 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
. -
Sorgen Sie dafür, dass die ausgewählte Region auf der Konsole die Region ist, in der die NGINX-Workload ausgeführt wird.
-
Geben Sie unter Stack-Name einen Namen für diesen Stack, z. B.
CWAgentInstallationStack, ein. -
Gehen Sie im Abschnitt Parameter wie folgt vor:
-
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 -
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 -
Um die Ziel-Instances auszuwählen, haben Sie zwei Optionen.
-
Geben Sie für InstanceIdseine 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.
-
Wenn Sie die Bereitstellung in großem Umfang durchführen, können Sie die TagKeyund die entsprechenden Optionen angeben, sodass alle EC2 Instanzen mit diesem TagValueTag und Wert als Ziel ausgewählt werden sollen. Wenn Sie eine angeben TagKey, müssen Sie eine entsprechende angeben TagValue. (Geben Sie für eine Auto Scaling Scaling-Gruppe
aws:autoscaling:groupNamefür die TagKeyund den Namen der Auto Scaling Scaling-Gruppe an, die TagValueauf allen Instances innerhalb der Auto Scaling Scaling-Gruppe bereitgestellt werden soll.)
-
-
-
Ü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 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:
-
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.
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.
-
Stellen Sie sicher, dass Sie der EC2 Instanz eine Rolle mit den richtigen Berechtigungen zugewiesen haben, wie unter beschriebenSchritt 1: Stellen Sie sicher, dass die EC2 Zielinstanzen über die erforderlichen IAM-Berechtigungen verfügen.
-
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 aus.
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
Öffnen Sie die CloudWatch Konsole unter. https://console.aws.amazon.com/cloudwatch/
-
Wählen Sie Metriken, Alle Metriken aus.
-
Vergewissern Sie sich, dass Sie die Region ausgewählt haben, in der Sie die Lösung bereitgestellt haben, und wählen Sie Benutzerdefinierte Namespaces,. CWAgent
-
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
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 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
-
Öffnen Sie die CloudWatch Konsole Create Dashboard über diesen Link: https://console.aws.amazon.com/cloudwatch/Home? #dashboards? NginxOnEcDashboardTemplate=
2&referrer=os-catalog. -
Sorgen Sie dafür, dass die ausgewählte Region auf der Konsole die Region ist, in der die NGINX-Workload ausgeführt wird.
-
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. -
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
-
Öffnen Sie den Assistenten 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
. -
Sorgen Sie dafür, dass die ausgewählte Region auf der Konsole die Region ist, in der die NGINX-Workload ausgeführt wird.
-
Geben Sie unter Stack-Name einen Namen für diesen Stack, z. B.
NGINXDashboardStack, ein. -
Geben Sie im Abschnitt Parameter den Namen des Dashboards unter dem Parameter an. DashboardName
-
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. -
Bestätigen Sie die Zugriffsmöglichkeiten für Transformationen unter Funktionen und Transformationen. Beachten Sie, dass dadurch CloudFormation keine IAM-Ressourcen hinzugefügt werden.
-
Überprüfen Sie die Einstellungen und wählen Sie dann Stack erstellen aus.
-
Wenn der Stack-Status CREATE_COMPLETE 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. 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
Erste Schritte mit dem NGINX-Dashboard
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.