使用 Kibana(最好是光彩夺目的新版本 4 beta)可以执行应用程序端联接吗?
我知道 ES/Kibana 不是用来取代关系数据库的,通常最好是对数据进行去规范化。但在这种情况下,这不是最佳方法,因为索引大小正在爆炸,而且性能正在下降:
我正在索引数十亿个文档,其中包含网络流会话信息,例如源 IP、源端口、目标 IP、目标端口和时间戳。
现在,我还想为每个 IP 地址收集其他信息,例如地理位置、ASN、反向 DNS 等。将此信息添加到每个会话文档中会使整个数据库无法管理:有数百万个文档具有相同的 IP 地址,将相同的附加信息添加到所有这些文档中会导致大量膨胀,并且即使在具有数百 GB RAM 的群集上,用户体验也会变得不响应。
相反,我想创建一个仅包含唯一 IP 地址和我已收集到的元数据的单独索引。
问题是:如何仍然使用 Kibana 分析我的数据?对于查询返回的每个文档,Kibana 应该在 ip-index 中执行查找,并使用此信息“虚拟丰富”每个 IP 地址。类似添加虚拟字段,以便结构看起来像这样(即光彩夺目):
源 IP、源端口、源国家、源 ASN、源 FQDN
我知道这将带来多次查询的代价。