Wie man

Überwachen Sie Apache Kafka mit Prometheus und Grafana

Überwachen Sie Apache Kafka mit Prometheus und Grafana

In unseren letzten Anleitungen haben wir gesehen, wie man Kafka sowohl in Ubuntu 20 als auch in CentOS 8 installiert. Wir hatten eine kurze Einführung über Kafka und was es im Allgemeinen tut. Wenn Sie Kafka weiterhin verwenden, werden Sie bald feststellen, dass Sie die Interna Ihres Kafka-Servers überwachen möchten. Dies ist besonders wichtig, um Ihre Produzenten, Verbraucher und andere Metriken wie Themen und Partitionen im Auge zu behalten. Darüber hinaus ist die Überwachung des Hostservers, auf dem Kafka installiert ist, von Vorteil, um eine Vorstellung von seinen Ressourcen zu erhalten und auf der Hut zu sein, bevor die Dinge aus dem Ruder laufen. Um diesen Bedarf zu decken, den Sie bald haben werden, konzentriert sich dieser Leitfaden darauf, wie Sie Ihren Kafka mit vertrauten Tools wie Prometheus und Grafana überwachen können.

Voraussetzungen für die Einrichtung

Um dieses Setup zu haben, benötigen wir einige Dinge, die bereits in Betrieb sind. Zuerst benötigen wir Kafka Cluster, das Sie in den folgenden Anleitungen finden können.

Installieren und konfigurieren Sie Apache Kafka unter Ubuntu

Installieren und konfigurieren Sie Apache Kafka mit CMAK auf CentOS 8

Die andere Voraussetzung ist die Einrichtung von Prometheus. Falls Sie Prometheus nicht installiert haben, machen Sie sich keine Sorgen, denn wir haben bereits eine schöne Anleitung, die Ihnen hilft, schnell eine zu installieren. Bitte befolgen Sie die Anleitung zur Installation von Prometheus und installieren Sie sie.

Prometheus-Server auf Ubuntu installieren | Debian

So installieren Sie Prometheus auf RHEL 8 / CentOS 8

Zweitens müssen wir auch Grafana laufen lassen. Wenn kein Grafana installiert ist, haben wir gerne eine andere Anleitung, die das sortiert. Folgen Sie der Installation von Grafana, um es zum Laufen zu bringen.

So installieren Sie Grafana 6 auf CentOS 7

So installieren Sie Grafana auf CentOS 8 / RHEL 8

Grafana unter Ubuntu installieren | Debian

Schritt 1: Prometheus JMX Exporter herunterladen

Prometheus ist ein leistungsstarkes und beliebtes Open-Source-Zeitreihentool und eine Datenbank, die Metriken und Statistiken speichert und verfügbar macht. Die exponierten Daten können von Tools wie Grafana als Datenquelle verwendet werden, um schöne und aufschlussreiche Grafiken und Diagramme für eine bessere Sichtbarkeit Ihrer Anwendungen und Server zu erstellen. Apache Kafka wird mit Java entwickelt und daher benötigen wir einen Java-Exporter, um Metriken zu extrahieren (extrahieren), damit Prometheus konsumieren, speichern und verfügbar machen kann.

Prometheus Exporter werden verwendet, um Datenmetriken zu extrahieren und in Ihre Prometheus-Instanz zu exportieren. Einer dieser Exporteure ist Java Management Extensions (JMX) Exporter, der sich auf Java-Anwendungen konzentriert. Es gibt Entwicklern die Möglichkeit, Metriken, Statistiken und grundlegende Operationen einer Java-Anwendung auf eine von Prometheus verstandene Standardweise bereitzustellen. Aus diesem Grund werden wir einen Prometheus-Exporter herunterladen und installieren, damit wir Kafkas Metriken abrufen können. Besuchen Sie das Mavens prometheus jmx-exporter-Repository, um die JAR-Datei zu erhalten. Auf Ihrem Server können Sie wget oder Locken um es wie folgt herunterzuladen:

cd ~ wget https://repo1.Maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.13.0/jmx_prometheus_javaagent-0.13.0.Krug

