View a markdown version of this page

Integrieren Sie Amazon MSK - 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.

Integrieren Sie Amazon MSK

Mit einem von Amazon CloudWatch verwalteten Prometheus-Collector können Sie automatisch Prometheus Metriken aus Ihren Amazon MSK-Clustern ermitteln und erfassen. Wenn Sie Open Monitoring auf Ihrem Amazon MSK-Cluster aktivieren, werden Prometheus Metriken über den Java Management Extensions (JMX) Exporter und Node Exporter verfügbar gemacht. Der Managed Collector stellt eine Verbindung zu Ihrer VPC her und entfernt diese Metriken mithilfe von DNS-based Service Discovery von allen Brokern und übermittelt diese Metriken direkt an. CloudWatch Mit dieser Integration können Sie Metriken, Metriken und JVM-level Kafka-Broker-Metriken auf Host-Ebene überwachen, ohne Agenten einsetzen zu müssen. CloudWatch

Anmerkung

Wenn ein von Amazon CloudWatch verwalteter Prometheus-Collector Ihre Amazon MSK-Metriken an übermittelt, reichert er jede Metrik automatisch mit Attributen an CloudWatch, die ihren Ursprung identifizieren. Jede Metrik enthält den Instrumentierungsumfang des Collectors, Cloud-Attribute, die das AWS Konto und die Region aufzeichnen, und eine Einheit, die der Collector aus dem Metriknamen ableitet. Sie können nach diesen Attributen filtern und gruppieren, wenn Sie Ihre Metriken mit PromQL abfragen.

Voraussetzungen

Dieses Verfahren setzt voraus, dass Sie mit der Amazon MSK-Clusterverwaltung und den Amazon VPC-Netzwerkkonzepten vertraut sind.

  • Amazon MSK-Cluster im bereitgestellten Modus mit Standard- oder Express-Brokern. Verwaltete Collectors unterstützen Amazon MSK Serverless nicht.

  • Open Monitoring ist auf dem Cluster aktiviert. Weitere Informationen finden Sie unter Open Monitoring with Prometheus im Amazon MSK Developer Guide.

  • Mindestens zwei Subnetze in verschiedenen Availability Zones

  • Sicherheitsgruppe, die es dem Collector ermöglicht, die Broker-Ports 11001 und 11002 zu erreichen

Schritt 1: Open Monitoring aktivieren

Aktivieren Sie Open Monitoring auf Ihrem Amazon MSK-Cluster, um Prometheus Metriken verfügbar zu machen. Anweisungen zur Aktivierung von Open Monitoring finden Sie unter Open Monitoring with Prometheus im Amazon MSK Developer Guide.

aws kafka update-monitoring \ --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/my-cluster/abc123-def456" \ --current-version "K1A2B3C4D5" \ --open-monitoring '{ "Prometheus": { "JmxExporter": {"EnabledInBroker": true}, "NodeExporter": {"EnabledInBroker": true} } }'
Anmerkung

Der --open-monitoring Parameter allein macht die Prometheus Endpunkte an den Ports 11001 und 11002 verfügbar. Erweiterte Überwachungstarife, z. B. PER_TOPIC_PER_PARTITION getrennt von Open Monitoring, können zusätzliche Gebühren verursachen. Richten Sie sie daher nur ein, wenn Sie Amazon MSK-Metriken auf dieser Ebene benötigen.

Schritt 2: Holen Sie sich den DNS-Namen Ihres Clusters

Amazon MSK stellt einen DNS-Namen auf Clusterebene bereit, der in alle Broker-IPs aufgelöst wird. Wenn Sie dies für die Serviceerkennung verwenden, ist Ihr Monitoring widerstandsfähig gegenüber dem Austausch von Brokern und der Clusterskalierung.

Holen Sie sich Ihren Cluster-DNS-Namen (entfernen Sie das brokerspezifische Präfix wie oder): b-1. b-2.

aws kafka get-bootstrap-brokers --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/my-cluster/abc123-def456"

Wenn der Bootstrap-Broker beispielsweise zurückkehrtb-1.my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com, verwenden Sie ihn my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com als Cluster-DNS-Namen.

Schritt 3: Konfigurieren Sie die Scrape-Konfiguration

Im Folgenden finden Sie ein Beispiel für eine Scrape-Konfiguration für Amazon MSK. Sie verweisen auf diese Konfiguration, wenn Sie den Scraper im nächsten Schritt erstellen. Weitere Informationen zu Konfigurationsoptionen finden Sie unterScraper-Konfiguration.

global: scrape_interval: 60s external_labels: cluster_name: my-msk-cluster scrape_configs: - job_name: 'msk-jmx' dns_sd_configs: - names: - my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com type: A port: 11001 relabel_configs: - source_labels: [__meta_dns_name] target_label: broker_dns - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'msk' - job_name: 'msk-node' dns_sd_configs: - names: - my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com type: A port: 11002 relabel_configs: - source_labels: [__meta_dns_name] target_label: broker_dns - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'msk'

Schritt 4: Erstellen Sie den Scraper

