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-exporter
namespace: monitor
labels:
app: kafka-exporter
spec:
replicas: 1
selector:
matchLabels:
app: kafka-exporter
template:
metadata:
labels:
app: kafka-exporter
spec:
containers:
- name: kafka-exporter
image: ccr.ccs.tencentyun.com/rig-agent/kafka-exporter:v1.3.0
imagePullPolicy: IfNotPresent
args: ["--kafka.server=10.10.101.126:32094"] #kafka服务地址
ports:
- containerPort: 9308
name: http
---
apiVersion: v1
kind: Service
metadata:
labels:
app: kafka-exporter
name: kafka-exporter
namespace: monitor
spec:
type: ClusterIP
ports:
- name: http
port: 9308
protocol: TCP
targetPort: 9308
selector:
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等
持续更新中,关注不迷糊。