Exportador Kafka para Prometheus. Para outras métricas do Kafka, dê uma olhada no exportador JMX.
Suporte ao Apache Kafka versão 0.10.1.0 (e posterior).
O binário pode ser baixado na página de lançamentos.
make
make docker
docker pull danielqsj/kafka-exporter:latest
Ele pode ser usado diretamente, em vez de você mesmo ter que construir a imagem. (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 ...]
faça um docker-compose.yml
voar
services:
kafka-exporter:
image: danielqsj/kafka-exporter
command: ["--kafka.server=kafka:9092", "[--kafka.server=another-server ...]"]
ports:
- 9308:9308
então execute-o
docker-compose up -d
Esta imagem é configurável usando diferentes sinalizadores
Nome da bandeira | Padrão | Descrição |
---|---|---|
servidor kafka | Kafka:9092 | Endereços (host:porta) do servidor Kafka |
versão kafka | 2.0.0 | Versão do corretor Kafka |
sasl.enabled | falso | Conecte-se usando SASL/PLAIN |
sasl.aperto de mão | verdadeiro | Defina como falso apenas se estiver usando um proxy SASL não Kafka |
sasl.nome de usuário | Nome de usuário SASL | |
sasl.senha | Senha do usuário SASL | |
sasl.mecanismo | O mecanismo SASL pode ser simples, scram-sha512, scram-sha256 | |
sasl.nome do serviço | Nome do serviço ao usar Kerberos Auth | |
sasl.kerberos-config-path | Caminho de configuração do Kerberos | |
sasl.realm | Reino Kerberos | |
caminho sasl.keytab | Caminho do arquivo keytab Kerberos | |
sasl.kerberos-auth-type | Tipo de autenticação Kerberos. 'keytabAuth' ou 'userAuth' | |
tls.enabled | falso | Conecte-se ao Kafka usando TLS |
tls.nome do servidor | Usado para verificar o nome do host nos certificados retornados, a menos que tls.insecure-skip-tls-verify seja fornecido. O nome do servidor kafka deve ser fornecido | |
arquivo tls.ca | O arquivo de autoridade de certificação opcional para autenticação de cliente Kafka TLS | |
arquivo tls.cert | O arquivo de certificado opcional para autenticação de cliente Kafka | |
arquivo tls.key | O arquivo de chave opcional para autenticação do cliente Kafka | |
tls.insecure-skip-tls-verify | falso | Se for verdade, o certificado do servidor não será verificado quanto à validade |
servidor.tls.enabled | falso | Habilitar TLS para servidor web |
server.tls.mutual-auth habilitado | falso | Habilitar autenticação mútua do cliente TLS |
arquivo server.tls.ca | O arquivo de autoridade de certificação para o servidor web | |
arquivo server.tls.cert | O arquivo de certificado para o servidor web | |
arquivo server.tls.key | O arquivo chave para o servidor web | |
tópico.filtro | .* | Regex que determina quais tópicos coletar |
tópico.excluir | ^$ | Regex que determina quais tópicos excluir |
grupo.filtro | .* | Regex que determina quais grupos de consumidores coletar |
grupo.excluir | ^$ | Regex que determina quais grupos de consumidores excluir |
web.listen-endereço | :9308 | Endereço para escutar interface web e telemetria |
web.telemetry-path | /métricas | Caminho sob o qual expor métricas |
log.enable-sarama | falso | Ativar o registro do Sarama |
use.consumelag.zookeeper | falso | se você precisar usar um grupo do zookeeper |
zookeeper.servidor | host local:2181 | Endereço (hosts) do servidor zookeeper |
kafka.labels | Nome do cluster Kafka | |
atualizar.metadata | 30 anos | Intervalo de atualização de metadados |
offset.mostrar tudo | verdadeiro | Se mostrar o deslocamento/atraso para todos os grupos de consumidores, caso contrário, mostrar apenas grupos de consumidores conectados |
simultâneo.enable | falso | Se for verdade, todos os scrapes irão acionar operações kafka, caso contrário, eles compartilharão os resultados. AVISO: Isto deve ser desabilitado em clusters grandes |
tópico.trabalhadores | 100 | Número de trabalhadores do tópico |
verbosidade | 0 | Nível de registro de verbosidade |
Os valores booleanos são gerenciados exclusivamente pelo Kingpin. Cada sinalizador booleano terá um complemento negativo: --
e --no-
.
Por exemplo:
Se você precisar desabilitar sasl.handshake
, você pode adicionar flag --no-sasl.handshake
Documentos sobre métricas expostas do Prometheus.
Para obter detalhes sobre as métricas subjacentes, consulte Apache Kafka.
Detalhes das métricas
Nome | Informações expostas |
---|---|
kafka_brokers | Número de corretores no cluster Kafka |
Exemplo de saída de métricas
# HELP kafka_brokers Number of Brokers in the Kafka Cluster.
# TYPE kafka_brokers gauge
kafka_brokers 3
Detalhes das métricas
Nome | Informações expostas |
---|---|
kafka_topic_partitions | Número de partições para este tópico |
kafka_topic_partition_current_offset | Deslocamento atual de um corretor no tópico/partição |
kafka_topic_partition_oldest_offset | Offset mais antigo de um corretor no tópico/partição |
kafka_topic_partition_in_sync_replica | Número de réplicas sincronizadas para este tópico/partição |
kafka_topic_partition_leader | ID do corretor líder deste tópico/partição |
kafka_topic_partition_leader_is_preferred | 1 se o tópico/partição estiver usando o corretor preferencial |
kafka_topic_partition_replicas | Número de réplicas para este tópico/partição |
kafka_topic_partition_under_replicated_partition | 1 se o tópico/partição estiver em replicado |
Exemplo de saída 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
Detalhes das métricas
Nome | Informações expostas |
---|---|
kafka_consumergroup_current_offset | Deslocamento atual de um ConsumerGroup no Tópico/Partição |
kafka_consumergroup_lag | Atraso aproximado atual de um ConsumerGroup no tópico/partição |
kafka_consumergroupzookeeper_lag_zookeeper | Atraso aproximado atual (zookeeper) de um grupo de consumidores no tópico/partição |
Para poder coletar as métricas kafka_consumergroupzookeeper_lag_zookeeper
, você deve definir os seguintes sinalizadores:
use.consumelag.zookeeper
: habilita o atraso de consumo de coleta do zookeeperzookeeper.server
: endereço para conexão ao zookeeperExemplo de saída 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 do painel Grafana: 7589, nome: Visão geral do exportador Kafka.
Para obter detalhes do painel, consulte Visão geral do exportador Kafka.
Se você gosta do Kafka Exporter, por favor me dê uma estrela. Isso ajudará mais pessoas a conhecer o Kafka Exporter.
Fique à vontade para me enviar solicitações pull.
Os agradecimentos vão para essas pessoas maravilhosas:
Sua doação me incentivará a continuar melhorando o Kafka Exporter. Apoie a doação Alipay.
O código está licenciado sob a Licença Apache 2.0.