我使用的是ES 1.x版本,在为一些文档建立索引时遇到了问题。
有些文档没有索引,我在ES日志中看到的都是下面的几行。
stop throttling indexing: numMergesInFlight=2, maxNumMerges=3
now throttling indexing: numMergesInFlight=4, maxNumMerges=3
我快速地在谷歌上搜索了一下,并理解了这些错误的高级别,但我想了解以下内容:
INFO
日志之外,我没有看到任何错误消息。有没有一种方法可以为索引启用详细日志记录,以显示索引过程中到底发生了什么?发布于 2019-03-07 17:59:45
您在日志中看到的节流消息不是问题所在。节流在后台进行,以便elasticsearch防止数据段爆炸。请看这里的解释:https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-performance.html#segments-and-merging
节流不会丢弃消息,而只是减慢索引速度,这会对索引器和外部队列造成背压。
当索引失败时,您应该会得到索引/批量请求的错误响应。为了知道问题出在哪里,您应该检查ES为索引/批量请求提供的响应。日志可能不能说明全部情况,因为它取决于日志级别的配置,这是ES中每个模块的配置。
另一种选择是,您可以对日志进行索引,但是日志没有您认为的时间戳。检查_cat/indices,以查看在索引时文档计数是否增加。如果文档数量增加,这意味着索引的文档已经存在,您需要改进搜索。
发布于 2019-02-28 04:20:57
据我所知,elasticsearch不会进行重试,这取决于客户端(尽管我已经很长时间没有使用1.x了)。例如,由于以下原因,elasticsearch会重试503和429批处理:https://github.com/logstash-plugins/logstash-output-elasticsearch/blob/master/lib/logstash/outputs/elasticsearch.rb#L55
https://stackoverflow.com/questions/54910072
复制相似问题