目前正在尝试创建一个带有实时用户信息的Kibana仪表板(当前用户数量,他们正在工作的地方等),并且我无法在时间上限制可视化。
我尝试过滤器
@timestamp:[now-6M/M TO now]
并在json输入字段中
{
"range" : {
"@timestamp" : {
"gte": "now-6d",
"lte": "now"
}
}
}
然而它无效,我收到以下错误。
我以前有这个工作,虽然不同版本的Elasticseach1.6 +和Kibana4
我尝试通过添加
来启用groovy脚本script.disable_dynamic: false
到yml文件,但它似乎不是问题。是否有任何提示或相对时间范围不再可能?
错误:
错误:对Elasticsearch的请求失败: {“error”:“SearchPhaseExecutionException [无法执行阶段 [查询],所有分片都失败了; shardFailures {[bzqrC3gbSPi7fp0OWh81VQ] [logstash-2015年2月14日] [0]: SearchParseException [[logstash-2015年2月14日] [0]: query [ConstantScore(BooleanFilter(+ cache(@timestamp:[1437289456709 TO 1439881456710])))],从[-1],size [0]:解析失败[无法解析 资源 [{\ “大小\”:0,\ “查询\”:{\ “过滤\”:{\ “查询\”:{\ “QUERY_STRING \”:{\ “查询\”:\“ \ ” \ “analyze_wildcard \”:真}},\ “过滤器\”:{\ “布尔\”:{\ “必须\”:[{\ “范围\”:{\ “@时间戳\”:{\ “GTE \”:1437289456709,\ “LTE \”:1439881456710}}}],\ “must_not \”:[]}}}},\ “AGGS \”:{\ “1 \”:{\“基数\ “:{\” 字段\ “:\” fields.UserName.raw \ “\ ”范围\“:{\ ”时间戳\“:{\ ”GTE \“:\ ”现在-6D \“,\” LTE \“:\“现在\”}}}}}}]]]; 嵌套:SearchParseException [[logstash-2015.02.14] [0]: query [ConstantScore(BooleanFilter(+ cache(@timestamp:[1437289456709 TO 1439881456710])))],从[-1],size [0]:解析失败[意外的令牌] 在1中START_OBJECT。]]; } {[bzqrC3gbSPi7fp0OWh81VQ] [logstash-2015年2月15日] [0]: SearchParseException [[logstash-2015年2月15日] [0]: query [ConstantScore(BooleanFilter(+ cache(@timestamp:[1437289456709 TO 1439881456710])))],从[-1],size [0]:解析失败[无法解析 资源 [{\ “大小\”:0,\ “查询\”:{\ “过滤\”:{\ “查询\”:{\ “QUERY_STRING \”:{\ “查询\”:\“ \”,\ “analyze_wildcard \”:真正}} \ “过滤器\”:{\ “布尔\”:{\ “\必须”:................. .................................... 在http://kibana:5601/index.js?_b=7489:43092:38 在Function.Promise.try(http://kibana:5601/index.js?_b=7489:46434:26) 在http://kibana:5601/index.js?_b=7489:46412:27 在Array.map(本机) 在Function.Promise.map(http://kibana:5601/index.js?_b=7489:46411:30) at callResponseHandlers(http://kibana:5601/index.js?_b=7489:43064:22) 在http://kibana:5601/index.js?_b=7489:43182:16 at wrappedCallback(http://kibana:5601/index.js?_b=7489:20893:81) at wrappedCallback(http://kibana:5601/index.js?_b=7489:20893:81) 在http://kibana:5601/index.js?_b=7489:20979:26
在Windows 2012r2上使用Kibana 4.1.1和Elasticsearch 1.7,jre 1.8.0.31
答案 0 :(得分:2)
您可以使用时间范围过滤器,如:
timestamp:[now-6M/M TO now]
获取过去6个月的数据。
答案 1 :(得分:1)
每当您看到SearchParseException
时,这意味着您的查询语法出现问题。所以它看起来像这样:
{
"size": 0,
"query": {
"filtered": {
"query": {
"query_string": {
"query": "",
"analyze_wildcard": true
}
},
"filter": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": 1437289456709,
"lte": 1439881456710
}
}
}
],
"must_not": []
}
}
}
},
"aggs": {
"1": {
"cardinality": {
"field": "fields.UserName.raw",
"range": { <------ HERE is the problem
"timestamp": {
"gte": "now-6d",
"lte": "now"
}
}
}
}
}
}
问题在于您的cardinality
汇总,您不能拥有range
这样的汇总。几乎可以肯定您没有在正确的JSON字段中输入range
。
为什么您不是简单地使用内置时间过滤器,而是可以实现您想要的效果。选择&#34;相对&#34;然后&#34; 6天前&#34;现在,你已经完成了。