Nachdem Sie den JMX-Exporter heruntergeladen haben, kopieren wir ihn in das lib-Verzeichnis von Kafka, wo es seine JAR-Dateien speichert stores. In unserer vorherigen Anleitung haben wir Kafka-Dateien kopiert in copied /usr/local/kafka-server/ Verzeichnis. Daher kopieren wir die jmx_prometheus_javaagent jar-Datei nach /usr/local/kafka-server/libs/. Stellen Sie sicher, dass Sie wissen, wo das Home-Verzeichnis Ihres Kafkas ist, dort finden Sie die Bibliotheken Verzeichnis.

sudo cp jmx_prometheus_javaagent-0.13.0.jar /usr/local/kafka-server/libs/

Schritt 2: Konfigurieren Sie unseren Exporter

Als nächstes müssen wir unseren JMX-Exporter so konfigurieren, dass er weiß, was er aus Kafka . extrahiert. Um dies kurz zu erklären, die Konfiguration ist eine Sammlung von Regexps, die die Metriken für Prometheus benennen und filtern. Dank Prometheus haben sie Beispielkonfigurationen in diesem GitHub-Repository. Wir werden verwenden kafka-2_0_0.yml Beispielkonfiguration in diesem Setup.

$ cd /usr/local/kafka-server/config/ $ sudo nano sample_jmx_exporter.yml

Duplizieren Sie den Inhalt in einer Datei im config-Verzeichnis im Home-Verzeichnis von Kafka.

lowercaseOutputName: true rules: # Sonderfälle und sehr spezielle Regeln - pattern : kafka.Server<>Wertname: kafka_server_$1_$2 Typ: GAUGE Labels: clientId: "$3" Thema: "$4" Partition: "$5" - Muster: Kafka.Server<>Wertname: kafka_server_$1_$2 Typ: GAUGE Labels: clientId: "$3" Broker: "$4:$5" - Muster: kafka.Koordinator.(\w+)<>Wertname: kafka_coordinator_$1_$2_$3 Typ: GAUGE # Generische Sekundenzähler mit 0-2 Schlüssel/Wert-Paaren - Muster: kafka.(\w+)<>Zählname: kafka_$1_$2_$3_total type: COUNTER Etiketten: "$4": "$5" "$6": "$7" - Muster: kafka.(\w+)<>Zählname: kafka_$1_$2_$3_total type: COUNTER Etiketten: "$4": "$5" - Muster: kafka.(\w+)<>Zählname: kafka_$1_$2_$3_total type: COUNTER - Muster: kafka.Server<>([a-z-]+) Name: kafka_server_quota_$3 Typ: GAUGE Labels: Ressource: "$1" clientId: "$2" - Muster: kafka.Server<>([a-z-]+) Name: kafka_server_quota_$4 Typ: GAUGE Labels: Ressource: "$1" Benutzer: "$2" clientId: "$3" # Generische Messgeräte mit 0-2 Schlüssel/Wert-Paaren - Muster: kafka.(\w+)<>Wertname: kafka_$1_$2_$3 Typ: GAUGE Labels: "$4": "$5" "$6": "$7" - Muster: kafka.(\w+)<>Wertname: kafka_$1_$2_$3 Typ: GAUGE Labels: "$4": "$5" - Muster: kafka.(\w+)<>Wertname: kafka_$1_$2_$3 type: GAUGE # Emulation der Prometheus-'Zusammenfassung'-Metriken für die exportierten 'Histogramme. # # Beachten Sie, dass bei diesen die Metrik '_sum' fehlt! - Muster: Kafka.(\w+)<>Zählname: kafka_$1_$2_$3_count Typ: COUNTER Etiketten: "$4": "$5" "$6": "$7" - Muster: kafka.(\w+)<>(\d+)thPerzentilname: kafka_$1_$2_$3 Typ: GAUGE Labels: "$4": "$5" "$6": "$7" Quantil: "0.$8" - Muster: Kafka.(\w+)<>Zählname: kafka_$1_$2_$3_count Typ: COUNTER Etiketten: "$4": "$5" - Muster: kafka.(\w+)<>(\d+)thPerzentilname: kafka_$1_$2_$3 Typ: GAUGE Labels: "$4": "$5" Quantil: "0.$6" - Muster: Kafka.(\w+)<>Zählername: kafka_$1_$2_$3_Zählertyp: COUNTER - Muster: kafka.(\w+)<>(\d+)thPerzentilname: kafka_$1_$2_$3 Typ: GAUGE Labels: Quantil: "0.$4"

