【问题标题】:Kibana doesn't show any results in “Discover” tabKibana 没有在“发现”选项卡中显示任何结果
【发布时间】:2015-10-14 21:20:14
【问题描述】:

我已经设置了 elasticsearch(1.7.3 版)和 Kibana(4.1.2 版)来索引我们应用程序的 Elmah XML 文件错误。我正在使用 .Net 解析 xml 文件并使用 Nest ElasticSearch 客户端将索引插入到 ElasticSearch 中。问题是 Kibana 没有在“发现”选项卡中显示任何数据。

当我运行 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 已启动并运行,响应 API 直接在 Elasticsearch 上执行查询,例如 http://localhost:9200/eol/_search?q=* 返回大量结果

Kibana 启动并运行,甚至发现 Elasticsearch 暴露的“eol”索引 Kibana 还显示了“eol”文档的正确属性和数据类型 “发现”选项卡没有显示任何结果......即使将时间段设置为几年...... 我已经尝试从设置选项卡中删除索引,重新启动 Kibana,然后在设置中重新添加索引。 我还尝试使用 yyyy-MM-ddThh:mm:ss 格式保存日期字段,但我仍然没有看到任何结果。 我认为问题在于 Elmah UTC 日期格式(例如 2015-10-13T19:54:49.4547709Z)或 Elmah 消息。我猜 ElasticSearch 喜欢 Elmah 消息,但 Kibana 不喜欢。

有什么想法吗??

以下是 Kibana 对“eol”索引的看法:

..以及我在发现选项卡中看到的内容:

【问题讨论】:

  • 这可能是时间问题。你能拿“过去 5 年”之类的东西看看有没有结果。
  • @VineethMohan:当我搜索过去 12 小时时,kibana 没有显示任何内容。我目前正在搜索过去 5 年。
  • @VineethMohan:如果我搜索过去 5 年,则未找到任何数据。
  • 你能用curl -XGET localhost:9200/.kibana/index-pattern/eol展示你得到了什么吗?我觉得奇怪的是,“可用字段”下没有列出任何字段,即使它们显示在“设置”>“索引”中。
  • 您能否还显示您在查询 Kibana 时获得的日志跟踪?最后你运行的是什么版本的 Kibana?我们会让它工作的,不用担心......

标签: elasticsearch kibana elmah nest elastic-stack


【解决方案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);    
            }
        }

【讨论】:

  • 顺便说一句。你可以试试elasticClient.IndexMany(errors)
  • 谢谢 Rob,我确实找到了那处房产,但很着急。我会测试并让社区知道。
【解决方案2】:

你有 "\" ,通常在elasticsearch结果中没有,JSON不能解析结果,因为它不合适,

【讨论】:

    猜你喜欢
    • 2015-06-04
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多