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.
Richten Sie die Erfassung von Metriken aus einer EC2 Amazon-Instance mithilfe von Remote Write ein
In diesem Abschnitt wird erklärt, wie Sie einen Prometheus-Server mit Remote-Schreibzugriff in einer Amazon Elastic Compute Cloud (AmazonEC2) -Instance ausführen. Es wird erklärt, wie Sie Metriken aus einer in Go geschriebenen Demo-Anwendung sammeln und sie an einen Workspace in Amazon Managed Service für Prometheus senden.
Voraussetzungen
Wichtig
Bevor Sie beginnen, müssen Sie Prometheus v2.26 oder höher installiert haben. Wir gehen davon aus, dass Sie mit PrometheusEC2, Amazon und Amazon Managed Service for Prometheus vertraut sind. Informationen zur Installation von Prometheus finden Sie unter Erste Schritte
Wenn Sie mit Amazon EC2 oder Amazon Managed Service for Prometheus nicht vertraut sind, empfehlen wir Ihnen, zunächst die folgenden Abschnitte zu lesen:
Eine IAM Rolle für Amazon erstellen EC2
Um Metriken zu streamen, müssen Sie zunächst eine IAM Rolle mit der AWS verwalteten Richtlinie erstellen AmazonPrometheusRemoteWriteAccess. Anschließend können Sie eine Instance mit der Rolle starten und Metriken in Ihren Workspace in Amazon Managed Service für Prometheus streamen.
-
Öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im Navigationsbereich Roles (Rollen) und dann Create role (Rolle erstellen) aus.
-
Wählen Sie als Typ der vertrauenswürdigen Entität AWS -Service aus. Wählen Sie für den Anwendungsfall EC2. aus. Wählen Sie Weiter: Berechtigungen aus.
-
Geben Sie im Suchfeld AmazonPrometheusRemoteWriteAccess ein. Wählen Sie AmazonPrometheusRemoteWriteAccessals Richtlinienname die Option Richtlinie anhängen aus. Wählen Sie Weiter: Tags aus.
-
(Optional) Erstellen Sie IAM Tags für Ihre IAM Rolle. Wählen Sie Weiter: Prüfen aus.
-
Geben Sie einen Namen für die neue Rolle ein. Wählen Sie Create Policy (Richtlinie erstellen) aus.
Starten Sie eine EC2 Amazon-Instance
Um eine EC2 Amazon-Instance zu starten, folgen Sie den Anweisungen unter Starten einer Instance im Amazon Elastic Compute Cloud-Benutzerhandbuch für Linux-Instances.
Setzen Sie die Demo-App ein
Nachdem Sie Ihre IAM Rolle erstellt und eine EC2 Instance mit der Rolle gestartet haben, können Sie eine Demo-Anwendung ausführen, um zu sehen, wie sie funktioniert.
Um eine Demo-Anwendung auszuführen und Metriken zu testen
-
Verwenden Sie die folgende Vorlage, um eine Go-Datei mit dem Namen
main.go
zu erstellen.package main import ( "github.com/prometheus/client_golang/prometheus/promhttp" "net/http" ) func main() { http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8000", nil) }
-
Führen Sie den folgenden Befehl aus, um die richtigen Abhängigkeiten zu installieren.
sudo yum update -y sudo yum install -y golang go get github.com/prometheus/client_golang/prometheus/promhttp
-
Setzen Sie die Demo-App ein.
go run main.go
Die Demo-App sollte auf Port 8000 laufen und alle offengelegten Prometheus-Metriken anzeigen. Das ist ein Beispiel dieser Metriken.
curl -s http://localhost:8000/metrics ... process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gauge process_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gauge process_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gauge process_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gauge process_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gauge process_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gauge promhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# 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
Erstellen eines Workspace in Amazon Managed Service für Prometheus
Um einen Workspace in Amazon Managed Service für Prometheus zu erstellen, folgen Sie den Anweisungen unter Einen Workspace erstellen.
Setzen Sie einen Prometheus-Server ein
-
Verwenden Sie die folgende YAML Beispieldatei als Vorlage, um eine neue Datei mit dem Namen zu erstellen
prometheus.yaml
. Fürurl
, ersetzenmy-region
mit dem Wert für Ihre Region undmy-workspace-id
mit der Workspace-ID, die Amazon Managed Service for Prometheus für Sie generiert hat. Fürregion
, ersetzenmy-region
mit Ihrem Regionswert.Beispiel: YAML Datei
global: scrape_interval: 15s external_labels: monitor: 'prometheus' scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:8000'] remote_write: - url: https://aps-workspaces.
my-region
.amazonaws.com/workspaces/my-workspace-id
/api/v1/remote_write queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500 sigv4: region:my-region
-
Führen Sie den Prometheus-Server aus, um die Metriken der Demo-App an Ihren Workspace in Amazon Managed Service für Prometheus zu senden.
prometheus --config.file=prometheus.yaml
Der Prometheus-Server sollte jetzt die Metriken der Demo-App an Ihren Workspace in Amazon Managed Service für Prometheus senden.