从kafka-lag引出的es问题
早上突然收到一个kafka lag的报警,一个平时5k lag的consumer突然lag到了14k多。
这也高的太多了,而且1分钟多点就下来了,这个第一反应是有实例重启了,可查看监控没有那个时间点的重启的时间啊。
那就看服务的日志吧,还真在那个时间点有3个error日志。看日志就是队列堵了。有些事件被丢弃了。
这时候再看下es的监控,发现负载有明显升高在那个时间点上。整个es集群所有机器的CPU空闲率从80%降到了30%左右,系统负载也大幅升高。
然后又看了下es的query time分布,发现那个时间点有大量的慢查询了。大量请求超过了预设的绿线值。
这个时候去查了下es的日志,发现有用户的查询对一个大索引引发了很多DFS_QUERY_THEN_FETCH类型的查询,这种查询由于要求精确性,查询次数和效率都比较差。从而导致整个队列堵了。