Splunk 搜索优化

优化搜索是一种让任务尽可能有效运行的策略。在本节中,我们将学习如何在 Splunk 平台上优化搜索

未配置时,搜索运行时间也会更长,从索引中检索到的数据量比需要的多,并且低效地消耗更多的内存和网络资源。在数百或数千次搜索中将这些问题相乘,结果会很慢或很慢。

我们可以遵循一系列基本概念来最大化我们的搜索。

  • 仅检索所需的数据

  • 移动尽可能少的数据

  • 尽可能多地并行化工作

  • 设置合适的时间窗口

我们正在使用以下方法来整合搜索优化概念。

  • 在初始搜索中尽可能过滤

  • 仅对所需数据执行连接和查找

  • 对尽可能少的事件进行评估

  • 在我们的搜索条件中尽可能晚地移动将数据带到搜索头的命令。

索引和查找

Splunk程序使用索引文件中的信息对运行扫描时可以从磁盘检索到的事件进行分类。从磁盘中检索的事件数量越少,任务进行得越快。

我们如何构建我们的任务会对从磁盘检索到的事件数量产生巨大影响。

当数据被索引时,数据将根据时间转换为事件

处理后的数据由几个文件组成:

  • 压缩形式的原始数据(rawdata

  • 指向原始数据的索引(索引文件,也称为tsidx 文件

  • 一些元数据文件

这些文件被写入磁盘并驻留在称为存储桶的按年龄组织的目录集中。

有效使用索引

限制从磁盘提取的数据的一种方法是将数据分区到不同的索引中。如果我们很少一次扫描多个数据类型,则将各种数据类型划分为单独的索引。将我们的搜索限制在特定索引。例如,将有关 Web 访问的数据存储在一个索引中,将防火墙数据存储在另一个索引中。对于稀疏数据,建议使用不同的索引,否则可能会在大量无关数据中丢失。

优化的搜索

我们可以通过将一些组件从第二次搜索移动到搜索过程中较早的位置来优化整个搜索。

在第一个管道过滤事件之前移动标准 A=25 并减少访问索引的次数。提取的事件数为 300,000。与原始搜索相比,这减少了 700,000。对 300,000 个事件而不是 100 万个事件执行查找。

在查找过滤事件后立即移动标准 L>100,进一步减少了 100,000 返回的事件数量。评估是针对 200,000 个事件而不是 100 万个事件执行的。

标准 E>50 取决于 eval 命令的结果,不能移动。结果与原始搜索相同。返回 50,000 个事件,但对资源的影响要小得多。

优化的快速提示

快速搜索的关键是将数据限制在需要从磁盘中提取的绝对最小值。在搜索中,尽可能早地过滤数据,以便在所需的最少数据量上进行处理。

限制磁盘中的数据

用于限制从磁盘检索的数据量的技术包括设置狭窄的时间范围、尽可能精确以及检索最小的所需事件。

缩小时间窗口

限制时间跨度是限制从磁盘中取出的数据的最有效方法之一。在我们的搜索中使用选择器时间范围或指定时间更改器来确定我们搜索所需的最小时间窗口。

如果我们只需要查看过去一小时的数据,请不要使用过去 24 小时默认时间范围。

如果我们必须使用较宽的时间范围,例如Last weekAll-time,则使用其他技术来限制从磁盘检索的数据量。

指定索引、来源或来源类型

为了优化我们的搜索,有必要了解我们的数据的结构。花点时间了解哪些索引包含我们的数据、我们的数据源和源类型。了解有关此信息的数据后,我们可以缩小搜索范围。

  1. 运行以下搜索。
    Search=*
    此搜索未优化,但它为我们提供了了解我们可以访问的数据的机会。

  2. Selected fields列表中,单击每个字段并查看 host、source 和 sourcetype 的值。

  3. Interesting fields列表中,点击index查看我们有权访问的索引的名称。

在我们的任务中,尽可能定义索引、来源或来源形式。当 Splunk 程序索引数据时,它会自动为每个案例添加一些字段。索引、源和源类型的字段将作为默认字段自动添加到每个事件。在我们的例子中,默认字段是 Splunk 程序在搜索时识别的索引字段。主机和源以及源类型字段描述事件起源的位置。

编写更好的搜索

本主题检查了导致搜索速度慢的一些原因,并包含帮助我们编写更有效搜索的指南。几个因素,包括: 会影响我们的搜索速度

  • 我们正在搜索的数据量

  • 我们的搜索是如何构建的

  • 并发搜索数

为了优化我们的搜索运行速度,最小化搜索每个组件所需的处理时间。

了解您的搜索类型

搜索优化指南取决于我们正在运行的搜索类型以及我们正在寻找的数据的特征。根据我们希望实现的目标,搜索分为两类。搜索旨在检索事件,或者搜索旨在生成汇总或组织数据的报告。

检索事件的搜索

原始事件搜索从 Splunk 数据库中检索事件,而不对检索到的事件进行任何进一步处理。从索引中提取事件时,要清楚我们想要想象的事件。这可以通过事件特有的关键字和字段值对来完成。

如果我们要检索的数据集中的事件频繁发生,则该搜索称为密集搜索。如果我们要检索的数据集中的事件很少,则该搜索称为稀疏搜索。针对大数据量运行的稀疏搜索比针对相同数据集的密集搜索花费更长的时间。

生成报告的搜索

报告生成搜索或转换搜索在从索引检索事件后对事件进行额外分析。该处理可以包括针对结果收集使用一个或多个统计函数的过滤、转换和其他操作。由于此处理发生在内存中,我们检索事件的限制和精确度越高,搜索运行的速度就越快。

调整搜索的提示

在大多数情况下,由于查询的复杂性,我们的搜索从索引中检索事件的速度很慢。例如,如果我们的搜索包含非常大的 OR 列表、复杂的子搜索(分解为 OR 列表)和短语搜索类型,则处理时间会更长。本节探讨微调搜索以使其更成功的技巧。

使用 BY 子句对一组具有高基数、大量不常见或特殊值的字段值进行统计需要大量内存。一种可能的解决方案是降低与命令 tstats 一起使用的块大小设置的值。此外,减少 BY 子句必须处理的不同值的数量也是有益的。

将搜索限制为特定索引

如果我们一次很少搜索超过一种数据类型,请将不同的数据类型划分为单独的索引。然后将我们的搜索限制为相同的索引存储 Web 访问数据,例如,在一个索引和另一个防火墙中。这建议用于稀疏数据,否则可能会隐藏在大量不相关的数据中。


上一主题 Splunk SQL 到 SPL 下一主题 Splunk - 转换命令
  • 使用社交账号登录,本站支持
全部评论(0)