Offene Überwachung mit Prometheus - Amazon Managed Streaming für Apache Kafka

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.

Offene Überwachung mit Prometheus

Sie können Ihren MSK-Cluster mit Prometheus überwachen, einem Open-Source-Überwachungssystem für Zeitreihen-Metrikdaten. Sie können diese Daten mithilfe der Remote-Schreib-Feature von Prometheus in Amazon Managed Service für Prometheus veröffentlichen. Sie können auch Tools verwenden, die mit Prometheus-formatierten Metriken oder Tools die mit Amazon MSK Open Monitoring kompatibel sind, wie etwa Datadog, Lenses, New Relic und Sumo logic. Die offene Überwachung ist kostenlos verfügbar, aber für die Übertragung von Daten über Availability Zones hinweg fallen Gebühren an. Weitere Informationen zu Prometheus finden Sie in der Prometheus-Dokumentation.

Erstellen eines Amazon-MSK-Clusters mit aktivierter offener Überwachung

Unter Verwendung der AWS Management Console
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon MSK-Konsole unter https://console.aws.amazon.com/msk/home?region=us-east-1#/home/.

  2. Aktivieren Sie unter Monitoring (Überwachung) das Kontrollkästchen neben Enable open monitoring with Prometheus (Offene Überwachung mit Prometheus aktivieren).

  3. Geben Sie die erforderlichen Informationen in allen Abschnitten der Seite an und überprüfen Sie die verfügbaren Optionen.

  4. Wählen Sie Cluster erstellen.

Verwenden Sie den AWS CLI
  • Rufen Sie den Befehl create-cluster auf und geben Sie die Option open-monitoring an. Aktivieren Sie JmxExporter, NodeExporter oder beides. Wenn Sie open-monitoring angeben, können die beiden Exporteure nicht gleichzeitig deaktiviert werden.

Verwenden der API
  • Rufen Sie den CreateClusterVorgang auf und geben Sie anOpenMonitoring. Aktivieren Sie jmxExporter, nodeExporter oder beides. Wenn Sie OpenMonitoring angeben, können die beiden Exporteure nicht gleichzeitig deaktiviert werden.

Aktivieren der offenen Überwachung für einen vorhandenen Amazon-MSK-Cluster

Um die offene Überwachung zu aktivieren, stellen Sie sicher, dass sich der Cluster im Status ACTIVE befindet.

Mit dem AWS Management Console
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon MSK-Konsole unter https://console.aws.amazon.com/msk/home?region=us-east-1#/home/.

  2. Wählen Sie den Namen des Clusters, den Sie aktualisieren möchten. Dadurch gelangen Sie zu einer Seite mit Details für den Cluster.

  3. Scrollen Sie auf der Registerkarte Eigenschaften nach unten zum Abschnitt Überwachung.

  4. Wählen Sie Bearbeiten aus.

  5. Aktivieren Sie das Kontrollkästchen neben Enable open monitoring with Prometheus (Offene Überwachung mit Prometheus aktivieren).

  6. Wählen Sie Änderungen speichern aus.

Verwenden Sie den AWS CLI
  • Rufen Sie den Befehl update-monitoring auf und geben Sie die Option open-monitoring an. Aktivieren Sie JmxExporter, NodeExporter oder beides. Wenn Sie open-monitoring angeben, können die beiden Exporteure nicht gleichzeitig deaktiviert werden.

Verwenden der API
  • Rufen Sie den UpdateMonitoringVorgang auf und geben Sie anOpenMonitoring. Aktivieren Sie jmxExporter, nodeExporter oder beides. Wenn Sie OpenMonitoring angeben, können die beiden Exporteure nicht gleichzeitig deaktiviert werden.

