Elasticsearch / Kibana:应用程序端连接

时间:2014-11-12 07:23:54

标签: join elasticsearch kibana

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

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

我正在索引数十亿个包含网络流会话信息的文档,如:source ip,source port,destination ip,destination port,timestamp。

现在我还想收集每个IP地址的附加信息,例如geolocation,asn,reverse dns等。将此信息添加到每个会话文档会使整个数据库无法管理:有数百万个文档具有相同的IP地址并且在所有这些文档中添加相同的附加信息的冗余导致了大量的膨胀和无响应的用户体验,即使在具有数百GB内存的集群上也是如此。

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

问题是:如何使用kibana分析我的数据?对于查询返回的每个文档,kibana应该在ip-index中执行查找,并使用此信息“虚拟地丰富”每个ip地址。像添加虚拟字段的东西,所以结构看起来像这样(在运行中):

source ip,source port, source country,source asn,source fqdn

我知道这会以多次查询为代价。

1 个答案:

答案 0 :(得分:2)

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

  1. 您可以创建可过滤的漂亮而简单的数据可视化 不同的类型,只显示一个简单的数据。
  2. 您将这些不同的可视化显示在仪表板中,以显示与某种类型的联接相关联的所有数据。
  3. 您使用过滤器作为加入密钥并使用完整的信息中心, 由不同的面板组成,以获得特定连接键的见解 (在你的情况下是ips,或者会话)
  4. 您需要为要制作的每种类型的联接创建1个仪表板。

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

    让我们保持最新状态,这是一个有趣的问题,我现在想知道如此多的文件。