curl -s 'localhost:9200/_cat/indices?v' | head curl -s localhost:9200/_cat/shards | wc -l
在 Kibana 里搜一个错误码,转二三十秒才出结果,同样的查询用 curl 直接打也慢,集群健康状态还是 yellow。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:按天建的索引分片太多,每个分片只有几百兆,一次查询要打到上百个分片;错误码字段又是分词文本,精确匹配用不上倒排。
「日志查询变慢」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。监控和日志的时间要对上,时区不一致会多绕很大一圈。
临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
处理上按这个顺序:把日索引合并成周索引或月索引 减少分片总数;错误码这类字段改成 keyword 并关掉分词;查询时限定好时间范围 别再用全量索引通配。
确认没问题再收工,同样的查询两秒内返回,参与搜索的分片数从三位数降到二十以内。
