Kibana - 设置JSON输入以获取最新信息

时间:2015-12-15 17:15:50

标签: elasticsearch kibana kibana-4

我正在尝试使用elasticsearch中的数据在kibana中渲染条形图。 我的弹性搜索中有两个文档。

Document1
{
    "Name": "BDV301",
    "CheckName": "ADAccountPrivileges",
    "CompletedDate": "2015-12-15T16:05:35.607Z"
}

Document2
{
    "Name": "BDV301",
    "CheckName": "ADAccountPrivileges",
    "CompletedDate": "2014-12-15T16:05:35.607Z"
}

在kibana条形图中,我总是希望显示最新文档(根据CompletedDate字段)

enter image description here

我可以使用JSON输入字段吗? 我尝试添加json脚本

{
  "filter" : {
    "match_all" : { }
  },
  "sort": [
    {
      "CompletedDate": {
        "order": "desc"
      }
    }
  ],
  "size": 1
}

根据CompletedDate获取最新文档,但我仍然将计数设为2.奇怪的是,我没有在Kibana的Elasticsearch请求体中看到我的JSON输入。 这就是我在Elasticsearch请求体中看到的内容。

{
  "size": 0,
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "analyze_wildcard": true,
          "query": "*"
        }
      },
      "filter": {
        "bool": {
          "must": [
            {
              "range": {
                "CompletedDate": {
                  "gte": 1292433048436,
                  "lte": 1450199448436,
                  "format": "epoch_millis"
                }
              }
            }
          ],
          "must_not": []
        }
      }
    }
  },
  "aggs": {
    "2": {
      "terms": {
        "field": "CheckName",
        "size": 5,
        "order": {
          "_count": "desc"
        }
      }
    }
  }
}

enter image description here

为什么我的JSON输入脚本没有出现在Elasticsearch请求体中? 请帮助。

1 个答案:

答案 0 :(得分:1)

如果要获取字段的最新值,可以使用术语聚合+按时间戳排序。当然,这样做的条形图并没有多大意义,因为你只有一个带有一个元素的条形图。

在我看来,使用表格获取最新值更有意义。为此,您必须在左栏中选择此选项:

Aggregation form

这将产生一个具有所需值的表以及何时发生。

Aggregation result

最后,JSON输入只允许您将属性放到聚合中,例如,如果要修改cardinality aggregation的精度,可以在此框中指定精度,但它不是字段在Kibana查询中插入任何内容。