消息中间件巡检

  • Post author:
  • Post category:其他




一、RocketMQ巡检



1、检查 broker 写入耗时是否有压力

输入内容

grep 'PAGECACHERT' store.log 

输出结果:

2020-07-06 19:53:48 INFO StoreStatsService - [PAGECACHERT] TotalPut 13857, PutMessageDistributeTime [<=0ms]:13717 [0~10ms]:140 [10~50ms]:0 [50~100ms]:0 [100~200ms]:0 [200~500ms]:0 [500ms~1s]:0 [1~2s]:0 [2~3s]:0 [3~4s]:0 [4~5s]:0 [5~10s]:0 [10s~]:0 

该命令能统计出写入耗时不同的消息数,查看写入pagecache时延,一般写入200~500ms的消息较多则集群压力较大,存在超过500ms的消息则集群消息写入压力很大了需要扩容。



2、检查 broker busy 的数量与频率

grep 'broker busy' /home/logs/rocketmqlogs/rocketmq_client.log 

如果频繁发生broker busy则集群压力较大,需要进行扩容。



3、主题发送TPS、发送错误率巡检

首先检查集群客户端是否出现发送超时,若存在发送超时再检查是否大面积客户端存在发送超时,弱不存在说明集群正常,可以尝试判断客户端是否垃圾回收等。否则,集群应该会出现broker busy,按照 broker busy的方式处理。



4、从节点消费情况检查

检查从节点是否开始消费,在未发生因主节点宕机造成主从切换的情况下,主题未消费数据占用主节点内存超40%,从节点开始消费,此时主节点不消费。当内存占用小于30%时,切换回主节点。说明此时存在消费组消息大量积压,需要关注集群压力情况,若积压对集群造成影响则考虑将积压的消费组重置点位到当前。



5、集群各broker消息流转情况巡检

通过RocketMQ-console查看各broker数据流转是否正常,消息发送是否均衡,若出现严重不均衡的情况则要介入处理,一般为发送客户端发送线程问题导致,可能是客户端指定了固定的key导致消息发送到单个queue造成集群节点负载不均衡。



二、Kafka巡检



1、检查是否有分区发生 ISR频繁扩张收缩

找出kafka集群controller所在的broker位置,查看controller.log文件。

less -mN  /data/logs/kafka/controller.log | grep "Shrinking ISR"

这个情况一般是由于副本所在节点网络I/O负载开销过大导致的,如果分区太少,可适当增加分区分散节点压力,或者手动将分区副本分配值网络负载低的节点。



2、检查分区 leader 选举值是否处于正常水平

在controller.log文件中搜索“Topics not in Preferred replica”。

less -mN  /data/logs/kafka/controller.log | grep "Topics not in Preferred replica"



3、检查controller是否频繁选举

在controller.log文件中搜索“Controller moved to another broker”。

less -mN  /data/logs/kafka/controller.log | grep "Controller  moved to another broker"



4、检查是否有客户端频繁断开连接

在kafkaServer.out文件中搜索 “Attempting to send response via channel for which there is no open connection”。

less -mN  /data/logs/kafka/ | grep "Attempting to send response via channel for which there is no open connection"

若存在大量短连接客户端频繁与集群断开重连会严重影响集群性能,增大消息发送耗时,如:Spark消费。



5、消费组是否出现频繁重平衡现象

在kafkaServer.out文件中搜索 “Preparing to rabalance group”。

less -mN /data/logs/kafka/kafkaServer.out | grep "Preparing to rabalance group"

若出现此问题,首先检查是否有节点网络不稳定导致频繁重连zk,如果有需要修复网络通道,若没有则检查session.timeout.ms、max.poll.interval.ms、heartbeat.interval.ms 参数是否能够满足业务消费逻辑。



版权声明:本文为weixin_41964209原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。