没有数据被解析 + elasticsearch 日志中的异常

No data is being parsed + exception in elasticsearch logs


如果我听起来完全是个新手,请原谅我,因为我还不是这项服务的所有者(还)

我们使用 ELK(Elasticsearch (1.4.2)/Logstash/Kibana - 我们使用单个分片,因此没有副本)来解析我们的日志并根据 Kibana 中的一些过滤器显示图表。

在过去的 2 周里,我们看到由于某种原因没有新数据显示在图表上,除了每天关闭服务器之外没有对服务器进行任何更改。

elasticsearch 索引是每天创建的。
日志的输入是通过redis的,确实我在redis中看到activity并且一直有新日志进来。

在 logstash.log 我看到了以下异常:

[2015-10-20 04:39:49,462][DEBUG][action.search.type       ] [shard1] [logstash-2015.10.15][2], node[G5aAjTSEQCiX5JXlmSx8ng], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@25f6008c] lastShard [true]
org.elasticsearch.search.SearchParseException: [logstash-2015.10.15][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"facets":{"terms":{"terms_stats":{"value_field":"acked_contacts_","key_field":"customer_name","size":10,"order":"count"},"facet_filter":{"fquery":{"query":{"filtered":{"query":{"bool":{"should":[{"query_string":{"query":"(action:BULK_RECEIVER) AND ( result:SUCCESS or result:FAILURE OR result:Success OR result:Failed)"}}]}},"filter":{"bool":{"must":[{"range":{"@timestamp":{"from":1444711190919,"to":1445315990919}}}]}}}}}}}},"size":0}]]
        at org.elasticsearch.search.SearchService.parseSource(SearchService.java:681)
        at org.elasticsearch.search.SearchService.createContext(SearchService.java:537)
        at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:509)
        at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:264)
        at org.elasticsearch.search.action.SearchServiceTransportAction.call(SearchServiceTransportAction.java:231)
        at org.elasticsearch.search.action.SearchServiceTransportAction.call(SearchServiceTransportAction.java:228)
        at org.elasticsearch.search.action.SearchServiceTransportAction.run(SearchServiceTransportAction.java:559)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.elasticsearch.search.facet.FacetPhaseExecutionException: Facet [terms]: failed to find mapping for acked_contacts_

正如我所说,我不是这里的专家,但我比较了 10 月 1 日的索引映射和今天的索引,它们有不同的映射。
这可能与其中一次停机有关吗?我不确定它为什么会发生变化(没有人在服务器上做任何工作)

假设这是问题所在,我有办法:

  1. 恢复旧映射,以便将来使用正确的索引创建索引?
  2. 更改现有索引的映射(关闭不是问题),使数据再次可搜索?

我不确定我是否提供了所有必需的信息,如果需要更多信息请告诉我
提前致谢,

梅尼

您运行查询的索引不包含您正在引用的字段。

您可以在 elasticsearch 中 ignore the unmapped fields,或者在您的 kibana 查询中使用 exists