Speichern Sie die Datei und weiter zum nächsten Schritt.

Schritt 3: Konfigurieren Sie Kafka Broker für die Verwendung des JMX-Exporters

Bisher haben wir alles, was wir brauchen, um mit der Extraktion von Kafka-Metriken zu beginnen. Es bleibt nur noch, den JMX-Exporteur mit unserem Kafka-Broker zu verknüpfen. Lassen Sie uns das umgehend erledigen. Öffnen Sie das Startskript des Kafka Broker-Servers und fügen Sie die JMX-Konfiguration am Ende der Datei hinzu, wie unten gezeigt. Alle Skripte befinden sich im Verzeichnis bin in Kafkas Home-Ordner.

$ cd /usr/local/kafka-server/bin/ $ sudo vim kafka-server-start.Sch #!/bin/bash # Lizenziert an die Apache Software Foundation (ASF) unter einer oder mehreren # Lizenzvereinbarungen für Mitwirkende. Weitere Informationen zum Urheberrecht finden Sie in der Datei NOTICE, die mit # dieser Arbeit verteilt wurde. # Die ASF lizenziert diese Datei an Sie unter der Apache-Lizenz, Version 2.0 # (die "Lizenz"); Sie dürfen diese Datei nicht verwenden, außer in Übereinstimmung mit # der Lizenz. Eine Kopie der Lizenz erhalten Sie unter # # http://www.Apache.org/licenses/LICENSE-2.0 # # Sofern nicht durch geltendes Recht vorgeschrieben oder schriftlich vereinbart, wird Software, # die unter der Lizenz vertrieben wird, "wie sie ist" verteilt, # OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER ART, weder ausdrücklich noch stillschweigend. # Siehe die Lizenz für die spezifische Sprache, die Berechtigungen und # Einschränkungen unter der Lizenz regelt. if [ $# -lt 1 ]; dann echo "USAGE: $0 [-daemon] server.properties [--override property=value]*" exit 1 fi base_dir=$(dirname $0) if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; dann exportiere KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/… /config/log4j.properties" fi if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" fi EXTRA_ARGS=$EXTRA_ARGS-'-name kafkaServer -loggc' COMMAND=$1 case $COMMAND in -daemon ) EXTRA_ARGS="-daemon "$EXTRA_ARGS shift ;; *) ;; esac exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "[email protected]" ### FÜGEN SIE DIE ZEILE UNTEN HINZU ### export KAFKA_OPTS="-javaagent:/usr/local/kafka-server/libs/jmx_prometheus_javaagent-0.13.0.jar=7075:/usr/local/kafka-server/config/sample_jmx_exporter.yml"

Wenn Sie verwenden systemd, füge die Zeile zur systemd-Datei von kafka hinzu unter [Bedienung] Abschnitt als an Umgebung Wie nachfolgend dargestellt:

[Service] Type=simple Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" ##Fügen Sie die folgende Zeile hinzu Environment="KAFKA_OPTS=-javaagent:/usr/local/kafka-server/libs /jmx_prometheus_javaagent-0.13.0.jar=7075:/usr/local/kafka-server/config/sample_jmx_exporter.yml" ExecStart=/usr/local/kafka-server/bin/kafka-server-start.sh /usr/local/kafka-server/config/server.Eigenschaften ExecStop=/usr/local/kafka-server/bin/kafka-server-stop.sh Neustart=ein-abnormal

Nach dem Hinzufügen der Zeile am Ende des kafka-server-start.Sch Skript oder im systemd Datei, Kafka Broker neu starten.

sudo systemctl Neustart kafka.Bedienung

Überprüfen Sie, ob der Dienst gestartet wurde, indem Sie die Existenz des konfigurierten Ports überprüfen. Wenn eine Firewall ausgeführt wird und sich Ihr Prometheus-Server auf einem anderen Server befindet, sollten Sie in Betracht ziehen, den Zugriff auf diesen Port zuzulassen.

