elasticsearch,kibana,Nginx,elasticsearch,Kibana" /> elasticsearch,kibana,Nginx,elasticsearch,Kibana" />

Nginx Kibana中带有+;18000个字段会导致问题

Nginx Kibana中带有+;18000个字段会导致问题,nginx,elasticsearch,kibana,Nginx,elasticsearch,Kibana,我们一直在运行ElasticSearch v。1.6.0和Kibana v。4.1.0,NGINX作为代理已投入生产约两个月,该设置可处理多个应用程序的日志记录。 我们有830.000个文档,总共450MB和一个节点。所有日志语句都使用Serilog发送到ElasticSearch,Serilog每天创建一个索引 一周前,Kibana开始变得极其缓慢。我想我终于找到了原因;在Kibana中创建索引时,我们没有选中“使用事件时间创建索引名”框,因此我猜想,即使我们只查询过去15分钟内发生的日志语句

我们一直在运行ElasticSearch v。1.6.0和Kibana v。4.1.0,NGINX作为代理已投入生产约两个月,该设置可处理多个应用程序的日志记录。 我们有830.000个文档,总共450MB和一个节点。所有日志语句都使用Serilog发送到ElasticSearch,Serilog每天创建一个索引

一周前,Kibana开始变得极其缓慢。我想我终于找到了原因;在Kibana中创建索引时,我们没有选中“使用事件时间创建索引名”框,因此我猜想,即使我们只查询过去15分钟内发生的日志语句,Kibana实际上也会要求ElasticSearch查找所有索引

因此,我在Kibana中创建了一个格式为[serilog-]YYYY.MM.DD的新索引,Kibana承认该模式遵循所有现有索引。 然而,它在索引中发现了18000多个字段。许多田地看起来像

fields.modelState.Value.Value.Culture.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.IsReadOnlye
(其中,
IsReadOnly
因字段而异,嵌套的
父项的数量也不尽相同)

这似乎是造成问题的原因,因为当我转到“发现”选项卡时,控制台中会出现JavaScript错误:

注意
indexPattern.fields
是如何未定义的。在这个错误之后,我收到了413:

Kibana看起来像

fields.modelState.Value.Value.Culture.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.IsReadOnlye

这些字段不在旧索引中(其格式为serilog-*)。我想这是因为这些字段是在我们最初部署到生产环境之后首次出现在日志语句中的

更新

curl-XGET'localhost:9200/.kibana/index pattern/\u search'

但是,在“设置”选项卡下,我可以看到

我不需要所有带模式的字段


fields.modelState.Value.Value.Culture.Parent.

您能否查看.kibana索引您所谈论的各个索引模式是否成功创建?通过执行以下curl请求,您可以获得在Kibana中创建的所有索引模式:curl-XGET'localhost:9200/.Kibana/index pattern/_search'Hmm,索引模式已创建。我已经在帖子中添加了GET的结果。但奇怪的是,具有_id[serilog-]YYYY.MM.DD的模式在_source下没有任何字段节点。我通过将indexPattern:fieldMapping:lookBack设置为1,成功地获得了索引模式,这导致了大约900个字段。但是,每当我访问Kibana中的Discover选项卡时,我都可以在控制台中看到GET*/field/_source?u=1455873980772 502(坏网关)在120219.53ms内出现故障,错误发生后不久:respond处的坏网关(index.js?_b=7467:85279)