Verwenden einer OpenSearch Ingestion-Pipeline mit Amazon Managed Service für Prometheus - OpenSearch Amazon-Dienst

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.

Verwenden einer OpenSearch Ingestion-Pipeline mit Amazon Managed Service für Prometheus

Sie können Amazon Managed Service for Prometheus als Ziel für Ihre OpenSearch Ingestion-Pipeline verwenden, um Metriken im Zeitreihenformat zu speichern. Die Prometheus-Senke ermöglicht es Ihnen, OpenTelemetry Metriken oder andere Zeitreihendaten aus Ihrer Pipeline zur Überwachung, Warnung und Analyse an einen Amazon Managed Service for Prometheus-Workspace zu senden.

Das prometheus OpenSearch Sink-Plugin ermöglicht es Ingestion-Pipelines, mithilfe des Prometheus-Remote-Write-Protokolls Metrikdaten in Amazon Managed Service for Prometheus-Workspaces zu schreiben. Diese Integration ermöglicht Ihnen:

  • Speichern von Daten zu Zeitreihenmetriken in Amazon Managed Service for Prometheus

  • Mit Amazon Managed Service for Prometheus und Amazon Managed Grafana Kennzahlen überwachen und Warnmeldungen dazu erstellen

  • Metriken gleichzeitig an mehrere Ziele weiterleiten (z. B. OpenSearch und Amazon Managed Service für Prometheus)

  • Verarbeiten Sie OpenTelemetry Metriken von externen Agenten oder generieren Sie Metriken innerhalb der Pipeline

Voraussetzungen

Bevor Sie die Prometheus-Senke konfigurieren, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Amazon Managed Service for Prometheus Workspace: Erstellen Sie einen Workspace im selben AWS-Konto und AWS-Region wie Ihre OpenSearch Ingestion-Pipeline. Anweisungen finden Sie im Amazon Managed Service for Prometheus User Guide unter Creating a Workspace.

  • IAM-Berechtigungen: Konfigurieren Sie eine IAM-Rolle mit Schreibberechtigungen für Amazon Managed Service for Prometheus. Weitere Informationen finden Sie unter Schritt 1: Konfigurieren Sie die Pipeline-Rolle.

Anmerkung

Amazon Managed Service for Prometheus Workspaces müssen vom Service verwaltete Schlüssel verwenden AWS . AWS KMS Kundenverwaltete AWS KMS Schlüssel werden derzeit nicht für Amazon Managed Service for Prometheus-Senken in Ingestion-Pipelines unterstützt. OpenSearch

Schritt 1: Konfigurieren Sie die Pipeline-Rolle

Die Prometheus-Senke erbt automatisch die IAM-Berechtigungen der Pipeline-Rolle für die Authentifizierung, sodass keine zusätzliche Rollenkonfiguration (wiests_role_arn) in den Senkeneinstellungen erforderlich ist.

Die folgende Beispielrichtlinie zeigt die erforderlichen Berechtigungen für die Verwendung von Amazon Managed Service for Prometheus als Senke:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AMPRemoteWrite", "Effect": "Allow", "Action": [ "aps:RemoteWrite" ], "Resource": "arn:aws:aps:region:account-id:workspace/workspace-id" } ] }

Ersetzen die folgenden Platzhalter:

  • region: Ihr AWS-Region (zum Beispiel) us-east-1

  • account-id: Deine AWS-Konto ID

  • workspace-id: Ihre Workspace-ID für Amazon Managed Service für Prometheus

Sie müssen diese Berechtigungen an Ihre Pipeline-Rolle anhängen.

Stellen Sie sicher, dass Ihre Pipeline-Rolle über eine Vertrauensbeziehung verfügt, die es OpenSearch Ingestion ermöglicht, diese zu übernehmen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Schritt 2: Erstellen Sie die Pipeline

Nachdem Sie Ihre Berechtigungen eingerichtet haben, können Sie eine OpenSearch Ingestion-Pipeline so konfigurieren, dass Amazon Managed Service for Prometheus als Senke verwendet wird.