Einrichten eines Prometheus-Hosts auf einer Amazon-EC2-Instance

  1. Laden Sie den Prometheus-Server von https://prometheus.io/download/#prometheus auf Ihre Amazon-EC2-Instance herunter.

  2. Extrahieren Sie die heruntergeladene Datei in ein Verzeichnis und navigieren Sie zu diesem Verzeichnis.

  3. Erstellen Sie eine Datei mit dem folgenden Inhalt und geben Sie ihr den Namen prometheus.yml.

    # file: prometheus.yml # my global config global: scrape_interval: 60s # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' static_configs: # 9090 is the prometheus server port - targets: ['localhost:9090'] - job_name: 'broker' file_sd_configs: - files: - 'targets.json'
  4. Verwenden Sie den ListNodesVorgang, um eine Liste der Broker Ihres Clusters abzurufen.

  5. Erstellen Sie eine Datei namens targets.json mit dem folgenden JSON: Ersetzen Sie broker_dns_1, broker_dns_2 und den Rest des Broker-DNS-Namen durch die DNS-Namen, die Sie im vorherigen Schritt für Ihre Broker erhalten haben. Geben Sie alle Broker an, die Sie im vorherigen Schritt erhalten haben. Amazon MSK verwendet Port 11001 für den JMX Exporter und Port 11002 für den Node Exporter.

    ZooKeeper mode targets.json
    [ { "labels": { "job": "jmx" }, "targets": [ "broker_dns_1:11001", "broker_dns_2:11001", . . . "broker_dns_N:11001" ] }, { "labels": { "job": "node" }, "targets": [ "broker_dns_1:11002", "broker_dns_2:11002", . . . "broker_dns_N:11002" ] } ]
    KRaft mode targets.json
    [ { "labels": { "job": "jmx" }, "targets": [ "broker_dns_1:11001", "broker_dns_2:11001", . . . "broker_dns_N:11001", "controller_dns_1:11001", "controller_dns_2:11001", "controller_dns_3:11001" ] }, { "labels": { "job": "node" }, "targets": [ "broker_dns_1:11002", "broker_dns_2:11002", . . . "broker_dns_N:11002" ] } ]
    Anmerkung

    Um JMX-Metriken von KraFT-Controllern zu entfernen, fügen Sie der JSON-Datei Controller-DNS-Namen als Ziele hinzu. Zum Beispiel: controller_dns_1:11001 durch den tatsächlichen controller_dns_1 DNS-Namen des Controllers ersetzen.

  6. Um den Prometheus-Server auf Ihrer Amazon-EC2-Instance zu starten, führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem Sie die Prometheus-Dateien extrahiert und prometheus.yml und targets.json gespeichert haben.

    ./prometheus
  7. Suchen Sie die öffentliche IPv4-IP-Adresse der Amazon-EC2-Instance, auf der Sie Prometheus im vorherigen Schritt ausgeführt haben. Sie benötigen diese öffentliche IP-Adresse im folgenden Schritt.

  8. Um auf die Prometheus-Web-UI zuzugreifen, öffnen Sie einen Browser, der auf Ihre Amazon-EC2-Instance zugreifen kann, und navigieren Sie zu Prometheus-Instance-Public-IP:9090, wobei Prometheus-Instance-Public-IP die öffentliche IP-Adresse ist, die Sie im vorherigen Schritt erhalten haben.

Prometheus-Metriken

Alle von Apache Kafka an JMX ausgegebenen Metriken sind über eine offene Überwachung mit Prometheus zugänglich. Informationen zu Apache Kafka-Metriken finden Sie unter Monitoring in der Apache Kafka-Dokumentation. Neben Apache-Kafka-Metriken sind auch Verbraucher-Verzögerungs-Metriken auf Port 11001 unter dem JMX-MBean-Namen kafka.consumer.group:type=ConsumerLagMetrics verfügbar. Sie können auch den Prometheus Node Exporter verwenden, um CPU- und Festplattenmetriken für Ihre Broker von Port 11002 abzurufen.

Speichern von Prometheus-Metriken in Amazon Managed Service für Prometheus

Amazon Managed Service for Prometheus ist ein Prometheus-kompatibler Service zur Überwachung und Warnung, den Sie zur Überwachung von Amazon-MSK-Clustern verwenden können. Es ist ein vollständig verwalteter Service, der die Aufnahme, Speicherung, Abfrage und Warnung Ihrer Metriken automatisch skaliert. Es lässt sich auch in AWS Sicherheitsdienste integrieren, um Ihnen einen schnellen und sicheren Zugriff auf Ihre Daten zu ermöglichen. Sie können die Open-Source-PromQL-Abfragesprache verwenden, um Ihre Metriken abzufragen und darauf zu warnen.

Weitere Informationen finden Sie unter Erste Schritte mit Amazon Managed Service for Prometheus.