Kafka-Exporteur für Prometheus. Weitere Metriken von Kafka finden Sie im JMX-Exporter.
Unterstützt Apache Kafka Version 0.10.1.0 (und höher).
Binärdateien können von der Seite „Releases“ heruntergeladen werden.
make
make docker
docker pull danielqsj/kafka-exporter:latest
Es kann direkt verwendet werden, anstatt das Image selbst erstellen zu müssen. (Docker Hub danielqsj/kafka-exporter)
kafka_exporter --kafka.server=kafka:9092 [--kafka.server = another-server ...]
docker run -ti --rm -p 9308:9308 danielqsj/kafka-exporter --kafka.server=kafka:9092 [--kafka.server=another-server ...]
Erstellen Sie eine docker-compose.yml
Datei
services:
kafka-exporter:
image: danielqsj/kafka-exporter
command: ["--kafka.server=kafka:9092", "[--kafka.server=another-server ...]"]
ports:
- 9308:9308
dann führe es aus
docker-compose up -d
Dieses Bild ist mit verschiedenen Flags konfigurierbar
Flaggenname | Standard | Beschreibung |
---|---|---|
kafka.server | kafka:9092 | Adressen (Host:Port) des Kafka-Servers |
kafka.version | 2.0.0 | Kafka-Broker-Version |
sasl.aktiviert | FALSCH | Verbinden Sie sich über SASL/PLAIN |
sasl.handshake | WAHR | Setzen Sie dies nur auf „false“, wenn Sie einen Nicht-Kafka-SASL-Proxy verwenden |
sasl.Benutzername | SASL-Benutzername | |
sasl.passwort | SASL-Benutzerpasswort | |
sasl.mechanismus | Der SASL-Mechanismus kann einfach sein, scram-sha512, scram-sha256 | |
sasl.service-name | Dienstname bei Verwendung von Kerberos Auth | |
sasl.kerberos-config-path | Kerberos-Konfigurationspfad | |
sasl.realm | Kerberos-Bereich | |
sasl.keytab-Pfad | Pfad der Kerberos-Keytab-Datei | |
sasl.kerberos-auth-type | Kerberos-Authentifizierungstyp. Entweder „keytabAuth“ oder „userAuth“ | |
tls.enabled | FALSCH | Stellen Sie über TLS eine Verbindung zu Kafka her |
tls.server-name | Wird verwendet, um den Hostnamen auf den zurückgegebenen Zertifikaten zu überprüfen, sofern nicht tls.insecure-skip-tls-verify angegeben ist. Der Name des Kafka-Servers sollte angegeben werden | |
tls.ca-Datei | Die optionale Zertifizierungsstellendatei für die Kafka-TLS-Clientauthentifizierung | |
tls.cert-Datei | Die optionale Zertifikatsdatei für die Kafka-Client-Authentifizierung | |
tls.key-Datei | Die optionale Schlüsseldatei für die Kafka-Client-Authentifizierung | |
tls.insecure-skip-tls-verify | FALSCH | Bei „true“ wird das Zertifikat des Servers nicht auf Gültigkeit überprüft |
server.tls.enabled | FALSCH | Aktivieren Sie TLS für den Webserver |
server.tls.mutual-auth-enabled | FALSCH | Aktivieren Sie die gegenseitige Authentifizierung des TLS-Clients |
server.tls.ca-Datei | Die Zertifizierungsstellendatei für den Webserver | |
server.tls.cert-Datei | Die Zertifikatsdatei für den Webserver | |
server.tls.key-Datei | Die Schlüsseldatei für den Webserver | |
themenfilter | .* | Regex, der bestimmt, welche Themen gesammelt werden sollen |
topic.exclude | ^$ | Regex, der bestimmt, welche Themen ausgeschlossen werden sollen |
Gruppenfilter | .* | Regex, der bestimmt, welche Verbrauchergruppen erfasst werden sollen |
group.exclude | ^$ | Regex, der bestimmt, welche Verbrauchergruppen ausgeschlossen werden sollen |
web.listen-adresse | :9308 | Adresse zum Abhören für Webschnittstelle und Telemetrie |
web.telemetry-path | /Metriken | Pfad, unter dem Metriken verfügbar gemacht werden |
log.enable-sarama | FALSCH | Aktivieren Sie die Sarama-Protokollierung |
Verwenden Sie.consumelag.zookeeper | FALSCH | wenn Sie eine Gruppe von zookeeper verwenden müssen |
zookeeper.server | localhost:2181 | Adresse (Hosts) des Zookeeper-Servers |
kafka.labels | Name des Kafka-Clusters | |
Metadaten aktualisieren | 30er Jahre | Aktualisierungsintervall für Metadaten |
offset.show-all | WAHR | Ob der Offset/die Verzögerung für alle Verbrauchergruppen angezeigt wird, andernfalls werden nur verbundene Verbrauchergruppen angezeigt |
gleichzeitig.enable | FALSCH | Wenn „true“, lösen alle Scrapes Kafka-Vorgänge aus, andernfalls werden die Ergebnisse geteilt. WARNUNG: Dies sollte bei großen Clustern deaktiviert werden |
Thema.Arbeiter | 100 | Anzahl der Themenarbeiter |
Ausführlichkeit | 0 | Ausführlichkeitsprotokollebene |
Boolesche Werte werden von Kingpin eindeutig verwaltet. Jedes boolesche Flag hat ein negatives Komplement: --
und --no-
.
Zum Beispiel:
Wenn Sie sasl.handshake
deaktivieren müssen, können Sie das Flag --no-sasl.handshake
hinzufügen
Dokumente zu offengelegten Prometheus-Metriken.
Einzelheiten zu den zugrunde liegenden Metriken finden Sie unter Apache Kafka.
Details zu den Metriken
Name | Offengelegte Informationen |
---|---|
kafka_brokers | Anzahl der Broker im Kafka-Cluster |
Beispiel für die Ausgabe von Metriken
# HELP kafka_brokers Number of Brokers in the Kafka Cluster.
# TYPE kafka_brokers gauge
kafka_brokers 3
Details zu den Metriken
Name | Offengelegte Informationen |
---|---|
kafka_topic_partitions | Anzahl der Partitionen für dieses Thema |
kafka_topic_partition_current_offset | Aktueller Offset eines Brokers am Thema/Partition |
kafka_topic_partition_oldest_offset | Ältester Offset eines Brokers bei Topic/Partition |
kafka_topic_partition_in_sync_replica | Anzahl der synchronisierten Replikate für dieses Thema/diese Partition |
kafka_topic_partition_leader | Leader-Broker-ID dieses Themas/dieser Partition |
kafka_topic_partition_leader_is_preferred | 1, wenn Thema/Partition den bevorzugten Broker verwendet |
kafka_topic_partition_replicas | Anzahl der Replikate für dieses Thema/diese Partition |
kafka_topic_partition_under_replicated_partition | 1, wenn Thema/Partition unter „Repliziert“ steht |
Beispiel für die Ausgabe von Metriken
# HELP kafka_topic_partitions Number of partitions for this Topic
# TYPE kafka_topic_partitions gauge
kafka_topic_partitions{topic="__consumer_offsets"} 50
# HELP kafka_topic_partition_current_offset Current Offset of a Broker at Topic/Partition
# TYPE kafka_topic_partition_current_offset gauge
kafka_topic_partition_current_offset{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_oldest_offset Oldest Offset of a Broker at Topic/Partition
# TYPE kafka_topic_partition_oldest_offset gauge
kafka_topic_partition_oldest_offset{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_in_sync_replica Number of In-Sync Replicas for this Topic/Partition
# TYPE kafka_topic_partition_in_sync_replica gauge
kafka_topic_partition_in_sync_replica{partition="0",topic="__consumer_offsets"} 3
# HELP kafka_topic_partition_leader Leader Broker ID of this Topic/Partition
# TYPE kafka_topic_partition_leader gauge
kafka_topic_partition_leader{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_leader_is_preferred 1 if Topic/Partition is using the Preferred Broker
# TYPE kafka_topic_partition_leader_is_preferred gauge
kafka_topic_partition_leader_is_preferred{partition="0",topic="__consumer_offsets"} 1
# HELP kafka_topic_partition_replicas Number of Replicas for this Topic/Partition
# TYPE kafka_topic_partition_replicas gauge
kafka_topic_partition_replicas{partition="0",topic="__consumer_offsets"} 3
# HELP kafka_topic_partition_under_replicated_partition 1 if Topic/Partition is under Replicated
# TYPE kafka_topic_partition_under_replicated_partition gauge
kafka_topic_partition_under_replicated_partition{partition="0",topic="__consumer_offsets"} 0
Details zu den Metriken
Name | Offengelegte Informationen |
---|---|
kafka_consumergroup_current_offset | Aktueller Offset einer ConsumerGroup bei Thema/Partition |
kafka_consumergroup_lag | Aktuelle ungefähre Verzögerung einer ConsumerGroup bei Thema/Partition |
kafka_consumergroupzookeeper_lag_zookeeper | Aktuelle ungefähre Verzögerung (Zookeeper) einer ConsumerGroup bei Thema/Partition |
Um die Metriken kafka_consumergroupzookeeper_lag_zookeeper
erfassen zu können, müssen Sie die folgenden Flags setzen:
use.consumelag.zookeeper
: Aktivieren Sie die Erfassung der Verbrauchsverzögerung von zookeeperzookeeper.server
: Adresse für die Verbindung zu zookeeperBeispiel für die Ausgabe von Metriken
# HELP kafka_consumergroup_current_offset Current Offset of a ConsumerGroup at Topic/Partition
# TYPE kafka_consumergroup_current_offset gauge
kafka_consumergroup_current_offset{consumergroup="KMOffsetCache-kafka-manager-3806276532-ml44w",partition="0",topic="__consumer_offsets"} -1
# HELP kafka_consumergroup_lag Current Approximate Lag of a ConsumerGroup at Topic/Partition
# TYPE kafka_consumergroup_lag gauge
kafka_consumergroup_lag{consumergroup="KMOffsetCache-kafka-manager-3806276532-ml44w",partition="0",topic="__consumer_offsets"} 1
Grafana Dashboard-ID: 7589, Name: Kafka Exporter Overview.
Einzelheiten zum Dashboard finden Sie in der Kafka Exporter-Übersicht.
Wenn Ihnen Kafka Exporter gefällt, geben Sie mir bitte einen Stern. Dies wird dazu beitragen, dass mehr Menschen Kafka Exporter kennenlernen.
Schicken Sie mir gerne Pull-Requests.
Der Dank geht an diese wunderbaren Menschen:
Ihre Spende wird mich ermutigen, Kafka Exporter weiter zu verbessern. Unterstützen Sie die Alipay-Spende.
Der Code ist unter der Apache-Lizenz 2.0 lizenziert.