我已经设置了elasticsearch(版本1.7.3)和Kibana(版本4.1.2)来索引我们的应用程序的Elmah XML文件错误。我使用.Net来解析xml文件和Nest ElasticSearch客户端以将索引插入到ElasticSearch中。问题是Kibana没有在" Discover"中显示任何数据。标签
当我运行curl -XGET localhost:9200 / .kibana / index-pattern / eol?命令,我收到以下回复:
{"_index":".kibana","_type":"index-pattern","_id":"eol","_version":2,"found":tru
e,"_source":{"title":"eol","timeFieldName":"errorTime","fields":"[{\"name\":\"_i
ndex\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"indexed\":false,\"an
alyzed\":false,\"doc_values\":false},{\"name\":\"filePath\",\"type\":\"string\",
\"count\":0,\"scripted\":false,\"indexed\":true,\"analyzed\":true,\"doc_values\"
:false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\
"indexed\":true,\"analyzed\":false,\"doc_values\":false},{\"name\":\"message\",\
"type\":\"string\",\"count\":0,\"scripted\":false,\"indexed\":true,\"analyzed\":
true,\"doc_values\":false},{\"name\":\"errorTime\",\"type\":\"date\",\"count\":0
,\"scripted\":false,\"indexed\":true,\"analyzed\":false,\"doc_values\":false},{\
"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"indexe
d\":false,\"analyzed\":false,\"doc_values\":false},{\"name\":\"_id\",\"type\":\"
string\",\"count\":0,\"scripted\":false,\"indexed\":false,\"analyzed\":false,\"d
oc_values\":false}]"}}
现状 Elasticsearch启动并运行,响应直接在Elasticsearch上执行查询的API,如http://localhost:9200/eol/_search?q= *返回大量结果
Kibana已经开始运行,甚至找到了" eol" Elasticsearch公开的索引 Kibana还显示了" eol"的正确属性和数据类型。文件 "发现和#34;选项卡不会显示任何结果......即使将时间段设置为几年...... 我尝试从“设置”选项卡中删除索引,重新启动Kibana,然后在“设置”中重新添加索引。 我还试图用yyyy-MM-ddThh:mm:ss格式保存日期字段,但我仍然没有看到任何结果。 我认为问题在于Elmah UTC日期格式(例如2015-10-13T19:54:49.4547709Z)或Elmah消息。我猜ElasticSearch喜欢Elmah消息,但Kibana不喜欢。
任何想法??
答案 0 :(得分:1)
我使用Nest将数据插入ElasticSearch。似乎Nest正在序列化List并向ElasticSearch发出请求的方式具有Kibana不喜欢的特殊字符。
之前(不工作):
private static void WriteErrorsIntoElasticSearchIndex(ElasticClient elasticClient, List<error> errors)
{
elasticClient.Index(errors);
}
<强>后(工作):强>
private static void WriteErrorsIntoElasticSearchIndex(ElasticClient elasticClient, List<error> errors)
{
foreach (var error in errors)
{
elasticClient.Index(error);
}
}
答案 1 :(得分:0)
你有“\”,通常在elasticsearch结果中没有,JSON无法解析结果,因为它不合适,