Kubernetes Prometheus 系例 | kubernetes 部署 Kafka exporter监控Kafka集群

发布于:2024-07-03 ⋅ 阅读:(16) ⋅ 点赞:(0)

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等

持续更新中,关注不迷糊。