如何使一个发现表链接到仪表板或其他地方的另一个发现表?

时间:2018-11-08 04:42:58

标签: elasticsearch kibana kibana-6

我正在使用elasticsearch + kibana + logstash + filebeat最新的6.4.1来收集和分析Web日志。我的日志列如下:

timestamp, http_method, request_uri, http_status, host, user_agent, client_ip, client_port

我已经配置了ELK以在Kibana中显示我的日志。但是现在我想在会话中查看我的日志。我希望日志行可以按会话进行分组,并显示在Kibana的Discover页中。在我的情况下,具有相同(host, client_ip)的日志行属于同一会话。

我希望有这个:


  1. 会话表

    名称,client_ip,主机

    session1,www.google.com,1.2.3.4

    session2,www.bing.com,5.6.7.8

    session3,www.google.com,4.3.2.1


当我单击上述会话之一(例如session1)时,可以在下面的第二张表中看到该会话的所有记录:


  1. 日志表

    时间戳,http_method,request_uri,http_status,主机,user_agent,client_ip,client_port

    20181105,21:33:17.773,POST,/index.html,200,www.google.com,chr​​ome 59,1.2.3.4,1234

    20181105,21:33:18.773,POST,/abc.html,200,www.google.com,chr​​ome 59,1.2.3.4,1234

    20181105,21:33:19.773,POST,/index.html,404,www.google.com,chr​​ome 59,1.2.3.4,5678


我知道Elasticsearch进行平面索引,在文档之间具有层次结构并不容易。我可以为上述两个表创建单独的索引。我知道仪表板可以同时显示两个Discover表。但是我的问题是:

如何链接这两个表?当我单击“会话”表中的一项时,“日志”表将显示相应的内容吗?

还是有其他方法可以满足我的要求(在Kibana中轻松查看基于会话的日志)?谢谢。


更新

“日志”表的索引包含会话字段,该字段可以为session1session2等。这两个索引都在我的控制之下。因此,我可以根据需要添加任何字段。

1 个答案:

答案 0 :(得分:1)

我要做的是在日志表中添加一个session字段,其中包含与每个日志行的会话表中相同的会话名。那将是您的“加入键”。

然后,您可以创建一个sessions索引和另一个logs索引。两个索引都必须具有该session字段。然后进入Kibana,可以为每个索引创建一个索引模式。

接下来,转到“发现”选项卡,并为每个索引模式创建一个保存的搜索,现在您应该有一个名为“日志”的保存搜索,以及另一个名为“会话”的保存搜索。

最后,转到“仪表板”选项卡,并添加您先前创建的两个保存的搜索。在下面的屏幕截图中,您可以看到,将鼠标悬停在会话字段上时,可以按该字段进行过滤。如果您点击(例如)session2,则将对这两个表进行相应过滤,从而实现所需的功能。

enter image description here