我是kafka的新手。我们希望监控和管理kafka主题。我们尝试了不同的开源监控工具,如
这两种工具都很好。但我们无法做出应该包含在我们的部署堆栈中的决定。哪个更好,为什么,以及在哪种情况下?
来自雅虎的'kafka manager'看起来比较旧,而来自LinkedIn的'kafka monitor'是较新的答案 0 :(得分:45)
Landoop
Landoop通过用户界面,流式SQL引擎和集群监控增强了Kafka。它可以加快对Kafka数据管道的监控。
它们提供了一个免费的一体化docker(LENSES Box),它可以为单个代理提供最多25M条消息。请注意,建议将其用于开发环境。
<强>汇合强>
另一个选项是Confluent Enterprise,它是生产环境的Kafka发行版。它还包括Control Centre,这是Apache Kafka的管理系统,可以通过用户界面进行集群监控和管理。
Yahoo Kafka Manager
Kafka Manager是一种监控Kafka的工具,与上述工具相比,它提供的功能更少。
<强> KafDrop 强>
KafDrop是用于监控Apache Kafka集群的UI。该工具显示诸如代理,主题,分区等信息,甚至可以让您查看消息。它是一个轻量级应用程序,在Spring Boot上运行,只需要很少的配置。
LinkedIn Burrow
Burrow是Apache Kafka的监控伴侣,它将消费者滞后检查作为服务提供,无需指定阈值。它监控所有消费者的承诺抵消额,并根据需要计算这些消费者的状态。提供HTTP端点以按需请求状态,以及提供其他Kafka群集信息。还有可配置的通知程序可以通过电子邮件或HTTP调用将状态发送到另一个服务。
Kafka工具
Kafka Tool是用于管理和使用Apache Kafka集群的GUI应用程序。它提供了一个直观的UI,允许用户快速查看Kafka群集中的对象以及存储在群集主题中的消息。它包含面向开发人员和管理员的功能。
如果你买不起许可证,那就去Yahoo Kafka Manager,LinkedIn Burrow或KafDrop。 Confluent和Landoop的产品是最好的产品,但不幸的是,它们需要许可。
答案 1 :(得分:4)
如果您想支付许可和Kafka群集支持,那么您可以使用Confluent Control Center
或者,免费路线是使用来自Datadog和/或Prometheus / Influxdb(使用Grafana仪表板)的JMX导出器来查看整体系统运行状况检查(CPU,网络,内存等)...比什么更多的信息你只能通过使用Kafka工具监控Kafka流程
答案 2 :(得分:1)
在我的公司中,我们使用Yahoo产品,对LinkedIn产品进行了调查,并提到了其他几个产品。我公司最终选择使用Prometheus + Grafana。每个人都喜欢它,我强烈推荐它。
Prometheus + Grafana有两个主要优点。首先是它具有全功能的Kafka指标提取+可视化+警报,但不仅限于Kafka。尽管我们最初的需求只是监视Kafka,但我们还需要HTTP服务器+流量,服务器利用率(cpu / ram / disk)和自定义应用程序级别指标的指标。 Prometheus处理上述所有问题。其次,Prometheus + Grafana的质量很高,设计良好并且易于使用。该领域中的许多其他产品使用起来都很陈旧且复杂。 Prometheus + Grafana都非常出色,可定制,抛光且易于使用。 Grafana具有非常华丽的功能性JavaScript界面,可让您精确地创建所需的自定义仪表板。 Prometheus具有非常完善的指标收集引擎,存储引擎,查询语言和警报系统。诸如Yahoo Kafka Manager之类的东西在所有这些类别中的功能都非常有限。
如果要尝试Prometheus,则需要做两件事:
1)在您的Kafka代理上安装+配置JMX-> Prometheus导出器: https://github.com/prometheus/jmx_exporter
2)设置Prometheus服务器以收集指标+,并设置Grafana仪表板以显示所需的图形。
我还要说这只是用于监视+仪表板+警报。对于管理功能,您仍然需要其他工具。
答案 3 :(得分:1)
KaDeck
KaDeck是完全免费的,可以作为Mac,Linux和Win的桌面客户端使用。与其他解决方案相比,它不需要任何其他基础结构组件,例如KSQL,REST Proxy等。
如果您需要Web服务和/或用户管理(以及一些其他企业功能),则企业版是您可能会更感兴趣的版本。但是它需要许可证。
答案 4 :(得分:1)
在工作中,我们使用Kafdrop 3查看经纪人信息,浏览主题和消费者滞后。 Kafdrop 3的主要原因是因为我们将Kafka锁定在生产中,并且所有生产者和消费者都位于Kubernetes集群中。我们无法在我们的开发机上访问Kafka(端口未暴露于外界)。因此,我们在K8s集群中运行Kafdrop,并使用kubectl proxy
对其进行代理。
Burrow所提供的消费者滞后功能并不复杂,但可能已经足够好了,特别是考虑到它是在一个工具中。
对于开发(在本地运行Kafka),我们可以使用Kafka Tool,但严格来说,它仅用于非商业用途。此外,如果您要连接到已被锁定的生产Kafka,也没什么用。
答案 5 :(得分:0)
Kafka生态系统虽然在许多方面都非常出色,但确实明显缺乏工具。监控是一个这样的差距,但这也是一个相当广泛的话题。
Kafka Manager和Monitor可让您深入了解代理的运行状况和某些指标(吞吐量,延迟等),但是您可能还想监视消费者的运行状况和主题内容(调试应用程序或验尸时必不可少的) -Manager或Monitor都不会这样做。我建议向您的武器库中添加更多工具:
将Kafka作为大型微服务部署的主要消息传递/事件主干网运行已有一段时间,无法充分强调良好的监视和验尸工具的重要性。