【问题标题】:How to aggregate in Kibana information from multiple Elasticsearch indexes?如何在 Kibana 中聚合来自多个 Elasticsearch 索引的信息?
【发布时间】:2014-10-25 14:06:00
【问题描述】:

我们正在设置来自多个相关应用程序的日志,以便将日志事件导入 Elasticsearch(通过 Logstash)。创建 Kibana 仪表板以可视化每个应用程序的日志索引很简单,但由于应用程序是相关的并且其活动属于同一管道,因此构建一个显示从不同应用程序收集的聚合信息的仪表板会很棒。这样的仪表板对于跟踪故障和性能问题特别有用。

现在我可以看到实现聚合仪表板的三种主要方法:

  1. 保留单独的应用程序日志并配置 Kibana 仪表板,以使用来自不同应用程序的信息。恐怕这可能是一项具有挑战性的任务,我什至不确定 Kibana 是否完全支持它。
  2. 修改应用程序日志记录,使它们都记录到同一个索引。我不喜欢的是日志事件结构必须跨应用程序统一,并且它们是由不同的人用不同的语言构建的。我对集中控制日志等低级细节失去了信心。
  3. 保留应用程序日志和相应的 Elastichsearch 索引,但要设置一个包含汇总信息的新索引。 This article 描述了如何配置 Elasticsearch 以将其日志转储到 Logstash,然后将它们插入回 Elasticsearch 进行搜索。乍一看,这种方法可能看起来令人惊讶:为什么需要再次将日志数据重新插入到同一个数据库中?这是另一个索引,它会增加开销、使用更多空间等。但它提供了以适合聚合 Kibana 仪表板的方式设置索引的机会。

不知道有没有人遇到过类似的困境,可以分享一下他们的经验。

【问题讨论】:

  • 我没有尝试过这个,我不知道它是否会起作用,所以把它当作它的价值......你可以尝试设置一个指向你想要的不同索引的别名将其作为单个索引查看,然后告诉 kibana 将其用作您的索引。
  • @Alcanzar,感谢您的提示。这很有趣,尽管我怀疑我们需要重塑正在聚合的数据,但我会研究一下。
  • 只是想一想,你能不能把所有东西都摄取到同一个索引中,然后使用标签来查询单独的仪表板,而不是使用标签来聚合?
  • 部落不就是为了这个吗?

标签: logging elasticsearch logstash kibana


【解决方案1】:

我们面临同样的问题,但角度不同。

我需要从 Kibana 的 2 个索引中获取数据。我们的数据结构在两个索引中是相同的。

所以,我手动添加了第二个索引(设置->对象部分):

{
  "index": [
    "index_one",
    "index_two"
  ],
 ...
}

它帮助我从我需要的那些索引中获取数据。

【讨论】:

    【解决方案2】:

    如果您不打算使用带时间戳的索引,我相信您可以将默认索引设置为 _all

    使用菜单,转到配置,单击索引选项卡,然后将时间戳设置为“无”,将默认索引设置为 _all。 JSON 模式最终会包含如下内容:

      "index": {
        "interval": "none",
        "pattern": "[logstash-]YYYY.MM.DD",
        "default": "_all",
        "warm_fields": false
      },
    

    如果您需要带时间戳的索引,则需要选择适当的间隔并输入以逗号分隔的索引列表,每个索引都以正确的格式指定。

    【讨论】:

    • 是的,然后我可以汇总所有索引的数据。但问题是不同应用程序生成的索引会以不同的方式引用某些事物,所以我必须对所有应用程序有共同的约定,或者从这些约定中构建另一个索引。我正在尝试找出什么是最好的。
    • 啊,我明白了。我会继续制定约定,而不是将事物移植到新索引。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 2016-08-20
    相关资源
    最近更新 更多