Kibana Logstash 弹性搜索 |无法搜索未索引的字段

Kibana Logstash ElasticSearch | Unindexed fields cannot be searched

我正在探索 ELK 堆栈并遇到了一个问题。

我已经生成日志,将日志转发到 logstash,日志采用 JSON 格式,因此它们直接推送到 ES,Logstash 配置中只有 JSON 过滤器,连接并启动 Kibana 指向ES.

Logstash 配置:

 filter {
  json {
    source => "message"
  }

现在我为每天的日志创建了索引,Kibana 很乐意显示来自所有索引的所有日志。

我的问题是:日志中有很多字段无法 enabled/indexed 在 Kibana 中进行过滤。当我尝试将它们添加到 Kibana 中的文件管理器时,它显示 “无法搜索未索引的字段”

注意:这些不是 sys/apache 日志。有 JSON 格式的自定义日志。

日志格式:

{"message":"ResponseDetails","@version":"1","@timestamp":"2015-05-23T03:18:51.782Z","type":"myGateway","file":"/tmp/myGatewayy.logstash","host":"localhost","offset":"1072","data":"text/javascript","statusCode":200,"correlationId":"a017db4ebf411edd3a79c6f86a3c0c2f","docType":"myGateway","level":"info","timestamp":"2015-05-23T03:15:58.796Z"}

'statusCode'、'correlationId' 等字段未编入索引。有什么原因吗?

我是否需要给 ES 一个映射文件来要求它索引所有或给定的字段?

您更新了 Kibana 字段列表?

  1. 基巴纳。
  2. 设置。
  3. 重新加载字段列表。

较新版本:

  1. Kibana.
  2. 管理。
  3. 刷新右上角的图标。

从 6.4.0 开始:

警告描述说的很简单:

Management > Index Patterns > Select 您的索引 > 按右上角的刷新按钮。

如果尝试刷新无法解决尝试更改index.blocks.write: "false"

enter image description here