【问题标题】:No kafka metrics in Grafana/prometheusGrafana/prometheus 中没有 kafka 指标
【发布时间】:2018-12-24 15:15:56
【问题描述】:

我成功部署了 helm chart prometheus operatorkube-prometheuskafka(尝试了图像 danielqsj/kafka_exporter v1.0.1v1.2.0)。

大部分使用默认值安装,启用 rbac。

我可以在 prometheus 的 Kafka 目标列表中看到 3 个 up 节点,但是当进入 Grafana 时,我可以看到任何带有 kafka overview 的 kafka 指标

我遗漏了什么或者我可以检查什么来解决这个问题?

我可以看到以java_kafka_ 开头的指标,但没有jvm_,只有少数jmx_ 指标。

我发现有人报告了类似的问题 (https://groups.google.com/forum/#!searchin/prometheus-users/jvm_%7Csort:date/prometheus-users/OtYM7qGMbvA/dZ4vIfWLAgAJ),所以我使用旧版本的 jmx 导出器从 0.6 部署到 0.9,仍然没有 jvm_ 指标。

有什么我错过的吗?

环境:

kuberentes:AWS EKS(kubernetes 版本为 1.10.x)

公共 grafana 仪表板:kafka overview

【问题讨论】:

    标签: apache-kafka kubernetes kubernetes-helm amazon-eks


    【解决方案1】:

    您必须为 kafka helm chart 打开 jmx 和 exporter,提供 --set prometheus.jmx.enabled=true,prometheus.kafka.enabled=true。默认值为false

    【讨论】:

    • 谢谢,我已经启用了。否则在prometheus中看不到kafka目标。其实问题是我自己解决的,会回答的。
    【解决方案2】:

    刚刚意识到README中提到的jmx-exporter的所有者:

    这个导出器是intended to be run as a Java Agent,暴露了一个 HTTP 服务器并提供本地 JVM 的指标。它也可以作为独立的 HTTP 服务器运行并抓取远程 JMX 目标,but this has various disadvantages,例如更难配置并且无法公开进程指标(例如内存和 CPU 使用率)。因此强烈建议将导出器作为 Java 代理运行。

    直到看到这条评论,我才真正明白这是什么意思:

    https://github.com/prometheus/jmx_exporter/issues/111#issuecomment-341983150

    @brian-brazil 您能否在自述文件中添加一些提示,即 jvm_* 指标仅在使用 Java 代理时公开?在仅使用 HTTP 服务器版本之后,我花了一两个小时进行故障排除和搜索旧问题来解决这个问题。谢谢!

    所以 jmx-exporter 必须与 java agent 一起运行才能获得 jvm_ 指标。 jmx_prometheus_httpserver 不支持,但是是kafka helm chart中的默认设置。

    https://github.com/kubernetes/charts/blob/master/incubator/kafka/templates/statefulset.yaml#L82

    command:
    - sh
    - -exc
    - |
      trap "exit 0" TERM; \
      while :; do \
      java \
      -XX:+UnlockExperimentalVMOptions \
      -XX:+UseCGroupMemoryLimitForHeap \
      -XX:MaxRAMFraction=1 \
      -XshowSettings:vm \
      -jar \
      jmx_prometheus_httpserver.jar \              # <<< here
      {{ .Values.prometheus.jmx.port | quote }} \
      /etc/jmx-kafka/jmx-kafka-prometheus.yml & \
      wait $! || sleep 3; \
      done
    

    【讨论】:

      猜你喜欢
      • 2019-12-13
      • 1970-01-01
      • 2023-01-25
      • 2019-08-28
      • 1970-01-01
      • 2018-06-03
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多