【Elastic Engineering】Kibana:几种创建 filter 的方法

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 在 实际的 Kibana 使用中,我们经常会使用到 filter。比如,当我们进行威胁捕获时,我们通过 filter 的使用,快速地定位那些异常的服务器,并采取相应的行动。filter 可以很方便地帮我们筛选所需要的数据,更重要的是它很方便地让我们随时编辑,启动或者禁止这个 filter 的使用。过滤器在很多方面与搜索非常相似。


在 实际的 Kibana 使用中,我们经常会使用到  filter。比如,当我们进行威胁捕获时,我们通过 filter 的使用,快速地定位那些异常的服务器,并采取相应的行动。filter  可以很方便地帮我们筛选所需要的数据,更重要的是它很方便地让我们随时编辑,启动或者禁止这个 filter 的使用。过滤器在很多方面与搜索非常相似。  例如,过滤器和搜索都将转换为查询 DSL(Elasticsearch 使用的查询),并且两者都可以过滤将要显示的文档。 但是,过滤器提供的主要优点之一是你不仅限于一个过滤器。 你可以根据需要创建任意数量的过滤器。 而对于搜索,你只有一个搜索栏。 创建过滤器后,你将可以执行以下操作:


  • 启动或禁止过滤器
  • 固定你的过滤器
  • 反转你的过滤器
  • 删除你的过滤器
  • 编辑你的过滤器


在今天的文章中,我来介绍一下创建 filter 的几种方法。


image.png


如何在 Kibana 中使用 filter 来过滤数据


准备数据


在今天的展示中,我将使用 Elastic Stack 7.10 来进行展示。我使用 Kibana 自带的数据来进行展示。首先我们打开 Kibana,并进入到 home:



点击上面的 Add data 按钮:



这样就在 Elasticsearch 中创建一个叫做 kibana_sample_data_logs 的索引。接下来,我们将以这个索引为例来进行展示。


创建 filters


使用 “Discover”界 面中的值来创建过滤器


我们首先打开 Discover j界面。我们需要选择合适的时间范围已经我们需要分析的索引名称。针对我们的情况,这个索引是 kibana_sample_data_logs。你可以通过鼠标来选择 time filter 的范围:



你也可以直接通过在 time picker 里直接输入你想要的时间范围:



我展开文档的内容:



当我们把光标停留于一个字段上面时,在该字段的左边会出现  +   以及  - 符号的图标。他们分别表示设置一个 filter。如果选择  +,它表示显示所有的目的地为 CZ 的文档,而当我们选择 - 时,它则表示显示所有目的地为非 CZ 的所有文档。我们点击 + 符号:



我们在屏幕的左上方出现了一个新添加的 filter。它查询所有目的地为 CZ 的文档。目前只有一个文档。我们针对这个 filter 也可以进行修改,比如:



当我们选择 Exclude results 这个选项的时候,它表示我们想要查询那些非 CZ  目的地的文档。从上面的图标可以看出来是一个 - 符号:



上面的 filter 显示的是 NOT geo.dest: CZ。现在这次显示的文档的数目非常多。当然,我们也可以针对这个 filter 进行编辑:



在上面,我们修改这个 filter 来查询目的地位 CN (中国)的所有文档。点击上面的 Save 按钮:



这样,我们可以看到所有的目的地位 CN 的所有文档。当然,在进行 thread hunting 时,我们有时需要禁止这个 filter 的操作。我们可选择禁止的操作:



这样的操作使得我们很容易启动或禁止这个 filter。这样往往比在 search bar 中进行搜索来的更方便直接。上面显示该 filter 完全失去作用。文档数又回到最先的文档数 1833。


当然,我们也可以重新启动该 filter:



或者通过 Delete 来删除之前已经创建的 filter。细心的读者,可以能已经发现在上还有一个 Pin across all apps 这样的一个选项。它的意思是一旦我们选择这个,那么这个 filter 将在任何其它的可视化图中或者 Dashboard 中显示并起作用。我们现在选择这个选项:



我们发现这个 filter 的边框会有所改变。我们接下来打开这个索引相对应的 Dashboard:



在这个 Dashboard 中,我们可以看到 geo.dest: CN 这个 filter 已经存在,并对 Dashboard 的展示起作用。


如果我们想了解这个 filter 到底是如何用 Query DSL 来实现的,我们可以通过如下的操作来完成:



