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.
Amazon Managed Service für Prometheus mit AWS Observability Accelerator einrichten
AWS bietet Observability-Tools, einschließlich Überwachung, Protokollierung, Warnmeldungen und Dashboards, für Ihre Amazon Elastic Kubernetes Service (Amazon EKS) -Projekte. Dazu gehören Amazon Managed Service für Prometheus, Amazon Managed Grafana, AWS Distro for OpenTelemetry
AWS Observability Accelerator bietet zwei Collector-Profile für Amazon Managed Service for Prometheus:
-
Verwaltete Metriken (agentenlos) — Verwendet den Amazon Managed Service for Prometheus Collector, einen vollständig verwalteten, agentenlosen Scraper, der außerhalb Ihres Clusters ausgeführt wird. Es müssen keine Collector-Pods verwaltet werden. Nur Metriken.
-
Selbstverwaltet — Stellt einen OpenTelemetry Collector über Helm in Ihrem Cluster bereit. Unterstützt Metriken, Traces (AWS X-Ray) und Logs (Amazon CloudWatch).
In diesem Abschnitt werden beide Optionen beschrieben, beginnend mit dem empfohlenen agentenlosen Ansatz.
Die Terraform-Vorlagen und detaillierte Anweisungen finden Sie auf der Seite AWS Observability Accelerator
Voraussetzungen
Um AWS Observability Accelerator verwenden zu können, müssen Sie über einen vorhandenen Amazon EKS-Cluster verfügen und die folgenden Voraussetzungen erfüllen:
-
AWS CLI— wird verwendet, um AWS Funktionen von der Befehlszeile aus aufzurufen.
-
kubectl
— wird verwendet, um Ihren EKS-Cluster von der Befehlszeile aus zu steuern. -
Terraform
(>= 1.5.0) — wird verwendet, um die Erstellung der Ressourcen für diese Lösung zu automatisieren. Sie müssen für den AWS Anbieter eine IAM-Rolle eingerichtet haben, die Zugriff auf die Erstellung und Verwaltung von Amazon Managed Service for Prometheus, Amazon Managed Grafana und IAM innerhalb Ihres Kontos hat. AWS Weitere Informationen zur Konfiguration des AWS Anbieters für Terraform finden Sie unter AWS Anbieter in der Terraform-Dokumentation.
Verwenden Sie das Beispiel für verwaltete Metriken (ohne Agenten)
In diesem Beispiel wird der Amazon Managed Service for Prometheus Collector verwendet, um Prometheus-Metriken aus Ihrem Amazon EKS-Cluster zu extrahieren, ohne Collector-Pods bereitzustellen. Der Collector benötigt mindestens zwei Subnetze in zwei unterschiedlichen Availability Zones. Weitere Einzelheiten finden Sie im eks-amp-managed
Um das Terraform-Modul zur agentenlosen Infrastrukturüberwachung zu verwenden
-
Klonen Sie das Repo aus dem Ordner, in dem Sie Ihr Projekt erstellen möchten, mit dem folgenden Befehl.
git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git -
Initialisieren Sie Terraform mit den folgenden Befehlen.
cd examples/eks-amp-managed terraform init -
Erstellen Sie eine neue
terraform.tfvarsDatei wie im folgenden Beispiel. Verwenden Sie die AWS Region, Cluster-ID und VPC-Netzwerkdetails für Ihren Amazon EKS-Cluster. Der Collector benötigt mindestens zwei Subnetze in zwei unterschiedlichen Availability Zones.# (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster" # (mandatory) Subnets for the managed scraper (>= 2 AZs) scraper_subnet_ids = ["subnet-aaa", "subnet-bbb"] # (mandatory) Security group allowing scraper access to the EKS API scraper_security_group_ids = ["sg-xxx"] -
Erstellen Sie einen Workspace in Amazon Managed Grafana, wenn Sie noch keinen haben, den Sie verwenden möchten. Informationen zum Erstellen eines neuen Workspace finden Sie unter Erstellen Sie Ihren ersten Workspace im Benutzerhandbuch von Amazon Managed Grafana.
-
Erstellen Sie zwei Variablen für Terraform, um Ihren Grafana-Workspace zu verwenden, indem Sie die folgenden Befehle in der Befehlszeile ausführen. Sie müssen das durch die
grafana-workspace-idID aus Ihrem Grafana-Workspace ersetzen.export TF_VAR_managed_grafana_workspace_id=grafana-workspace-idexport TF_VAR_grafana_api_key=`aws grafana create-workspace-api-key --key-name "observability-accelerator-$(date +%s)" --key-role ADMIN --seconds-to-live 1200 --workspace-id $TF_VAR_managed_grafana_workspace_id --query key --output text` -
[Optional] Um einen vorhandenen Amazon Managed Service for Prometheus Workspace zu verwenden, fügen Sie die ID wie im folgenden Beispiel zur
terraform.tfvarsDatei hinzu und ersetzen Sie die durch Ihre Prometheus-Workspace-ID.prometheus-workspace-idWenn Sie keinen vorhandenen Workspace angeben, wird ein neuer Prometheus-Workspace für Sie erstellt.# (optional) Leave it empty for a new workspace to be created managed_prometheus_workspace_id = "prometheus-workspace-id" -
Stellen Sie die Lösung mit dem folgenden Befehl bereit.
terraform apply -var-file=terraform.tfvars
Dadurch werden Ressourcen in Ihrem AWS Konto erstellt, darunter die folgenden:
-
Ein neuer Workspace in Amazon Managed Service für Prometheus (sofern Sie sich nicht für die Nutzung eines vorhandenen Workspace entschieden haben).
-
Ein Amazon Managed Service for Prometheus Collector (agentenloser Scraper), der so konfiguriert ist, dass er Prometheus-Metriken aus Ihrem Amazon EKS-Cluster ausliest.
-
Prometheus-Aufzeichnungs- und Warnregeln in Ihrem Amazon Managed Service for Prometheus-Workspace.
-
kube-state-metrics und Node-Exporter, der in Ihrem Amazon EKS-Cluster für Infrastrukturmetriken bereitgestellt wird.
-
Neue Amazon-Managed-Grafana-Datenquelle und Dashboards in Ihrem aktuellen Workspace. Die Dashboards werden unter EKS Monitoring aufgeführt.
Alternative: Selbstverwalteter Collector OpenTelemetry
Wenn Sie Ablaufverfolgungen, Protokolle oder die vollständige Kontrolle über die Erfassungspipeline benötigen, verwenden Sie das selbstverwaltete Profil. Dadurch wird ein OpenTelemetry Collector über Helm in Ihrem Amazon EKS-Cluster bereitgestellt, der so konfiguriert ist, dass er Prometheus-Metriken scannt und remote in Amazon Managed Service for Prometheus schreibt. Es unterstützt auch Traces (AWS X-Ray) und Logs (Amazon CloudWatch). Weitere Einzelheiten finden Sie im eks-amp-otel
Um das selbstverwaltete Terraform-Modul zu verwenden
-
Klonen Sie das Repo und initialisieren Sie Terraform.
git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git cd examples/eks-amp-otel terraform init -
Erstellen Sie eine neue
terraform.tfvarsDatei wie im folgenden Beispiel.# (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster" -
Richten Sie Ihren Amazon Managed Grafana-Workspace und Ihren API-Schlüssel mit denselben Schritten ein wie im Beispiel für verwaltete Metriken (Schritte 4—6 oben).
-
Stellen Sie die Lösung mit dem folgenden Befehl bereit.
terraform apply -var-file=terraform.tfvars
Dadurch werden die folgenden Ressourcen in Ihrem AWS Konto erstellt (im Gegensatz zum agentenlosen Ansatz wird der Collector in Ihrem Cluster ausgeführt):
-
Ein Amazon Managed Service für Prometheus Workspace (falls nicht bereitgestellt).
-
Ein Amazon Managed Grafana-Arbeitsbereich mit Datenquelle und Dashboards.
-
Ein über Helm in Ihrem Amazon EKS-Cluster bereitgestellter OpenTelemetry Collector, der so konfiguriert ist, dass er Prometheus-Metriken scannt und remote in Amazon Managed Service for Prometheus schreibt.
-
Eine IAM-Rolle für Dienstkonten (IRSA) für den Collector. OpenTelemetry
-
Verfolgt die Pipeline zu AWS X-Ray (standardmäßig aktiviert).
-
Protokolliert die Pipeline zu Amazon CloudWatch (standardmäßig aktiviert).
Dashboards anzeigen
Um Ihre neuen Dashboards anzuzeigen, öffnen Sie das entsprechende Dashboard in Ihrem Workspace in Amazon Managed Grafana. Die Infrastruktur-Dashboards werden automatisch von Terraform bereitgestellt. Weitere Informationen zur Verwendung von Amazon Managed Grafana finden Sie unter Arbeiten in Ihrem Grafana-Workspace im Benutzerhandbuch von Amazon Managed Grafana.