Kafka监控

监控软件

KafkaManager:https://github.com/yahoo/kafka-manager
Kafka-eagle:https://github.com/smartloli/kafka-eagle

CDH自带有很好的监控

JMXtrans + InfluxDB + Grafana实现Kafka性能指标监控

安装
JMXtrans

收集来自已经启动jmx的kafka服务的数据

两种方式:只部署1台,配置多台去采集
每台节点都部署一个

修改 kafka-server-start.sh文件

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then 
	export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G -Xmn1G -XX:PermSize=64m -XX:MaxPermSize=128m  -XX:SurvivorRatio=6  -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly"
		   
	export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.1.58"
fi

重启kafka生效

安装
在这个链接里下某个版本的jmxtrans的jar包
http://central.maven.org/maven2/org/jmxtrans/jmxtrans/
比如jmxtrans-263-all.jar
下载执行脚本
https://github.com/jmxtrans/jmxtrans/blob/master/jmxtrans/jmxtrans.sh
改权限:chmod +x jmxtrans.sh

InfluxDB

时序数据库
https://docs.influxdata.com/influxdb

像这样存数据:
2017-03-03 11:00:00.456  1 xiaoming boy 18
2017-03-03 11:00:10.356  2 xiaowang boy 45

安装,可以参考 官网

注意,使用的时候,influx -precision rfc3339
rfc3339是一个时间的格式,比如 2018-02-12T11:03:32.196646259Z
不带rfc3339也可以启动,但是查看的时间是一长串数字(时间戳?)

Grafana

可视化

安装http://docs.grafana.org/installation/rpm/
安装完成后打开web界面http://ip:3000

使用

采集服务启动

JMXTRANS_OPTS="-Dport1=9999 -Dhost1=hadoopdn-01 -Dalias1=kafka1 \
-DinfluxUrl=http://hadoopdn-04:8086/ -DinfluxDb=kafka -DinfluxUser=admin -DinfluxPwd=admin" \
SECONDS_BETWEEN_RUNS=5 \
JAR_FILE=jmxtrans-263-all.jar \
./jmxtrans.sh start test.json 

查看状态:

JMXTRANS_OPTS="-Dport1=9999 -Dhost1=hadoopdn-01 -Dalias1=kafka1 \
-DinfluxUrl=http://hadoopdn-04:8086/ -DinfluxDb=kafka -DinfluxUser=admin -DinfluxPwd=admin" \
SECONDS_BETWEEN_RUNS=5 \
JAR_FILE=jmxtrans-263-all.jar \
./jmxtrans.sh start test.json 

使用Grafana创建数据源和DashBoard,再创建适合的图表。

server端监控信息(建议):
监控GC time
监控系统状态比如CPU利用率、I/O服务时间等

注意,要在安装的机器上执行多次jmx启动(监控对象不同),来监控集群上的多个节点。

### 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、付费专栏及课程。

余额充值