使用kafka, 消费生产的数据是必不可少的, 为不影响业务的正常处理, 对消费过程的积压lag的监控和报警就显得特别重要
Kafka的lag监控工具有若干个:
KafkaOffsetMonitor...Burrow的github主页已经对其从编译到配置使用作了很好的说明, 这里不累述;
Burrow用Golang写成, 代码不多, 很容易读, 扩展性也很多;
使用Burrow作监控, 不需要预先设置...lag的阈值, 他完全是基于消费过程的动态评估;
可以监控offset提交到broker,zk两种方式,还可以作storm的消费监控, 这部分扩展起来也很容易;
报警支持http, email什么的,..., 通过sarama可以轻松获取, 当然这个需要周期性不间断获取;
有了broker的offset, 还需要消费的commited offset, 针对kafka 0.9及以后的版本, 提交的offset...offset时,设置了OffsetNewest,每次都是从最新开始消费, 我也尝试过改成从最旧开始消费 ,但sarama会run很多的thread起来, 撑爆了系统, 不知道是不是sarama的bug