使用jmx exporter采集kafka指标

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
简介: 使用jmx exporter采集kafka指标

预置条件

安装kafka、prometheus

使用JMX exporter暴露指标

下载jmx exporter以及配置文件。Jmx exporter中包含了kafka各个组件的指标,如server metrics、producer metrics、consumer metrics等,但这些指标并不是prometheus格式的,因此需要通过重命名方式转变为prometheus格式,重命名规则配置在kafka-2_0_0.yml中。

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar
wget https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/kafka-2_0_0.yml

kafka集群启用监控

启用的方式比较简单,只需要在kafka-server-start.sh中添加如下两行即可:

...
#添加如下两行
export JMX_PORT="7081"
export KAFKA_OPTS="-javaagent:/Users/charlie.liu/kafka_2.13-3.2.3/monitor/jmx_prometheus_javaagent-0.12.0.jar=7072:/Users/charlie.liu/kafka_2.13-3.2.3/monitor/kafka-2_0_0.yml"
COMMAND=$1
case $COMMAND in
  -daemon)
    EXTRA_ARGS="-daemon "$EXTRA_ARGS
shift
    ;;
  *)
    ;;
esac
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"

prometheus的配置文件如下,启动之后即可看到kafka的指标:

global:
scrape_interval: 15s
scrape_configs:
- job_name: "kafka-cluster"
static_configs:
- targets: ["localhost:7072"]

采集producer/consumer的指标

kafka的producer metricsconsumer metrics的格式与kafka server metrics的格式不同,因此需要特定的重命名配置,可以将其追加到kafka-2_0_0.yml文件中:

# MBean: kafka.producer:type=producer-metrics,client-id=([-.w]+)
- pattern: kafka.(.*)<type=(.*)-metrics, client-id=(.*)><>(.+):\w*
name: kafka_$2-metrics
labels:
client_id: "$3"
attr_name: "$4"
help: "Kafka global client JMX metric $1 $2-metrics"
type: GAUGE
# MBean: kafka.producer:type=producer-node-metrics,client-id=([-.w]+),node-id=([0-9]+)
# MBean: kafka.consumer:type=consumer-node-metrics,client-id=([-.w]+),node-id=([0-9]+)
- pattern: kafka.(.*)<type=(.*)-metrics, client-id=(.*), node-id=(.*)><>(.+):\w*
name: kafka_$2_$5-metrics
labels:
client_id: "$3"
node_id: "$4"
attr_name: "$5"
help: "Kafka client JMX metric $1 $2-metrics"
type: GAUGE
- pattern: kafka.(.*)<type=(.*)-metrics, client-id=(.*), topic=(.*)><>(.+):\w*
name: kafka_$2_$5-metrics
labels:
client_id: "$3"
topic: "$4"
attr_name: "$5"
help: "Kafka client JMX metric $1 $2-metrics"
type: GAUGE

使用如下方式启动consumer,

KAFKA_OPTS="-javaagent:/kafka_2.13-3.2.3/monitor/jmx_prometheus_javaagent-0.12.0.jar=7073:/kafka_2.13-3.2.3/monitor/kafka-2_0_0.yml" kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic charlie-test1 --from-beginning

并在prometheus的配置文件中添加consumer target,reload prometheus 配置即可发现consumer的指标,producer的指标采集与consumer类似。

global:
scrape_interval: 15s
scrape_configs:
- job_name: "kafka-cluster"
static_configs:
- targets: ["localhost:7072"]
- job_name: "kafka-consumer"
static_configs:
- targets: ["localhost:7073"]

官方给出了Jmx exporter的其他例子

注:由于不同的配置Jmx exporter生成的kafka指标名称是不一样的,因此并没有统一的kafka grafana dashboard,最好还是自己绘制。

目录
相关文章
|
1月前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
51 2
|
3月前
|
消息中间件 Kafka Apache
kafka vs rocketmq: 不要只顾着吞吐量而忘了延迟这个指标
这篇文章讨论了Apache RocketMQ和Kafka的对比,强调RocketMQ在低延迟、消息重试与追踪、海量Topic、多租户等方面进行了优化,特别是在小包非批量和大量分区场景下的吞吐量超越Kafka,适合电商和金融领域等高并发、高可靠和高可用场景。
101 0
|
消息中间件 关系型数据库 MySQL
FlinkSQL 实时采集Kafka内容到MySQL(实战记录)
FlinkSQL 实时采集Kafka内容到MySQL(实战记录)
282 0
|
消息中间件 搜索推荐 关系型数据库
淘东电商项目(51) -全局异常日志采集(ELK+Kafka)
淘东电商项目(51) -全局异常日志采集(ELK+Kafka)
97 0
|
消息中间件 弹性计算 Prometheus
问题盘点|使用 Prometheus 监控 Kafka,我们该关注哪些指标
Kafka 作为当前广泛使用的中间件产品,承担了重要/核心业务数据流转,其稳定运行关乎整个业务系统可用性。本文旨在分享阿里云 Prometheus 在阿里云 Kafka 和自建 Kafka 的监控实践。
2048 30
问题盘点|使用 Prometheus 监控 Kafka,我们该关注哪些指标
|
消息中间件 存储 数据采集
iLogtail社区版使用入门 - 如何将业务日志采集到Kafka
本文将会详细介绍如何使用iLogtail社区版将日志采集到Kafka中,从而帮助使用者构建日志采集系统。
1417 0
|
消息中间件 数据采集 缓存
2-网站日志分析案例-日志采集:Flume-Kafka-Flume-HDFS
文章目录 2-网站日志分析案例-日志采集:Flume-Kafka-Flume-HDFS 环境安装 虚拟机安装 安装hadoop 安装zookeeper 安装过程 基本命令
2-网站日志分析案例-日志采集:Flume-Kafka-Flume-HDFS
|
消息中间件 数据采集 运维
Kafka监控与指标之UnderReplicatedPartitions
Kafka监控 Kafka 使用 Yammer Metrics 在服务器中报告指标,Java 客户端使用 Kafka Metrics,这是一个内置的指标注册表. 两者都通过 JMX 公开指标 启用JMX并上报指标 Kafka 默认禁用远程 JMX,Kafka启动JMX方式
Kafka监控与指标之UnderReplicatedPartitions
|
消息中间件 数据采集 搜索推荐
「视频小课堂」ELK和Kafka是怎么就玩在一起成了日志采集解决方案文字版
「视频小课堂」ELK和Kafka是怎么就玩在一起成了日志采集解决方案文字版
|
存储 消息中间件 大数据
E-MapReduce上如何采集Kafka客户端Metrics
我们知道Kafka提供一套非常完善的Metrics数据,覆盖Broker,Consumer,Producer,Stream以及Connect。E-MapReduce通过Ganglia收集了Kafka Broker metrics信息,可以很好地监控Broker运行状态。
6658 0