prometheus 监控 kafka 常见的有两种开源方案;
部署 exporter 或 jmx 配置监控。
项目地址:
kafka_exporter:https://github.com/danielqsj/kafka_exporter
jmx_exporter:https://github.com/prometheus/jmx_exporter
本文采用kafka_exporter方式实现,相比JMX,其优势在于不需要消耗 JVM资源,指标收集时间从分钟级别降到秒级别,便于大规模集群的监控。
一、Kafka exporter介绍
Kafka exporter 是一个用于导出 Apache Kafka 集群监控指标的工具。它通常与 Prometheus 和 Grafana 等监控工具结合使用,以提供对 Kafka 集群运行状态的实时监控和可视化。
Kafka exporter 的主要功能是通过 JMX(Java Management Extensions)或其他接口从 Kafka 集群中收集各种运行时指标,如生产者吞吐量、消费者延迟、分区状态等。这些指标被转换为 Prometheus 可以理解的格式,然后 Prometheus 服务器定期从 exporter 拉取这些指标数据。
二、kubernetes部署Kafka exporter
---
apiVersion: apps/v1
kind: Deployment
metadata:name: kafka-exporternamespace: monitor labels:app: kafka-exporter
spec:replicas: 1selector:matchLabels:app: kafka-exportertemplate:metadata:labels:app: kafka-exporterspec:containers:- name: kafka-exporterimage: ccr.ccs.tencentyun.com/rig-agent/kafka-exporter:v1.3.0imagePullPolicy: IfNotPresentargs: ["--kafka.server=10.10.101.126:32094"] #kafka服务地址ports:- containerPort: 9308name: http---
apiVersion: v1
kind: Service
metadata:labels:app: kafka-exportername: kafka-exporternamespace: monitor
spec:type: ClusterIPports:- name: httpport: 9308protocol: TCPtargetPort: 9308selector:app: kafka-exporter
三、Prometheus配置
- job_name: "kafka"static_configs:- targets: ["kafka-exporter:9308"] #servicename加端口
更改配置文件后,记得重启Prometheus
四、Grafana配置
链接:
https://grafana.com/grafana/dashboards/?search=kafka+exporter
注:如果出现no data,可能是kafka集群中还没有这些数据,比如kafka_consumergroup等
持续更新中,关注不迷糊。