1. 背景
虽然Kafka-0.9.0之后增加了权限认证体系,但是笔者发现依然有大部分用户没有启用权限认证,有时需要追溯客户端来源时无法快速定位,借助Kafka中文社区与大家分享一下笔者的经历。集群中的Topic以org.等前缀开头来代表不同的业务场景,在日常巡检时发现集群中存一个不符合规范的Topic且有写入流量,该Topic名称为log_waimai_test,由于集群没有启用权限认证机制,所以通过第三方工具greys来追溯客户端来源。
2. 操作
[1].运行greys.sh 25192,此处的25192是Kafka的进程号
[2].利用greys的watch功能进行handleProduceRequest方法监控
[3].根据打印出来的信息就可以看到来自于远程机器的IP还有端口
[4].登陆远程机器利用lsof -i:64784,即可发现客户端写入进程
3. 总结
该工具的好处是无须重启Kafka服务且对服务性能的影响极小,由于greys精心用ASM设计了字节码增强,可以放心的用在高负载有求下的JVM环境。本文为大家分享的只是greys应用中的一个场景而已,更多使用场景及greys的其他功能,大家可自行学习与挖掘。详细介绍greys,也可以使用增强版本arthas进行问题排查