Kibana 显示“正在搜索...”,没有显示任何结果。 ElasticSearch 中存在已确认的数据
Posted
技术标签:
【中文标题】Kibana 显示“正在搜索...”,没有显示任何结果。 ElasticSearch 中存在已确认的数据【英文标题】:Kibana displays "Searching...", displays no results. Confirmed data exists in ElasticSearch 【发布时间】:2015-04-24 16:52:48 【问题描述】:我正在尝试构建新索引,但在 Kibana 中遇到了一些问题。 “发现”页面已经显示“正在搜索...”几个小时了,仅在少数数据点上。我认为格式可能有问题?
索引页面显示 Average、Maximum 和 Minimum 都是数字,analyzed=false,indexed=true。 InstanceID, MetricName,Region 都是字符串,分析和索引 = True。 时间戳是一个日期
这是否表明问题可能是什么?
编辑: 来自警告的附加信息:“此字段上未启用文档值。这可能会导致可视化时过多的堆消耗”......并且...... "这是一个被分析的字符串字段。被分析的字符串是高度唯一的,可以使用大量的内存来分析"
编辑 2: 几点注意事项: 我的映射似乎无法正常工作。
Invoke-RestMethod "$URI/mytestindex/t2credbal" -Method post -body '
"mytestindex":
"mappings":
"t2credbal":
"properties":
"timestamp": "type":"date",
"minimum": "type":"number", "index":"no", "fielddata": "format": "doc_values" ,
"maximum": "type":"number", "index":"no", "fielddata": "format": "doc_values" ,
"average": "type":"number", "index":"no", "fielddata": "format": "doc_values"
'
当我运行上面的命令时,我的字段显示为 mytestindex.mappings.t2credbal.properties.timestamp,而不仅仅是时间戳
我的值报告为 Records.Timestamp(根据下面的命令),具有正确的字段类型,所以我认为在我的情况下指定映射不是完全必要的。然而,Kibana 无法搜索和分析数据,尽管它在 ElasticSearch 中完全符合我的预期。
$json= Records: [
"Minimum": 280.91,
"Maximum": 280.97,
"Average": 280.94416666666672,
"Timestamp": "2015-04-27T13:12:00Z",
"InstanceID": "i-65e2b951",
"MetricName": "CPUCreditBalance",
"Region": "eu-west-1"
Invoke-RestMethod "$URI/mytestindex/t2credbal/" -Method Post -Body $json -ContentType 'application/json'
编辑#3
我将时间戳格式调整为在我的另一个索引中对我有用的格式;但是在尝试可视化时间戳字段时出现以下错误:
Error: Request to Elasticsearch failed: "error":"SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures [S73SynuOQzW4NKbwPN7tTg][mytestindex][0]: SearchParseException[[mytestindex][0]:
query[ConstantScore(*:*)],from[-1],size[0]: Parse Failure [Failed to parse source [\"size\":0,\"query\":\"query_string\":\"analyze_wildcard\":true,\"query\":\"*\",\"aggs\":\"1\":\"date_histogram\":\"field\":\"Records.Timestamp\",\"interval\":\"0ms\",\"pre_zone\":\"-04:00\",\"pre_zone_adjust_large_interval\":true,\"min_doc_count\":1,\"extended_bounds\":\"min\":1430158024806,\"max\":1430158924806]]]; nested:
ElasticsearchIllegalArgumentException[Zero or negative time interval not supported]; [S73SynuOQzW4NKbwPN7tTg][mytestindex][1]: SearchParseException[[mytestindex][1]: query[ConstantScore(*:*)],from[-1],size[0]: Parse Failure [Failed to parse source [\"size\":0,\"query\":\"query_string\":\"analyze_wildcard\":true,\"query\":\"*\",\"aggs\":\"1\":\"date_histogram\":\"field\":\"Records.Timestamp\",\"interval\":\"0ms\",\"pre_zone\":\"-04:00\",\"pre_zone_adjust_large_interval\":true,\"min_doc_count\":1,\"extended_bounds\":\"min\":1430158024806,\"max\":1430158924806]]]; nested:
ElasticsearchIllegalArgumentException[Zero or negative time interval not supported]; [S73SynuOQzW4NKbwPN7tTg][mytestindex][2]: SearchParseException[[mytestindex][2]: query[ConstantScore(*:*)],from[-1],size[0]: Parse Failure [Failed to parse source [\"size\":0,\"query\":\"query_string\":\"analyze_wildcard\":true,\"query\":\"*\",\"aggs\":\"1\":\"date_histogram\":\"field\":\"Records.Timestamp\",\"interval\":\"0ms\",\"pre_zone\":\"-04:00\",\"pre_zone_adjust_large_interval\":true,\"min_doc_count\":1,\"extended_bounds\":\"min\":1430158024806,\"max\":1430158924806]]]; nested:
ElasticsearchIllegalArgumentException[Zero or negative time interval not supported]; [S73SynuOQzW4NKbwPN7tTg][mytestindex][3]: SearchParseException[[mytestindex][3]: query[ConstantScore(*:*)],from[-1],size[0]: Parse Failure [Failed to parse source [\"size\":0,\"query\":\"query_string\":\"analyze_wildcard\":true,\"query\":\"*\",\"aggs\":\"1\":\"date_histogram\":\"field\":\"Records.Timestamp\",\"interval\":\"0ms\",\"pre_zone\":\"-04:00\",\"pre_zone_adjust_large_interval\":true,\"min_doc_count\":1,\"extended_bounds\":\"min\":1430158024806,\"max\":1430158924806]]]; nested:
ElasticsearchIllegalArgumentException[Zero or negative time interval not supported]; [S73SynuOQzW4NKbwPN7tTg][mytestindex][4]: SearchParseException[[mytestindex][4]: query[ConstantScore(*:*)],from[-1],size[0]: Parse Failure [Failed to parse source [\"size\":0,\"query\":\"query_string\":\"analyze_wildcard\":true,\"query\":\"*\",\"aggs\":\"1\":\"date_histogram\":\"field\":\"Records.Timestamp\",\"interval\":\"0ms\",\"pre_zone\":\"-04:00\",\"pre_zone_adjust_large_interval\":true,\"min_doc_count\":1,\"extended_bounds\":\"min\":1430158024806,\"max\":1430158924806]]]; nested:
ElasticsearchIllegalArgumentException[Zero or negative time interval not supported]; ]"
at http://myurl.com/index.js?_b=5930:42978:38
at Function.Promise.try (http://myurl.com/index.js?_b=5930:46205:26)
at http://myurl.com/index.js?_b=5930:46183:27
at Array.map (native)
at Function.Promise.map (http://myurl.com/index.js?_b=5930:46182:30)
at callResponseHandlers (http://myurl.com/index.js?_b=5930:42950:22)
at http://myurl.com/index.js?_b=5930:43068:16
at wrappedCallback (http://myurl.com/index.js?_b=5930:20873:81)
at wrappedCallback (http://myurl.com/index.js?_b=5930:20873:81)
at http://myurl.com/index.js?_b=5930:20959:26
编辑#4
修复了时间戳格式。 使用 _search 验证结果是否按预期显示?句法。 完全炸毁并重新创建了我的索引,验证了所有字段名称和类型都正确。 发现屏幕现在显示“无结果”而不是“正在搜索...”。 当我将时间间隔从 15 分钟更改为任何其他值时,我得到以下信息:
Discover: Cannot read property 'indexOf' of undefined
TypeError: Cannot read property 'indexOf' of undefined
at Notifier.error (myurl/index.js?_b=5930:45607:23)
at Notifier.bound (myurl/index.js?_b=5930:32081:21)
at myurl/index.js?_b=5930:118772:18
at wrappedCallback (myurl/index.js?_b=5930:20873:81)
at myurl/index.js?_b=5930:20959:26
at Scope.$eval (myurl/index.js?_b=5930:22002:28)
at Scope.$digest (myurl/index.js?_b=5930:21814:31)
at Scope.$apply (myurl/index.js?_b=5930:22106:24)
at done (myurl/index.js?_b=5930:17641:45)
at completeRequest (myurl/index.js?_b=5930:17855:7)
【问题讨论】:
您是否指定了要使用的分析仪?如果有,是哪一个?您可以通过访问_search?
(进行精简搜索)找到您想要的字段
我没有指定一个...我对 ES 很陌生,所以我对它们还不太了解。我在上面发布的示例数据点来自 _search 结果
信息不足。如果需要,您可以使用完整的详细信息更新您的帖子:索引映射和一些用于插入数据的 curl 命令。这样它就可以重现。此外,您使用的是哪个版本的 elasticsearch 和 kibana?
进行了更多编辑。似乎没有必要指定映射,因为 ElasticSeach 正在正确分析字段并将它们列为 Kibana 中的正确类型(字符串、数字)。尝试指定它们似乎只会产生更多问题。
另外,我认为 Timestamp 字段可能是问题的根源。当我尝试可视化该字段时,Kibana 显示 0 个结果...我将尝试使用其格式。
【参考方案1】:
我能够通过更正 ElasticSearch 中的日期格式来解决该问题。我脚本中的 Powershell convertto-json 命令将时间戳对象转换为不与 Kibana 合作的日期格式。将日期格式设置为 yyyy-MM-hhThh:mm:ss 后,永无止境的“搜索...”问题消失了,但出现了新问题。
将单独发布该问题。
【讨论】:
跟进,我已经完全解决了问题。 Kibana 不喜欢我将统计信息作为“记录”的子类型输入,因此我调整了脚本以使用 foreach 语句单独发布我的 JSON 对象。通过按以下格式输入数据: "Minimum": 279.29, "Maximum": 279.43, "Average": 279.35833333333335, "Timestamp": "2015-04-30T08:17:00Z", "InstanceID": "i- d0be991a", "MetricName": "CPUCreditBalance", "Region": "ap-southeast-1" ,我能够按预期显示数据。 我也有同样的问题,但是上面的解决方法没有用。以上是关于Kibana 显示“正在搜索...”,没有显示任何结果。 ElasticSearch 中存在已确认的数据的主要内容,如果未能解决你的问题,请参考以下文章