kafka监控

本文详细介绍了Kafka的监控策略,包括Kafka总体监控、Broker监控、Controller监控、Topic监控和网络监控等关键指标,如leader选举频率、失败的生产消息请求数量、未复制的分区数、producer队列和fetch队列排队情况等,并设定了相应的阈值来确保系统的稳定运行。

编辑文章

监控策略

1、Kafka总体监控

leader 选举频率:kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs

2、Kafka Broker监控

kafka集群中Broker列表,broker运行状况,包括node下线,活跃数量
Broker是否提供服务
失败的生产消息请求数量:阈值?
失败的数据获取请求数量:阈值?
消费比率(生产字节数/消费字节数):阈值?
kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec
kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec
ISR 收缩频率:阈值?
kafka.server:type=ReplicaManager,name=IsrShrinksPerSec
kafka.server:type=ReplicaManager,name=IsrExpandsPerSec
未复制的分区数:阈值>1
kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions
producer队列排队情况:阈值?
kafka.server:type=DelayedOperationPurgatory,delayedOperation=Produce,name=PurgatorySize
fetch队列排队情况:阈值?
kafka.server:type=DelayedOperationPurgatory,delayedOperation=Fetch,name=PurgatorySize

3、Kafka Controller监控

controller存活数目:kafka.controller:type=KafkaController,name=ActiveControllerCount 阈值<1
没有active controller的partition数量:【既不可读又不可写】阈值>0
kafka.controller:type=KafkaController,name=OfflinePartitionsCount

4、Topic监控

offset:logStartOffset和logEndOffset之差,阈值?
某个topic在某个broker上每秒写入的消息数量:
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec

5、网络监控

处理一个请求所花费的总时间:阈值?
kafka.network:type=RequestMetrics,name=TotalTimeMs,request{Produce|FetchConsumer|FetchFollower}
6、Kafka Producer监控
producer数量,排队情况
请求响应时间
QPS/分钟:
7、Kafka Consumer监控
消费者落后生产者的消费条数:
consumer队列中排队请求数:
请求响应时间:
最近一分钟平均每秒请求数:
每秒产生的消息数量:
consumer发送给broker的请求最小速率(如果消费者不消费了或者挂了则趋于0):阈值>0.5

注:

broker :失败的生产消息请求数量,失败的数据获取请求数量,broker状态
partition: logStartOffset logEndOffset 之差
replica:收缩或者扩大的速度(Follower宕机,或者落后太多)
producer:等待请求数过多,延迟过期的请求数量
fetch-consumer:等待请求数过多,延迟过期的请求数量

### Kafka 监控工具推荐 在选择 Kafka监控工具时,需要综合考虑其功能、性能以及稳定性。以下是几款常见的 Kafka 监控工具及其特点: #### 1. **Kafka Manager** Kafka Manager 是 LinkedIn 开源的一款 Kafka 管理和监控工具。它提供了丰富的功能,包括集群管理、Topic 管理、消费者组管理等。此外,Kafka Manager 支持多集群管理,适合大规模生产环境使用[^1]。 - **功能**: - 集群管理:查看集群状态、Broker 信息。 - Topic 管理:创建、删除 Topic,调整分区数。 - 消费者组管理:监控消费者组的消费进度。 - 配置管理:修改 Kafka 配置参数。 - **启动方式**: ```bash bin/kafka-manager -Dconfig.file=<path-to-config> ``` #### 2. **Kafka Offset Monitor** Kafka Offset Monitor 是一款专注于消费者偏移量监控的工具。它可以直观地展示消费者组的消费进度,并支持历史数据查询[^2]。 - **功能**: - 查看消费者组信息。 - 查看 Topic 信息。 - 查看一定时间内的消费者消费状态。 - **启动方式**: ```bash java -cp KafkaOffsetMonitor-assembly-0.3.0-SNAPSHOT.jar \ com.quantifind.kafka.offsetapp.OffsetGetterWeb \ --offsetStorage kafka \ --zk zk-server1,zk-server2 \ --port 8080 \ --refresh 10.seconds \ --retain 2.days ``` #### 3. **EFAK (Easy-Fast-Kafka)** EFAK 是一款轻量级的 Kafka 监控工具,支持实时监控 Kafka 集群的状态。它内置了 H2 数据库用于存储监控数据,并提供了 Web 界面进行可视化展示[^1]。 - **功能**: - 实时监控 Kafka 集群状态。 - 查看 Broker、Topic、消费者组信息。 - 提供告警功能。 - **注意事项**: - 默认情况下,H2 数据库的控制台运行在 `localhost:8082` 上[^1]。 #### 4. **Confluent Control Center** Confluent Control Center 是 Confluent 提供的企业级 Kafka 监控解决方案。它不仅支持 Kafka 集群的监控,还提供了流处理任务的监控功能。 - **功能**: - 实时监控 Kafka 集群状态。 - 流处理任务监控。 - 数据血缘关系分析。 - 告警与通知。 - **适用场景**: - 适合企业级用户,尤其是需要高级功能的场景。 #### 5. **Prometheus + Grafana** Prometheus 和 Grafana 是开源社区中广泛使用的监控组合。通过 Kafka 的 JMX 指标暴露,可以实现对 Kafka 集群的全面监控[^1]。 - **功能**: - 自定义监控指标。 - 实时告警。 - 数据可视化。 - **启动方式**: ```yaml # Prometheus 配置示例 scrape_configs: - job_name: 'kafka' static_configs: - targets: ['localhost:9090'] ``` --- ### 工具对比 | 工具名称 | 功能丰富度 | 易用性 | 适用场景 | |-----------------------|------------|--------|----------------------| | Kafka Manager | 高 | 中 | 多集群管理 | | Kafka Offset Monitor | 中 | 高 | 消费者偏移量监控 | | EFAK | 中 | 高 | 轻量级 Kafka 监控 | | Confluent Control Center | 高 | 低 | 企业级 Kafka 监控 | | Prometheus + Grafana | 高 | 低 | 自定义监控需求 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值