Erstellen Sie den Scraper mit einem CloudWatch Ziel und verwenden Sie dabei die Scrape-Konfiguration für Ihre Amazon MSK-Broker aus dem vorherigen Schritt.

AWS API

Verwenden Sie die CreateScraper API-Operation, um einen Scraper mit einem Ziel zu erstellen. CloudWatch Ersetzen Sie die Subnetz-, Sicherheitsgruppen- und Datensatzinformationen durch Ihre eigenen Werte.

POST /scrapers HTTP/1.1 { "alias": "msk-metrics-scraper", "source": { "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }, "destination": { "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }, "scrapeConfiguration": { "configurationBlob": "base64-encoded-blob" } }
AWS CLI

Verwenden Sie den create-scraper Befehl, um einen Scraper mit einem CloudWatch Ziel zu erstellen. Ersetzen Sie die Subnetz-, Sicherheitsgruppen- und Datensatzinformationen durch Ihre eigenen Werte.

aws amp create-scraper \ --alias "msk-metrics-scraper" \ --source '{ "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }' \ --scrape-configuration configurationBlob=$(cat msk-config.yaml | base64 -w 0) \ --destination '{ "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }'

Verfügbare Metriken

  • JMX Exporter (Port 11001) — Interna von Kafka-Brokern, einschließlich Themenmetriken, Partitionsmetriken, Anforderungsraten, Verzögerung bei den Verbrauchern und unzureichend replizierte Partitionen.

  • Node Exporter (Port 11002) — Host-level Metriken wie CPU-, Speicher-, Festplatten- und Netzwerkdurchsatz. I/O

Eine vollständige Liste der verfügbaren Metriken finden Sie unter MSK-Metriken, die von Managed Collectors erfasst wurden, im Amazon Managed Service for Prometheus User Guide.

Überprüfen Sie die Erfassung der Metri

Um zu bestätigen, dass der Collector sowohl JMX- als auch Node Exporter-Metriken liefert, führen Sie die folgenden Abfragen in Query CloudWatch Studio aus. Wenn jede Abfrage Datenpunkte zurückgibt, scrapt der Collector den entsprechenden Exporter erfolgreich.

Die folgende Abfrage gibt eine Kafka-Metrik auf Broker-Ebene vom JMX-Exporter (Port 11001) zurück. Sie gibt die durchschnittliche Rate der Aktivitäten von Broker-Themen an, z. B. Nachrichten und Bytes, die durch die Broker fließen. Die Datenpunkte bestätigen, dass der Collector die Kennzahlen von Kafka-Brokern auswertet.

kafka_server_BrokerTopicMetrics_MeanRate

Die folgende Abfrage gibt die CPU-Auslastung auf Host-Ebene vom Node Exporter (Port 11002) zurück. Sie subtrahiert die durchschnittliche CPU-Leerlaufrate innerhalb eines Fünf-Minuten-Fensters von 100, um den Prozentsatz der CPU zu ermitteln, den die Broker nutzen. Datenpunkte bestätigen, dass der Collector Metriken auf Host-Ebene scrapt.

100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Sehen Sie sich das automatische Dashboard an

Nachdem der Collector mit der Übermittlung Ihrer Amazon MSK-Metriken an begonnen hat CloudWatch, bietet die CloudWatch Konsole ein automatisches Dashboard mit dem Namen MSK OTel. Rufen Sie MSK OTel auf, um es zu öffnen, oder melden Sie sich bei der AWS Management Console an, öffnen Sie die CloudWatch Konsole, wählen Sie Dashboards im Navigationsbereich aus, wählen Sie Automatische Dashboards und dann MSK OTel. Sie können mit der Überwachung Ihrer Cluster beginnen, ohne selbst Widgets oder Dashboards erstellen zu müssen.

Wenn das automatische Dashboard Ihren Anforderungen entspricht, können Sie es unverändert verwenden. Um ein maßgeschneidertes Überwachungserlebnis zu erstellen, können Sie jedes seiner Widgets zu einem benutzerdefinierten Dashboard hinzufügen. Weitere Informationen zu benutzerdefinierten Dashboards finden Sie unter Verwenden von CloudWatch Dashboards.

Cross-account Beobachtbarkeit

Für die kontoübergreifende Amazon MSK-Überwachung empfehlen wir die Verwendung der CloudWatch Amazon-Metrikzentralisierung. Weitere Informationen finden Sie unter Zentralisierung von Metriken CloudWatch.

Alternative kontoübergreifende Scraper-Konfigurationen mit Rollenverkettung finden Sie unter Cross-account Amazon MSK-Integration im Amazon Managed Service for Prometheus-Benutzerhandbuch.

Aktuelle Einschränkungen

  • Verwaltete Collectors unterstützen keine Amazon MSK-Cluster ohne Server.

  • Verwaltete Collectors unterstützen in Kombination mit dem Kraft-Metadatenmodus keinen öffentlichen Zugriff.

  • Für jede Kombination aus Amazon MSK-Cluster und CloudWatch Datensatz ist ein Collector erforderlich.