生产中的Kafka监控工具

时间:2018-03-01 06:10:22

标签: apache-kafka

需要检查生产中监控Kafka的工具。 此外,工具不需要许可证或重型硬件。 特别是我需要一个工具来评估消费者对主题的偏差,主题的健康状况。

6 个答案:

答案 0 :(得分:10)

Landoop
Landoop通过用户界面,流式SQL引擎和集群监控增强了Kafka。它可以更快地监控Kafka数据管道。

它们提供了一个免费的一体化docker(LENSES Box),它可以为单个代理提供最多25M条消息。请注意,建议将其用于开发环境。

<强>汇合
另一个选项是Confluent Enterprise,它是生产环境的Kafka发行版。它还包括Control Centre,它是Apache-Kafka的管理系统,可通过用户界面进行集群监控和管理。

Yahoo Kafka Manager
Kafka's Manager是一种用于监控Kafka的工具,与上述工具相比,它提供的功能更少。

<强> KafDrop
KafDrop是用于监控Apache Kafka集群的UI。该工具显示诸如代理,主题,分区等信息,甚至可以让您查看消息。它是一个轻量级应用程序,在Spring Boot上运行,只需要很少的配置。

LinkedIn Burrow
Burrow是Apache Kafka的监控伴侣,它将消费者滞后检查作为服务提供,无需指定阈值。它监控所有消费者的承诺抵消额,并根据需要计算这些消费者的状态。提供HTTP端点以按需请求状态,以及提供其他Kafka群集信息。还有可配置的通知程序可以通过电子邮件或HTTP调用将状态发送到另一个服务。

Kafka的工具
Kafka's Tool是用于管理和使用Apache-Kafka集群的GUI应用程序。它提供了一个直观的UI,允许用户快速查看Kafka群集中的对象以及存储在群集主题中的消息。它包含面向开发人员和管理员的功能。


我担心您找不到适合生产环境的免费产品,但如果您负担不起,请选择Yahoo Kafka Manager,LinkedIn Burrow或KafDrop。 Confluent和Landoop的产品是最好的,但不幸的是,它们需要许可。

答案 1 :(得分:3)

有几种免费的监控解决方案,但都有其局限性。例如,Burrow,Kafka经理,Kafdrop,你可以brew your own使用JMX指标加上InfluxDB和Grafana。

Confluent Control Center非常适合您的要求,但它确实需要许可证。有一个30 day free trial available。除了监控一系列指标外,还需要实际监控各个主题以及流经的消息并对每个主题进行校验,以确保准确报告消耗情况。

答案 2 :(得分:2)

Kafka正在/通过JMX制作相当多的信息。您可以使用任何JMX客户端来获取它。 即使在您的应用程序内部,您也可以将Kafka JMX信息转发到JMX MBean以构建,例如JMX Facade。

一些具体建议:

  • Grafana + Prometheus与卡夫卡合作很好。您还可以从互联网上下载一些准备使用的仪表板(免费);
  • 我一直在使用hawtio来查看JMX信息,它也在执行这项工作(免费);
  • Confluent还提供监控;
  • Dynatrace还有一些特别的支持。

答案 3 :(得分:1)

这取决于监视的程度和自动化程度。 Kafka Manager是一个很好的起点,可以开始深入了解/观察集群的运行状况,吞吐量,延迟等,以及一些基本的管理操作,但是很快您将获得更多。例如,您需要监视消费者的健康状况吗?您是否需要查看主题内容来调试应用程序,执行验尸,跟踪消息流等?您将如何处理不良/格式错误的邮件,“中毒”主题等?建议您在工具箱中再添加一些项目:

  • Burrow-监视消费者群体的滞后并在消费者落后时发出警报。
  • Kafdrop 3-提供代理信息,并让您浏览主题内容(文本和Avro格式)。这是原始Kafdrop项目的最新分支,该项目一直得到积极维护,并与Docker和Kubernetes良好配合。 (温和的免责声明:我当时一直在为该工具做出贡献,但我不是原始作者。)
  • Prometheus和Grafana-与Manager / Monitor有一些重叠,但是Prometheus / Grafana更加完善,具有大量社区支持,并且易于与其他工具集成,自动发出警报等。