$ sudo ss -tunelp | grep 7075 tcp HÖREN 0 3 [::]:7075 [::]:* Benutzer:(("java",pid=31609,fd=100)) uid:1000 ino:5391132 sk:ffff977c74f86b40 v6only:0 <->

Port auf Firewall zulassen

----Ubuntu---- $ sudo ufw allow 7075 ---- CentOS---- $ sudo Firewall-cmd --permanent --add-port=7075/tcp $ sudo Firewall-cmd --reload

Öffnen Sie Ihren Browser und verweisen Sie ihn auf die IP oder den FQDN Ihres Servers und Ports. http://[IP oder FQDN]:7075. Sie sollten Datenmetriken wie unten gezeigt sehen see

Gutes Zeug! Unser JMX-Exporteur funktioniert wie erwartet. Lassen Sie uns nun dazu übergehen, die Daten hinzuzufügen, die Prometheus zur Verfügung gestellt werden

Schritt 4: Kafka-Daten zu Prometheus hinzufügen

Melden Sie sich bei Ihrem Prometheus-Server an und konfigurieren Sie diese neue Quelle als Datenziel. Wenn Sie dieser Anleitung gefolgt sind, um Prometheus unter Debian zu installieren | Ubuntu oder auf RHEL 8| CentOS 8 dann ist seine Konfigurationsdatei in /etc/prometheus/prometheus.yml. Suchen Sie bitte die Konfigurationsdatei, öffnen Sie sie und bearbeiten Sie sie wie unten gezeigt

$ sudo vim /etc/prometheus/prometheus.yml # my global config global: scratche_interval: 15s # Setzt das Scrape-Intervall auf alle 15 Sekunden. Standard ist jede 1 Minute. Evaluation_interval: 15s # Regeln alle 15 Sekunden auswerten. Die Standardeinstellung ist alle 1 Minute. # scrape_timeout ist auf den globalen Standard (10s) gesetzt. # Alertmanager-Konfiguration alerting: alertmanagers: - static_configs: - Ziele: # - alertmanager:9093 # Regeln einmal laden und periodisch gemäß dem globalen 'evaluation_interval' auswerten. rule_files: # - "first_rules.yml" # - "second_rules.yml" # Eine Scrape-Konfiguration, die genau einen Endpunkt zum Scrapen enthält: # Hier ist es Prometheus selbst. scrape_configs: # Der Jobname wird als Label 'job= . hinzugefügt' zu jeder Zeitreihe, die aus dieser Konfiguration abgekratzt wurde. #5. #####ÄNDERN SIE DAS ZIEL AUF DIE IP UND DEN PORT DES GERADE INSTALLIERTEN JMX-DIENSTES######## static_configs: - Ziele: ['10.38.83.154:7075']

Sie können bestätigen, dass dieses Ziel erfolgreich in Ihrer Prometheus-Weboberfläche hinzugefügt wurde. Öffnen Sie es mit Ihrem Browser und klicken Sie dann auf Status > Ziele. Wenn es erfolgreich hinzugefügt wurde, sollten Sie es wie unten dargestellt sehen.

Sein Zustand sollte sein "OBEN"

Das ist bis jetzt super. Als Nächstes verwenden wir die Daten, die Prometheus als Datenquelle von Grafana speichert, damit wir unsere Metriken stilvoll anzeigen können.

Schritt 5: Hinzufügen von Kafka-Metriken zu Grafana

Jetzt sind wir beim letzten und besten Teil. Hier werden wir Prometheus als unsere Datenquelle hinzufügen und dann alles mit schönen Grafiken und Diagrammen visualisieren. Loggen Sie sich in Ihr Grafana-Webinterface ein und gehen Sie wie folgt vor. Wenn Sie Grafana nicht installiert haben, verwenden Sie bitte die folgenden Anleitungen, um es schnell einzurichten.

So installieren Sie Grafana auf CentOS 8 / RHEL 8

Grafana unter Ubuntu installieren | Debian

So installieren Sie Grafana auf CentOS 7

