用于分析日志系统的 ElasticSearch 数据模型

问题描述 投票:0回答:0

我对 ElasticSearch 还很陌生,并且在为我的问题设计数据模型时遇到了困难。这里有一些简短的信息:

  • 我的系统有很多台电脑。每台计算机可以有几百个配置参数。这些参数值对于每台计算机可能不同。
  • 一台电脑会有多种类型的日志。每个日志可以有数百万行消息。在某个时间,我们可以对每台计算机的这些日志和配置进行快照。
  • 日志快照放在一个zip文件中,将被发送到日志分析系统进行存储和处理。每台电脑可以有多个快照文件存储在系统中。
  • 用户可以单独或联合查询日志和计算机配置信息。

在这种情况下,你能给我一些有效设计计算机和日志模型的想法吗?

我一抬头就想到了这样用亲子关系:

PUT /computers
{
  "mappings": {
    "properties": {
      "join_fields": {
        "type": "join",
        "relations": {
          "computer": ["log_type_1", "log_type_2", "log_type_3"]
        }
      }
    }
  }
}

每个文档可以是计算机配置参数或单个日志消息。但最大的缺点是所有东西都将保存在一个分片中。从长远来看,我担心这会极大地影响性能。

另一种方法是为计算机和日志创建不同的索引。但是,如何在不多次调用 Elastic Search 的情况下查询信息呢?

elasticsearch data-modeling datamodel
© www.soinside.com 2019 - 2024. All rights reserved.