在Linux上监控Kafka时,通常会关注以下几类核心指标:
Broker核心指标
- UnderReplicatedPartitions:处于复制状态的partitions数量。
- ActiveControllerCount:活跃的controller数量。
- OfflinePartitionsCount:离线的partitions数量。
- UncleanLeaderElectionsPerSec:未清理领导选举的频率。
- BytesInPerSec:Kafka的吞吐量。
- BytesOutPerSec:Kafka的吞吐量。
- 机器层面指标:包括磁盘使用情况、CPU使用情况、网卡入流量和出流量等。
- JVM指标:包括MemHeapUsed/MemHeapMax等JVM堆内内存使用率指标。
Producer核心指标
- 提交速度(通过
batch.size
参数控制)。
- 发送成功率。
- 错误率(通过配置
retries
和retry.backoff.ms
参数控制)。
Consumer核心指标
- 消费速度(通过设置
fetch.min.bytes
和fetch.max.bytes
参数控制)。
- 消费成功率。
- 失败率(通过设置
auto.offset.reset
参数控制)。
其他重要监控指标
- 吞吐量和延迟:衡量性能的关键指标,包括读写比例、分区和副本数量等。
为了更有效地监控这些指标,可以使用一些工具和方法,例如:
- Kafka Exporter:用于暴露Kafka集群的监控指标。
- Prometheus:一个开源的监控和告警工具,可以采集并处理Kafka Exporter暴露的指标。
- Grafana:可以与Prometheus等工具集成,提供可视化的监控大盘和告警功能。
通过这些工具和指标,可以对Kafka集群的性能和健康状况进行全面的监控和管理。