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

简介: 在 实际的 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 的方式。希望对大家的使用带来方便。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
Kubernetes 容器 Perl
【kubernetes】解决: kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = faile...
【kubernetes】解决: kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = faile...
18337 0
|
存储 缓存 监控
干货 | Elasticsearch 8.X 性能优化实战
干货 | Elasticsearch 8.X 性能优化实战
|
10月前
|
API 开发者 C++
《HarmonyOS Next分布式实战:跨设备流转玩出花!迁移+协同=超级终端》
《HarmonyOS Next分布式实战:跨设备流转玩出花!迁移+协同=超级终端》介绍了HarmonyOS如何通过分布式技术将多设备变为超级队友。核心功能包括跨端迁移和多端协同,实现任务接力与高效配合。文章通过实际案例解析,如媒体播控、应用接续等,展示无缝体验,并提供开发技巧。适合教育科普及开发者学习,助你掌握打破设备壁垒的分布式能力。
1176 0
|
监控 API 开发工具
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
|
Ubuntu Linux Apache
在Linux中,如何使用logrotate命令管理日志文件?
在Linux中,如何使用logrotate命令管理日志文件?
|
关系型数据库 MySQL Java
如何仅用3行代码,搞定业务敏感数据加解密?
全密态数据库或许是企业数据安全问题的金钥匙
如何仅用3行代码,搞定业务敏感数据加解密?
|
缓存 网络协议 网络性能优化
基于 Wireshark 分析 IP 协议
基于 Wireshark 分析 IP 协议
|
Cloud Native Java 开发者
Spring Boot 4.0:构建云原生Java应用的前沿工具
Spring Boot 4.0:构建云原生Java应用的前沿工具
|
缓存 JavaScript 前端开发
Vue的服务端渲染:Vue的服务器端渲染(SSR)技术详解
【4月更文挑战第24天】Vue的服务器端渲染(SSR)能解决SPA的首屏加载和SEO问题。SSR预渲染HTML,提升首屏速度,改善SEO,提供更好的用户体验。Nuxt.js是Vue的SSR框架,简化开发流程。但SSR增加服务器压力,开发成本高,且需处理缓存问题。选择SSR需权衡优劣。本文旨在帮助理解Vue SSR原理、优势及实践方法。
|
消息中间件 监控 Kafka
【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
【4月更文挑战第12天】【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理

热门文章

最新文章