Datenquelle hinzufügen

Sobald Sie sich in der Grafana-Weboberfläche befinden, klicken Sie auf das Zahnradsymbol für die Einstellungen und wählen Sie "Datenquellen” Option aus der Dropdown-Liste.

Dadurch wird das Datenquellenmenü geöffnet, in dem Sie mehr hinzufügen können. Klicke auf "Datenquelle hinzufügen” Registerkarte

Wie Sie sich vorstellen können, werden wir wählen Prometheus denn das haben wir schon vorher konfiguriert.

Nachdem wir die Prometheus-Datenquelle ausgewählt haben, müssen wir Grafana mitteilen, wo der Prometheus-Server zu finden ist. Gib einen süßen Namen und deine IP und den Port aus, neben dem Prometheus läuft URL.

Sie können die . weiter hinzufügen Scrape-Intervall, Abfrage-Timeout und HTTP Methode. Klicken Sie danach auf „Speichern und testen" Taste. Wenn alles gut geht, sollte die grüne Meldung erscheinen. Stellen Sie bei Fehlern sicher, dass Ihr Prometheus-Server läuft und erreichbar ist. Öffnen Sie den Port, falls er sich hinter einer Firewall befindet.

Dashboard importieren

Nachdem wir die Datenquelle hinzugefügt haben, fügen wir ein Dashboard hinzu, das visualisiert, was sich in der Datenquelle befindet. Klicken Sie noch auf Grafana auf das + drücken und dann auswählen Importieren weil wir ein bereits erstelltes Dashboard verwenden werden, das von . erstellt wurde Robuste Wahrnehmung. Seine ID ist 721

Geben Sie auf der Importseite die ID aus 721 dann klicke auf „Belastung" Taste.

Auf der nächsten Seite werden Sie nach einem Namen gefragt, dann sollten Sie die Datenquelle auswählen, die wir im Dropdown-Menü unten auf der Seite hinzugefügt haben. Wenn Sie fertig sind, klicken Sie einfach auf „Importieren“.

Und Sie sollten Ihre Metriken wunderbar angezeigt haben, wie unten geteilt.

Fazit

Sie haben jetzt Ihre Kafka-Metriken auf Grafana gut angezeigt und haben somit eine tiefere Sichtbarkeit Ihrer Themen und anderer. Wir danken Ihnen für Ihre anhaltende Unterstützung und hoffen, dass der Leitfaden hilfreich war. Wir danken allen Schöpfern der Tools, die in diesem Handbuch verwendet werden, um das Leben von Entwicklern und Administratoren zu verbessern. Weitere Anleitungen, die dieser ähneln, finden Sie unten.

Installieren und konfigurieren Sie Telegraf auf RHEL 8 / CentOS 8

Bereitstellen von Prometheus auf dem EKS Kubernetes-Cluster

So installieren Sie Prometheus und node_exporter auf Debian 10 (Buster)

Monitor Etcd Cluster mit Prometheus und Grafana

Redis Server-Überwachung mit Prometheus und Grafana in 5 Minuten

Überwachen Sie die Linux-Serverleistung mit Prometheus und Grafana in 5 Minuten

So überwachen Sie den Apache-Webserver mit Prometheus und Grafana in 5 Minuten

Überwachen Sie den BIND-DNS-Server mit Prometheus und Grafana

Fix Der Ubisoft-Dienst ist derzeit nicht verfügbar
Uplay oder jetzt, wie es als Ubisoft Connect bekannt ist, ist der Store für Spiele, der von den Ubisoft-Studios angeboten wird. Egal, ob Sie Assasins ...
Fix Wireless Xbox One Controller erfordert PIN unter Windows 10
Xbox von Microsoft ist ein beliebtes Spielgerät, das sich nahtlos mit den Microsoft-Computern verbindet und außerdem benutzerfreundlich ist. Es ist so...
Steam-Captcha-Fehler Ihre Antwort auf das Captcha scheint ungültig zu sein Fix
Steam ist zweifellos eine der beliebtesten Gaming-Apps, mit der Sie viel mehr tun können, als nur Spiele zu spielen. Sie können beispielsweise sogar S...