Exportador de Kafka para Prometheus. Para otras métricas de Kafka, eche un vistazo al exportador JMX.
Admite la versión 0.10.1.0 de Apache Kafka (y posteriores).
El binario se puede descargar desde la página de lanzamientos.
make
make docker
docker pull danielqsj/kafka-exporter:latest
Se puede utilizar directamente en lugar de tener que crear la imagen usted mismo. (Docker Hub danielqsj/kafka-exportador)
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 ...]
hacer volar un docker-compose.yml
services:
kafka-exporter:
image: danielqsj/kafka-exporter
command: ["--kafka.server=kafka:9092", "[--kafka.server=another-server ...]"]
ports:
- 9308:9308
luego ejecútelo
docker-compose up -d
Esta imagen es configurable usando diferentes banderas.
Nombre de la bandera | Por defecto | Descripción |
---|---|---|
servidor kafka | kafka:9092 | Direcciones (host:puerto) del servidor Kafka |
versión.kafka | 2.0.0 | Versión del corredor Kafka |
sasl.enabled | FALSO | Conéctese usando SASL/PLAIN |
sasl.apretón de manos | verdadero | Establezca esto solo en falso si usa un proxy SASL que no sea Kafka |
sasl.nombre de usuario | nombre de usuario SASL | |
sasl.contraseña | Contraseña de usuario SASL | |
mecanismo.sasl | El mecanismo SASL puede ser simple, scram-sha512, scram-sha256 | |
sasl.nombre-servicio | Nombre del servicio al utilizar Kerberos Auth | |
ruta-config-sasl.kerberos | Ruta de configuración de Kerberos | |
sasl.reino | Reino de Kerberos | |
ruta-sasl.keytab | Ruta del archivo de tabla de claves de Kerberos | |
tipo de autenticación sasl.kerberos | Tipo de autenticación Kerberos. Ya sea 'keytabAuth' o 'userAuth' | |
tls.enabled | FALSO | Conéctese a Kafka usando TLS |
tls.nombre-servidor | Se utiliza para verificar el nombre de host en los certificados devueltos, a menos que se proporcione tls.insecure-skip-tls-verify. Se debe proporcionar el nombre del servidor Kafka. | |
archivo tls.ca | El archivo de autoridad de certificación opcional para la autenticación del cliente Kafka TLS | |
archivo tls.cert | El archivo de certificado opcional para la autenticación del cliente Kafka | |
archivo tls.key | El archivo de clave opcional para la autenticación del cliente Kafka | |
tls.insecure-skip-tls-verificar | FALSO | Si es verdadero, no se comprobará la validez del certificado del servidor. |
servidor.tls.enabled | FALSO | Habilite TLS para el servidor web |
server.tls.mutual-auth-habilitado | FALSO | Habilitar la autenticación mutua del cliente TLS |
archivo server.tls.ca | El archivo de autoridad de certificación para el servidor web. | |
archivo server.tls.cert | El archivo de certificado para el servidor web. | |
archivo server.tls.key | El archivo clave para el servidor web. | |
tema.filtro | .* | Regex que determina qué temas recopilar |
tema.excluir | ^$ | Regex que determina qué temas excluir |
filtro.grupo | .* | Regex que determina qué grupos de consumidores recopilar |
grupo.excluir | ^$ | Regex que determina qué grupos de consumidores excluir |
dirección-web.escucha | :9308 | Dirección para escuchar la interfaz web y la telemetría |
ruta-web.telemetría | /métrica | Ruta bajo la cual exponer métricas |
log.enable-sarama | FALSO | Activar el registro de Sarama |
uso.consumelag.zookeeper | FALSO | si necesitas usar un grupo de zookeeper |
servidor.zookeeper | servidor local: 2181 | Dirección (hosts) del servidor del cuidador del zoológico |
kafka.etiquetas | Nombre del clúster Kafka | |
actualizar.metadatos | 30 años | Intervalo de actualización de metadatos |
offset.mostrar-todo | verdadero | Si se muestra el desplazamiento/retraso para todos los grupos de consumidores; de lo contrario, solo se muestran los grupos de consumidores conectados |
habilitar.concurrente | FALSO | Si es verdadero, todos los scrapes activarán operaciones de Kafka; de lo contrario, compartirán los resultados. ADVERTENCIA: Esto debería estar deshabilitado en clústeres grandes |
tema.trabajadores | 100 | Número de trabajadores temáticos |
verbosidad | 0 | Nivel de registro de detalle |
Los valores booleanos los gestiona exclusivamente Kingpin. Cada indicador booleano tendrá un complemento negativo: --<name>
y --no-<name>
.
Por ejemplo:
Si necesita deshabilitar sasl.handshake
, puede agregar la bandera --no-sasl.handshake
Documentos sobre métricas expuestas de Prometheus.
Para obtener detalles sobre las métricas subyacentes, consulte Apache Kafka.
Detalles de métricas
Nombre | Informaciones expuestas |
---|---|
kafka_brokers | Número de corredores en el clúster Kafka |
Ejemplo de salida de métricas
# HELP kafka_brokers Number of Brokers in the Kafka Cluster.
# TYPE kafka_brokers gauge
kafka_brokers 3
Detalles de métricas
Nombre | Informaciones expuestas |
---|---|
kafka_topic_partitions | Número de particiones para este tema |
kafka_topic_partition_current_offset | Compensación actual de un corredor en el tema/partición |
kafka_topic_partition_oldest_offset | Compensación más antigua de un corredor en el tema/partición |
kafka_topic_partition_in_sync_replica | Número de réplicas sincronizadas para este tema/partición |
kafka_topic_partition_leader | ID del corredor líder de este tema/partición |
kafka_topic_partition_leader_is_preferred | 1 si el tema/partición utiliza el corredor preferido |
kafka_topic_partition_replicas | Número de réplicas para este tema/partición |
kafka_topic_partition_under_replicated_partition | 1 si el tema/partición está en Replicado |
Ejemplo de salida de métricas
# 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
Detalles de métricas
Nombre | Informaciones expuestas |
---|---|
kafka_consumergroup_current_offset | Compensación actual de un grupo de consumidores en el tema/partición |
kafka_consumergroup_lag | Retraso aproximado actual de un grupo de consumidores en el tema/partición |
kafka_consumergroupzookeeper_lag_zookeeper | Retraso aproximado actual (guardián del zoológico) de un grupo de consumidores en el tema/partición |
Para poder recopilar las métricas kafka_consumergroupzookeeper_lag_zookeeper
, debe configurar los siguientes indicadores:
use.consumelag.zookeeper
: habilita la recopilación y el consumo del retraso del cuidador del zoológicozookeeper.server
: dirección para la conexión con zookeeperEjemplo de salida de métricas
# 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
ID del panel de Grafana: 7589, nombre: Descripción general del exportador de Kafka.
Para obtener detalles sobre el panel, consulte Descripción general del exportador de Kafka.
Si te gusta Kafka Exporter, dame una estrella. Esto ayudará a que más personas conozcan Kafka Exporter.
No dudes en enviarme solicitudes de extracción.
Gracias a estas maravillosas personas:
Tu donación me animará a seguir mejorando Kafka Exporter. Apoye la donación de Alipay.
El código tiene la licencia Apache 2.0.