10分钟掌握Kibana搜索过滤:时间范围与地理过滤实战指南

10分钟掌握Kibana搜索过滤:时间范围与地理过滤实战指南

【免费下载链接】kibana Your window into the Elastic Stack 【免费下载链接】kibana 项目地址: https://gitcode.com/GitHub_Trending/ki/kibana

你是否还在为海量日志数据筛选发愁?是否因找不到特定区域异常而抓狂?本文将通过时间范围与地理过滤两大核心功能,帮你10分钟内从数据海洋中精准定位关键信息。读完你将掌握:

  • 3种时间范围筛选技巧(相对时间/绝对时间/快捷筛选)
  • 2种地理过滤方法(区域选择/坐标圈选)
  • 多条件组合过滤的高级应用

时间范围过滤:从秒级到年级的数据切片

Kibana的时间范围过滤功能基于TimefilterContract实现,通过src/plugins/unified_search/public/actions/apply_filter_action.ts中的createFilterAction函数处理时间维度筛选。

相对时间筛选(最常用)

在Discover页面顶部的时间选择器中,点击时间范围下拉框选择"最近15分钟"、"最近1小时"等预设选项,系统会自动生成相对时间过滤器:

{
  "range": {
    "@timestamp": {
      "gte": "now-15m",
      "lte": "now",
      "format": "epoch_millis"
    }
  }
}

此功能通过src/plugins/unified_search/public/search_bar/create_search_bar.tsx中的createSearchBar函数初始化时间选择组件。

绝对时间筛选

如需查询特定时间段数据(如2023年双十一活动期间),可选择"绝对"模式并设置起止时间:

  1. 点击时间选择器中的日历图标
  2. 在弹出的日期选择面板中设置开始日期(2023-11-11 00:00)和结束日期(2023-11-11 23:59)
  3. 系统自动生成包含毫秒级时间戳的过滤器

快捷时间筛选

通过DataViewEditorServicesrc/plugins/data_view_editor/public/data_view_editor_service.ts)提供的时间字段配置,可将常用时间范围保存为快捷筛选条件:

  1. 进入数据视图编辑页面
  2. 在"时间字段"设置中选择@timestamp
  3. 点击"添加快捷筛选"并设置名称和时间范围

地理过滤:从全球到街道的空间定位

地理过滤功能通过Maps插件实现,核心代码位于x-pack/plugins/maps/public/embeddable/map_embeddable.tsxMapEmbeddable类中,支持两种主要过滤方式。

区域选择过滤

  1. 在地图界面点击右上角"添加过滤器"按钮
  2. 选择"地理区域"选项,在地图上框选目标区域(如北京市)
  3. 系统自动生成地理边界过滤器:
{
  "geo_bounding_box": {
    "location": {
      "top_left": {
        "lat": 40.0902,
        "lon": 115.7588
      },
      "bottom_right": {
        "lat": 39.7429,
        "lon": 116.6868
      }
    }
  }
}

坐标圈选过滤

对于圆形区域(如某工厂3公里范围):

  1. 选择"地理半径"工具
  2. 在地图上点击中心点并拖动调整半径
  3. 生成基于距离的过滤器:
{
  "geo_distance": {
    "distance": "3km",
    "location": {
      "lat": 31.2304,
      "lon": 121.4737
    }
  }
}

多条件组合过滤:构建精准数据筛选器

通过FilterManagersrc/plugins/unified_search/public/actions/apply_filter_action.ts)可实现时间+地理+关键词的多维度组合过滤:

  1. 先设置时间范围为"最近24小时"
  2. 添加地理过滤条件"上海市"
  3. 在搜索框输入关键词"error"
  4. 系统自动组合生成复合过滤器:
[
  {
    "range": { "@timestamp": { "gte": "now-24h", "lte": "now" } }
  },
  {
    "geo_bounding_box": { "location": { "top_left": {...}, "bottom_right": {...} } }
  },
  {
    "match": { "message": "error" }
  }
]

实战案例:电商平台异常订单定位

某电商平台需排查2023-11-11 08:00-10:00期间广东省的异常订单:

  1. 设置绝对时间范围为2023-11-11 08:00至10:00
  2. 在地图上框选广东省区域
  3. 添加过滤器status:error AND amount:>1000
  4. 结果立即缩小至符合条件的12条异常订单

总结与进阶

本文介绍的时间范围过滤(基于TimefilterContract)和地理过滤(基于MapEmbeddable)功能,通过unified_search插件的FilterManager实现协同工作。进阶学习可参考:

掌握这些过滤技巧后,你可以轻松应对90%的数据筛选场景。下一篇我们将深入探讨Kibana的聚合分析功能,敬请期待!

收藏本文,下次遇到数据筛选难题时即可快速查阅。如有疑问,欢迎在评论区留言讨论。

【免费下载链接】kibana Your window into the Elastic Stack 【免费下载链接】kibana 项目地址: https://gitcode.com/GitHub_Trending/ki/kibana

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值