Basiskonfiguration

Das folgende Beispiel zeigt eine minimale Prometheus-Sinkkonfiguration:

version: "2" sink: - prometheus: url: "https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write" aws: region: "region"

Sie müssen die url Option in der prometheus Senkenkonfiguration angeben, bei der es sich um den Remote-Write-Endpunkt von Amazon Managed Service for Prometheus handelt. Um die URL zu formatieren, suchen Sie Ihre Workspace-ID in der Amazon Managed Service for Prometheus-Konsole und erstellen Sie die URL wie folgt:. https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write

Konfigurationsoptionen

Verwenden Sie die folgenden Optionen, um das Batch- und Spülverhalten für die Prometheus-Senke zu konfigurieren:

Konfigurationsoptionen für Prometheus-Senken
Option Erforderlich Typ Description
max_events Nein Ganzzahl Die maximale Anzahl von Ereignissen, die gesammelt werden sollen, bevor sie zu Prometheus übertragen werden. Der Standardwert ist 1000.
max_request_size Nein Anzahl der Byte Die maximale Größe der Anforderungsnutzlast vor dem Leeren. Der Standardwert ist 1mb.
flush_interval Nein Dauer Die maximale Wartezeit vor dem Löschen von Ereignissen. Der Standardwert ist 10s. Der zulässige Höchstwert ist60s.

Beispiel für Pipelines

Beispiel 1: OpenTelemetry Metriken für Amazon Managed Service für Prometheus

Diese Pipeline empfängt OpenTelemetry Metriken von einem externen Agenten und schreibt sie in Amazon Managed Service for Prometheus:

version: "2" source: otel_metrics_source: path: "/v1/metrics" output_format: otel sink: - prometheus: url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" aws: region: "us-east-1"

Beispiel 2: Dual-Sink — OpenSearch und Amazon Managed Service für Prometheus

Diese Pipeline leitet Metriken OpenSearch sowohl an Amazon Managed Service for Prometheus als auch an Amazon Managed Service weiter:

version: "2" source: otel_metrics_source: path: "/v1/metrics" output_format: otel sink: - opensearch: hosts: - "https://search-domain-endpoint.us-east-1.es.amazonaws.com" index: "metrics-%{yyyy.MM.dd}" aws: region: "us-east-1" sts_role_arn: "arn:aws:iam::123456789012:role/OSI-Pipeline-Role" - prometheus: url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" aws: region: "us-east-1"

Beispiel 3: Metriken mit Filterung

Diese Pipeline filtert Metriken, bevor sie an Amazon Managed Service for Prometheus gesendet werden:

version: "2" source: otel_metrics_source: path: "/v1/metrics" output_format: otel processor: - drop_events: drop_when: '/name != "http.server.duration" and /name != "http.client.duration"' sink: - prometheus: url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" aws: region: "us-east-1"

Sie können einen vorkonfigurierten Amazon Managed Service for Prometheus Blueprint verwenden, um diese Pipelines zu erstellen. Weitere Informationen finden Sie unter Mit Blueprints arbeiten.

Eine Pipeline mit Amazon Managed Service für Prometheus Sink erstellen

Die Konsole verwenden AWS

  1. Navigieren Sie zur OpenSearch Servicekonsole.

  2. Wählen Sie unter Ingestion die Option Pipelines aus.

  3. Wählen Sie Create pipeline (Pipeline erstellen) aus.

  4. Wählen Sie Mit Blueprint erstellen und wählen Sie die OpenTelemetry Metriken für Amazon Prometheus-Blueprint aus.

  5. Konfigurieren Sie die Pipeline:

    • Geben Sie Ihre Workspace-ID für Amazon Managed Service for Prometheus ein

    • Geben Sie den ARN der Pipeline-Rolle an

    • Konfigurieren Sie die Quell- und Prozessoreinstellungen nach Bedarf

  6. Überprüfen und erstellen Sie die Pipeline.