在上面,我们可以清楚地看到它使用的是 match_phrase 来实现的。如果你想了解更多关于如何使用 Query DSL 来进行 filter 操作的,请参阅我之前的文章 “开始使用Elasticsearch (2)”。你可以阅读里面的 “复合查询” 部分。


你还可以通过字段列表来创建 filter:



如果我们点击上面的 + 号,那么我们可以看到添加的 filter:



上面显示 geo.src 是 CN,也就是来自中国的文档。


手动创建 filter


我们也可以通过手动的方式来进行创建 filter:



我们点击 Add filter:



在上面,我们创建一个 filter。它出现来自 CN 或者  US  的所有文档。我们也可以启动上面的 Create custom label 开关来为这个 filter 取一个自己喜欢的名字。


点击上面的 Save 按钮:



在上面我们已经创建了一个 filter。它显示来自 CN 已经 US 共有 452 个文档。当然,如果我们不用 filter,而直接使用 search bar,我们也可以达到同样的效果:



在某种程度上讲,搜索和 filter 的效果是一样的,但是 filter 更具有灵活性。我们可以直接启动或者禁止,我们可以甚至创建多于一个的 filter 来同时起作用。


通过可视化来创建 filter


我们还是回到先前的 Dashboard:



我们找到一个我们想要分析的可视化图,并点击相应的部分。比如,我们点击上面的 win xp :



我们可以看到它创建了一个叫做 machine.os.keyword: win xp 的  filter,而且所有其它的可视化图中的数据都立即发生改变。在可视化化中通过这样的方法来创建  filter,很方便我们对数据进行分析。特别是在异常分析中非常有用,比如当我们的数据发生异常,在某个时间有特别大的请求,我们可以通过地图显示哪个国家发生在那个时代的请求比较多,进而找出在那个国家发送大量数据请求的服务器  IP 地址。我们可以很方便地使用可视化所创建的 filter 来帮助我们查出问题的根源。


在上面的 Dashboard 中,我们也可以针对地图来进行设置 filter:



我们选择一个四方形来过滤数据:



在上面我画了一个四方形,那么它将自动帮我们创建一个在这个范围里的过滤器,也就是说只有在这个范围里的数据才可以被搜索和展示:



当然,我们可以通过编辑来查看这个过滤器的边界设置:



通过 control 来设置 filter


在上面我们直接通过 Kibana 的 discover 或者 Dashboard 来创建 filter。我们可以通过 control 来设置 filter。在今天的文章中,我就不累述了。有兴趣的读者可以参阅我之前的文章 “Kibana:使用定制 control 可视化简化数据展示”。


总结


filter 在 Kibana 中很方便地为我们提供了一种便捷和灵活的方式来对数据进行搜索。本文介绍了我们常用的几种创建 filter 的方式。希望对大家的使用带来方便。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
索引
【Elastic Engineering】创作 Kibana: 如何使用 Search Bar
我们知道 Kibana 作为 Elasticsearch 的数据呈现及分析,在 Kibana 中,search 几乎遍布所有的页面。搜索对于 Elastic 至关重要。了解如何在 Kibana 中进行搜索时非常重要的。它不仅仅限于我们对于输入字的搜索,或者对于一些词的过滤。
321 0
【Elastic Engineering】创作 Kibana: 如何使用 Search Bar
|
监控 Ubuntu 安全
【Elastic Engineering】Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0
如果你已经安装过最近的 Elastic Stack 的话,你可能已经发现 Beats 已经不是推荐的数据摄入方式,取而代之的是 Elastic Agent。
1493 0
【Elastic Engineering】Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0
|
数据可视化 API 索引
【Elastic Engineering】Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布
Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布
357 0
【Elastic Engineering】Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布
|
存储 索引
|
JSON 自然语言处理 数据库
|
API 网络架构 索引
|
存储 SQL JSON
|
API 索引
【Elastic Engineering】Elasticsearch:可组合的 Index templates - 7.8 版本之后
Elasticsearch:可组合的 Index templates - 7.8 版本之后
436 0
【Elastic Engineering】Elasticsearch:可组合的 Index templates - 7.8 版本之后
|
API 索引
【Elastic Engineering】Elasticsearch:运用 search_after 来进行深度分页
Elasticsearch:运用 search_after 来进行深度分页
456 0
【Elastic Engineering】Elasticsearch:运用 search_after 来进行深度分页