zoukankan      html  css  js  c++  java
  • Kafka监控框架介绍

    前段时间在想Kafka怎么监控、怎么知道生产的消息或消费的消费是否有丢失,目前有几个开源的Kafka监控框架这里整理了下,不过这几个框架都有各自的问题侧重点不一样;

    1、Kafka Monitor
    2、Availability-Monitor-for-Kafka
    3、Kafka Web Console
    4、Kafka Manage
    5、KafkaOffsetMonitor

    kafka-monitor

    git clone https://github.com/linkedin/kafka-monitor.git  
    cd kafka-monitor  
    ./gradlew jar    //下载依赖,这个会比较久编译源码  
    

    启动KafkaMonitor

    ./bin/kafka-monitor-start.sh config/kafka-monitor.properties  
    

      启动端到端监控Kafka集群:

     ./bin/end-to-end-test.sh --topic test --broker-list localhost:9092 --zookeeper localhost:2181
    

      打开监控页面:http://localhost:8000/index.html 页面显示 kafka实时的度量监控值(例如,服务可用性,消息丢失率)动态图显示
      

      Kafka-monitor把度量监控信息写入JMX中,并使用jolokia框架所以可以通过http请求获取监控的度量值;

    curl localhost:8778/jolokia/read/kmf.services:type=produce-service,name=*/produce-availability-avg
    

      Kafka-monitor与Kafka为同根同源的都是LinkedIn公司开源的不过Kafka-minitor刚开源没半年所有功能相对于其他监控框架来说比较简单;
      kafka-monitor启动后会启动一个produce、一个consume,broker过时时间为10分钟; 用于捕获服务的可用性、消息丢失率、延迟率等,可监控集群与单个kafka;
      kafka-monitor默认自动创建监控topic,可以修改为已经存在的topic,自动增加partition,确保监控topic的partition# >= broker#
      produce用于生成消息到kafka,并产生生成速率、可用性度量数据
      consume从kafka中消费消息,并产生消息丢失率、消息重复率、端到端延迟 依赖生产服务来提供消息内嵌的消息序列号和时间戳。

    KafkaManager

      KafkaManager为Yahoo开源的KafkaManager管理工具, 可管理多个集群; 能够更容易地检查集群的状态, 能够创建主题, 执行首选的副本选择,能够基于集群当前的状态生成分区分配,并基于生成的分配执行分区的重分配 检查集群状态可以发现集群中主题分布不均匀、分区分布不均匀等,

    KafkaManager 编译生成,下载依赖会比较久

    Availability Monitor for Kafka

      Availability Monitor for Kafka微软开源的Kafka可用性、延迟性的监控框架,提供JMX接口,并可存入SqlServer;

      AvailabilityMonitor可监控发送与读取数据的可用性、延迟;
      Producer可用性=所有主题和分区成功发送消息数/尝试发送消息数
      Consumer可用性=所有主题和分区消息成功读取数/消息尝试读取数
      通过往Producer发送数据测试Producer的可用性与延迟,消息以CanaryMessage_为前缀,可以通过producerProperties.json修改;

      通过从所有分区的尾部读取数据来衡量Consumer的可用性与延迟


    文章首发地址:Solinx
    http://www.solinx.co/archives/851

  • 相关阅读:
    Python实现归并排序
    zip解决杨辉三角问题
    Python中协程、多线程、多进程、GIL锁
    Python copy(), deepcopy()
    Python collections的使用
    javascript中的类
    python3中的zip函数
    三数之和(Python and C++解法)
    两数之和(Python and C++解法)
    Python中list、dict、set、tuple的用法细节区别
  • 原文地址:https://www.cnblogs.com/softlin/p/6346454.html
Copyright © 2011-2022 走看看