Verwenden der AWS CLI

Erstellen Sie eine Pipeline-Konfigurationsdatei (z. B.amp-pipeline.yaml) mit der gewünschten Konfiguration und führen Sie dann Folgendes aus:

aws osis create-pipeline \ --pipeline-name my-amp-pipeline \ --min-units 2 \ --max-units 4 \ --pipeline-configuration-body file://amp-pipeline.yaml

Verwenden AWS CloudFormation

Resources: MyAMPPipeline: Type: AWS::OSIS::Pipeline Properties: PipelineName: my-amp-pipeline MinUnits: 2 MaxUnits: 4 PipelineConfigurationBody: | version: "2" source: otel_metrics_source: path: "/v1/metrics" output_format: otel sink: - prometheus: url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" aws: region: "us-east-1"

Überwachung und Problembehebung

CloudWatch Metriken

Überwachen Sie die Leistung Ihrer Pipeline anhand von CloudWatch Kennzahlen:

  • DocumentsWritten: Anzahl der erfolgreich in Amazon Managed Service for Prometheus geschriebenen Metriken

  • DocumentsWriteFailed: Anzahl der Metriken, die nicht geschrieben werden konnten

  • RequestLatency: Latenz von Remote-Schreibanforderungen

Häufige Probleme

Problem: Pipeline kann nicht in Amazon Managed Service for Prometheus schreiben

Lösungen:

  • Stellen Sie sicher, dass die Workspace-ID und die Region in der URL korrekt sind

  • Stellen Sie sicher, dass die Pipeline-Rolle über aps:RemoteWrite Berechtigungen verfügt

  • Stellen Sie sicher, dass der Workspace vom Service verwaltete Schlüssel AWS KMS verwendet

  • Stellen Sie sicher, dass sich die Pipeline und der Workspace im selben System befinden AWS-Konto

Problem: Authentifizierungsfehler

Lösungen:

  • Stellen Sie sicher, dass die Vertrauensstellung osis-pipelines.amazonaws.com die Übernahme der Pipeline-Rolle ermöglicht

  • Stellen Sie sicher, dass die Pipeline-Rolle über die erforderlichen aps:RemoteWrite Berechtigungen verfügt

Problem: Hohe Latenz oder Drosselung

Lösungen:

  • Erhöhen Sie die Kapazitätseinheiten der Pipeline

  • Implementieren Sie Batching im Prozessor

  • Überprüfen Sie die Prometheus-Servicekontingente von Amazon Managed Service

Einschränkungen

Beachten Sie die folgenden Einschränkungen, wenn Sie eine OpenSearch Ingestion-Pipeline für Amazon Managed Service for Prometheus einrichten:

  • Amazon Managed Service for Prometheus Workspaces müssen vom Service verwaltete Schlüssel verwenden AWS . AWS KMS Vom Kunden verwaltete AWS KMS Schlüssel werden derzeit nicht unterstützt.

  • Die Pipeline und der Amazon Managed Service for Prometheus Workspace müssen sich im selben Raum befinden. AWS-Konto

Best Practices

  • Verwenden Sie dieselbe IAM-Rolle: Die Prometheus-Senke verwendet automatisch die Pipeline-Rolle. Wenn andere Senken verwendet werden, stellen Sie sicher, dass dies mit der sts_role_arn Pipeline-Rolle identisch ist

  • Messwerte überwachen: Richten Sie CloudWatch Alarme für fehlgeschlagene Schreibvorgänge und hohe Latenz ein

  • Filterung implementieren: Verwenden Sie Prozessoren, um unnötige Metriken zu filtern, bevor Sie sie an Amazon Managed Service for Prometheus senden

  • Kapazität richtig dimensionieren: Beginnen Sie mit der Mindestkapazität und skalieren Sie sie auf der Grundlage des Volumens der Metriken

  • Verwenden Sie Blueprints: Nutzen Sie vorkonfigurierte Blueprints für gängige Anwendungsfälle