kafka监控

kafka监控部署

kafka使用Prometheus、Grafana和kafka_exporter来构建kafka指标监控

问题背景

在实时场景下,对于数据积压是很常见的,我们更希望如何去快速知道有没有数据积压,目前消费了多少,速度怎么样,趋势如何。可以使用原生命令kafka-consumer-groups.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --group test --describe来查看当前group所消费的topic的进度如何,如果group很多,topic很多,这样使用命令的效率反而会更低

解决方案

将Kafka的度量指标暴露给监控系统,以便进行数据收集、分析和可视化展示。使用kafka-exporter、PrometheusGrafana这一组合来进行Kafka监控的原理和流程大致如下:

原理概述

  1. kafka-exporter: kafka-exporter是一个代理或者中间件,它的主要任务是将Kafka通过JMX暴露的指标转换成Prometheus能够理解的格式。Kafka内部使用Yammer Metrics来收集各种性能和状态指标,并通过JMX暴露出来。kafka-exporter通过连接到Kafka BrokerJMX端口,读取这些指标,并以HTTP端点的形式提供给Prometheus拉取

  2. Promethues: Promethues是一个开源的监控系统,可以定期地从目标拉取指标数据,Prometheus负责收集这些数据,并存储在本地数据库中,支持查询语言 PromQL 进行灵活的数据检索和聚合运算

  3. Grafana: Grafana是一个强大的可视化平台,可以连接到Prometheus作为数据源,用来展示和分析监控数据。用户可以在Grafana中创建仪表板,通过各种图表和面板直观地展示Kafka的性能指标,如消息吞吐量、延迟、消费者滞后等

监控部署

kafka-exporter部署

  1. github上下载官网安装包
    kafka_exporter

  2. 解压安装包

    tar -zxvf kafka_exporter-1.7.0.linux-amd64.tar.gz -C kafka_exporter-1.7.0
    
  3. 启动程序

    nohup ./kafka_exporter --kafka.server=node01:9092 --kafka.server=node02:9092 --kafka.server=node03:9092 > /dev/null 2>&1 &
    
  4. 去web上查看是否成功生成metrics数据

    如果生成如下的结果,那就说明metrics数据已经采集到了
    kafka_metrics

Prometheus采集metrics数据

  1. 配置数据采集地址

    在配置好监控数据源以后,现在就要告诉Prometheus应该去哪里采取数据给存放到本地中。打开Promethues的配置文件,增加kafka-exporter暴露的地址即可
    执行以下代码,代开配置文件

    vim promethues.yml
    

    在文件末尾添加以下代码

    - job_name: kafka-pro
        static_configs:
            - targets: ['node01:9308']
                labels:
                instance: kafka-pro
    

    这段代码的含义就是告诉Prometheus去targets采取数据来

    job_name: 指定监控任务的名称
    target: 监控的目标地址
    lables: 为监控目标添加额外的标签信息

  2. 重启Premothues服务

    sudo systemctl restart premothues
    
  3. 查看数据是否被采集到

    在web中打开网页http://10.10.1.27:9090/targets,查看是否出现我们的job,成功的情形如下:
    prometheus_kafka
    status: 服务状态,如果为up,表示服务可用

数据导入到Grafana形成看板

  1. 创建数据源

    选择使用Prometheus的datasource
    datasource

    指定地址
    address

  2. 下载看板模板json

    Grafana官网下载看板模板
    download

  3. 配置看板

    创建Prometheus的数据源
    import

    导入json看板配置文件
    jsonFile

    选择Prometheus的数据源
    choosesource

    现实看板
    final

posted @   Mason77  阅读(83)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示