以上所有都是开放源代码,不需要许可。我之所以没有在其中列出Confluent,Landoop或KaDeck工具是因为它们是商业性的并且需要许可。而且,它们确实不能给您太多OSS替代产品,恕我直言。

自2014年以来,已经将Kafka作为大型微服务部署的主要消息传递/事件主干网运行了一段时间,不能仅仅强调基本的经纪人级别检查并关注整个端到端的重要性。从生产者到消费者的最终消息路径。具有讽刺意味的是,我们发现大多数时候我们都感觉到经纪人正在忙碌,实际上是应用程序编写得不好。我们倾向于使用工具的组合,直到编写我们自己的基本“ canary”应用程序为止,这些应用程序伪装成消息生产者和消费者,并在出现不利情况时为我们提供领先的指示。

Kafka确实在$KAFKA_HOME/bin中附带了一些基本的CLI工具,例如kafka-console-consumer.sh(用于阅读本主题)以及其他工具,例如kafka-topics.shkafka-configs.sh用于管理任务。还有一个单独的工具kafkacat用于浏览主题。但是以我的经验,这些方法只能作为最后的手段使用,例如,如果您失去了与群集的连接,并且需要安装到一个代理节点上,那么它们确实很有用。但是它们本身并不是监视工具。

答案 4 :(得分:0)

我刚刚发布了kafka的开源GUI:https://github.com/tchiotludo/kafkahq 任何反馈表示赞赏!

preview

您还可以在此处找到其他一些用户界面:https://github.com/monksy/awesome-kafka/blob/master/tools.md#dashboards

答案 5 :(得分:0)

这取决于监视的程度和自动化程度。 Kafka Manager是一个很好的起点,可以开始深入了解/观察集群的运行状况,吞吐量,延迟等,以及一些基本的管理操作,但是很快您将获得更多。例如,您需要监视消费者的健康状况吗?您是否需要查看主题内容来调试应用程序,执行验尸,跟踪消息流等?您将如何处理不良/格式错误的邮件,“中毒”主题等?建议您在工具箱中再添加一些项目:

  • 借阅-监视消费者群体的滞后并在消费者落后时发出警报。
  • Kafdrop 3-提供代理信息,并允许您浏览主题内容(文本和Avro格式)。这是原始Kafdrop项目的最新分支,支持最新版本的Kafka。 免责声明:我是该项目的维护者之一。
  • Prometheus和Grafana-与Manager / Monitor有一些重叠,但是Prometheus / Grafana更加完善,具有大量社区支持,并且易于与其他工具集成,自动发出警报等。

以上所有都是开放源代码,不需要许可。我之所以没有在其中列出Confluent,Landoop或KaDeck工具是因为它们是商业性的并且需要许可。而且,它们确实不能给您太多OSS替代产品,恕我直言。

自2014年以来,已经将Kafka作为大型微服务部署的主要消息传递/事件主干网运行了一段时间,不能仅仅强调基本的经纪人级别检查并关注整个端到端的重要性。从生产者到消费者的最终消息路径。具有讽刺意味的是,我们发现大多数时候我们都感觉到经纪人正在忙碌,实际上是应用程序编写得不好。我们倾向于使用工具的组合,直到编写我们自己的基本“ canary”应用程序为止,这些应用程序伪装成消息生产者和消费者,并在出现不利情况时为我们提供领先的指示。

Kafka确实在$KAFKA_HOME/bin中附带了一些基本的CLI工具,例如kafka-console-consumer.sh(用于阅读本主题)以及其他工具,例如kafka-topics.shkafka-configs.sh用于管理任务。还有一个单独的工具-Kafkacat-用于浏览主题。但是以我的经验,这些方法只能作为最后的手段使用,例如,如果您失去了与群集的连接,并且需要安装到一个代理节点上,那么它们确实很有用。但是它们本身并不是监视工具。

相关问题