elasticsearch,kibana,Join,elasticsearch,Kibana" /> elasticsearch,kibana,Join,elasticsearch,Kibana" />

Join Elasticsearch/Kibana:应用程序端连接

Join Elasticsearch/Kibana:应用程序端连接,join,elasticsearch,kibana,Join,elasticsearch,Kibana,Kibana(最好是闪亮的新版本4 beta)可以执行应用程序端连接吗 我知道ES/Kibana不是为了取代关系数据库而构建的,通常情况下,对数据进行非规范化是一个更好的主意。然而,在本用例中,这并不是最好的方法,因为索引大小正在爆炸,而性能正在下降: 我正在索引数十亿个包含网络流会话信息的文档,如:源ip、源端口、目标ip、目标端口、时间戳 现在我还想收集每个ip地址的附加信息,例如地理位置、asn、,反向dns等。将此信息添加到每个会话文档中会使整个数据库变得不可管理:有数百万个文档具有相同

Kibana(最好是闪亮的新版本4 beta)可以执行应用程序端连接吗

我知道ES/Kibana不是为了取代关系数据库而构建的,通常情况下,对数据进行非规范化是一个更好的主意。然而,在本用例中,这并不是最好的方法,因为索引大小正在爆炸,而性能正在下降:

我正在索引数十亿个包含网络流会话信息的文档,如:源ip、源端口、目标ip、目标端口、时间戳

现在我还想收集每个ip地址的附加信息,例如地理位置、asn、,反向dns等。将此信息添加到每个会话文档中会使整个数据库变得不可管理:有数百万个文档具有相同的ip地址,向所有这些文档添加相同的附加信息的冗余会导致大量的数据膨胀和无响应的用户体验,即使在具有数百个会话的集群上也是如此千兆字节的内存

相反,我想创建一个单独的索引,只包含唯一的ip地址和我收集到的每个地址的元数据

问题是:我如何仍然使用kibana分析数据?对于查询返回的每个文档,kibana应该在ip索引中执行查找,并用这些信息“实际上丰富”每个ip地址。类似于添加虚拟字段,使结构看起来像这样(动态):

源ip、源端口、源国家/地区、源asn、源fqdn


我知道这将以多个查询为代价。

我不认为有这样的事情,但也许你可以使用过滤器:

  • 您可以创建漂亮而简单的数据可视化,并对其进行过滤 不同类型,仅显示一个简单数据
  • 您将这些不同的可视化显示放在仪表板中,以便显示与联接类型关联的所有数据
  • 使用过滤器作为连接键,并使用完整的仪表板, 由不同的面板组成,以了解特定的连接键 (案例中的IP或会话)
  • 您需要为要进行的每种类型的联接创建一个仪表板

    请注意,您需要协调不同文档中字段的名称和映射


    保持我们的更新,这是一个有趣的问题,我现在想知道这么多文档的结果。

    出于好奇,您是否对未分析的字段缓存使用doc_值?就个人而言,在我尝试规范化数据之前,我会尝试切换到doc_值,看看这是否有帮助。您可能还想查看整型全局序数(Eg),但对于高基数数据,我实际上不认为这是一个非常好的主意。。。。