当前位置: 首页 > 知识库问答 >
问题:

如何配置 kafka 图表以将 kafka-metrics 和 kafka-jmx-metrics 同时暴露给 prometheus?

骆昊阳
2023-03-14

我们使用Kafka图表(版本17)作为图表的依赖项。我试着配置对Kafka的监控。

values.yaml:

kafka:
  metrics:
    kafka:
      enabled: true
    jmx:
      enabled: true
    serviceMonitor:
      enabled: true
      labels:
        my.custom.label/service-monitor: "1.0"
   ...

然后,我部署我的应用程序,并前往普罗米修斯目标,我看到以下内容:

我对失败的请求感到担忧。

我看到了什么?

有两种服务需要监控:

    < li>jmx-exporter Kafka-出口商

并且这两个服务都由2条路径请求:

  • /
  • /指标

但是< code>kafka-exporter对< code>/没有响应。如果启用了2个导出器,有没有办法配置kafka图表使其正常工作?

服务定义:

spec:
  endpoints:
    - path: /
      port: http-metrics
  namespaceSelector:
    matchNames:
      - my-ns
  selector:
    matchLabels:
      app.kubernetes.io/component: metrics
      app.kubernetes.io/instance: dev-my-app
      app.kubernetes.io/name: my-app-kafka
spec:
  endpoints:
    - path: /metrics
      port: http-metrics
  namespaceSelector:
    matchNames:
      - my-ns
  selector:
    matchLabels:
      app.kubernetes.io/component: metrics
      app.kubernetes.io/instance: dev-my-app
      app.kubernetes.io/name: my-app-kafka

共有2个答案

屠振濂
2023-03-14

最终我完成了以下解决方案:

我使用来自Kafka图表的 jmx 导出器:

values.yaml

kafka:
  metrics:
    kafka:
      enabled: false 
    jmx:
      enabled: true
    serviceMonitor:
      enabled:true
      labels:
       my.super.company/service-monitor: "1.0"

  enabled: true

并将 Kafka 导出器注册为单独的依赖项:

chart.yaml:

  - name: prometheus-kafka-exporter
    version: 1.6.0
    repository: https://prometheus-community.github.io/helm-charts

并手动配置:

values.yaml

prometheus-kafka-exporter:
  kafkaServer:
    - my-kafka-server:9092
  prometheus:
    serviceMonitor:
      enabled: true
      namespace: ""
      additionalLabels:
        my.super.company/service-monitor: "1.0"
邹俊拔
2023-03-14

Kafka出口商没有在/回复。

这是因为<code>web。遥测路径默认为/metrics

https://github.com/danielqsj/kafka_exporter/blob/master/kafka_exporter.go#L700

您的服务监视器混淆了

  • kafkajmx度量结尾的那个应该有容器=jmx导出器标签
  • kafka度量结尾的应该具有容器=kafka导出器

目前,您已经展示了在相对的ServiceMonitors中每个容器都有一个。我怀疑这是因为你的标签选择器完全相同,但路径不同。

如果你只有一个Kafka经纪人,你应该只有两个目标。一个JMX出口商(每个经纪人)和一个Kafka出口商
因此,两个经纪人将有3个目标:2个JMX出口商和1个Kafka出口商(因为这是针对整个集群的)。

 类似资料:
  • 我正在使用SpringBoot和Kafka流,尽管我没有使用SpringCloud流。 我确实使用了并将设置为: 但当我启动应用程序时,我点击了以下NPE: 更新: 我使用以下依赖项: Spring靴2.5.5 千分尺1.7.4 apache kafka streams 3.0.0 感谢您的帮助!谢谢

  • 27.2 将Bean暴露给JMX MBeanExporter是Spring JMX 框架中的核心类。它负责把Spring bean注册到JMX MBeanServer。例如,下面的例子: package org.springframework.jmx; public class JmxTestBean implements IJmxTestBean { private Stri

  • filters/metrics 插件是使用 Ruby 的 Metriks 模块来实现在内存里实时的计数和采样分析。该模块支持两个类型的数值分析:meter 和 timer。下面分别举例说明: Meter 示例(速率阈值检测) web 访问日志的异常状态码频率是运维人员会非常关心的一个数据。通常我们的做法,是通过 logstash 或者其他日志分析脚本,把计数发送到 rrdtool 或者 graph

  • 我想启用 kafka 监控,我从单节点部署开始作为测试。我正在按照 https://alex.dzyoba.com/blog/jmx-exporter/ 中的步骤进行操作 我尝试了以下步骤;检查jmx导出器HTTP服务器的最后一个命令报告为空。我相信这就是我没有看到Kafka指标的原因。(更多详情请参见下文) Kafka代理登录控制台没有任何ERROR消息。 我让Prometheus在一个容器中运

  • 我想获取一个接收器连接器的sink-record-active-count值,这里给出https://docs.confluent.io/current/connect/managing/monitoring.html#sink-task-metrics 我有所有容器运行在docker桌面使用docker compose文件docker ps docker ps 我使用了汇合度量报告器来完成该任务

  • 在我们的一个基于spring boot的服务中,我们打算同时连接到两个不同的kafka集群。这些集群都有自己的引导服务器集、主题配置等。它们之间没有任何关联,就像这个问题中的情况一样。 我将有不同类型的消息从不同主题名称的每个集群中读取。可能有或可能没有多个生产者通过此服务连接到两个集群,但我们肯定每个集群至少有一个消费者。 我想知道如何在application.yml中定义属性以满足此设置,以便