在本节中,我们将向用户介绍 SPL(搜索处理语言)格式和各种 Splunk 搜索命令样式。我们还打算帮助您确定哪种形式的命令更符合您的问题。它将帮助您了解 SPL 甚至它的数据类型和用途。
搜索处理语言( SPL) 有多种搜索命令可供选择,可帮助用户执行各种不同的工作。Splunk 平台允许其用户使用扩展的处理语言。此功能使用户能够减少数据集中的大量数据并将其转换为重要且可用于构建报告的小信息片段。
它不是SQL和Splunk搜索处理语言 (SPL) 之间的完美映射,但如果您熟悉 SQL,这种快速比较可能有助于快速开始使用搜索命令。
Splunk 平台不会在标准数据库中处理任何数据。相反,它将具有隐式时间维度的数据存储在分布式、非关系、半结构化数据库中。然而,在数据库世界中,许多概念都有类似物。
SQL 旨在搜索由列组成的关系数据库表。SPL 旨在扫描由字段组成的事件。您经常在 SQL 中看到使用“mytable”和“mycolumn”的示例。您将在 SPL 中看到与“字段”相关的示例。在这些示例中,字段“源”用作“表”代理。“源”是文件、流或 Splunk 中其他输入的名称,特定的数据来自该输入。
搜索处理语言中的搜索困难
仅需要 FIELDS 命令过滤掉 Splunk 中的列,因为用户界面提供了更方便的过滤方法。FIELDS 命令用于 SPL 示例中的并行性。
我们不需要在 SPL 的布尔搜索中使用 AND 运算符,因为 AND 隐含在 between 中。但是,当您使用 AND 或 OR 运算符时,它们必须以大写形式指定。
无需以大写形式定义 SPL 命令。这些命令在这些 SPL 示例中以大写形式指定,以便于识别和清晰。
布尔
<bool> 参数的值表示布尔数据的形式。说明了“真实”或“假”文档。在命令中,接受其他布尔值组合。例如,您也可以使用“t”、“T”、“TRUE”或第一个“1”来表示“真”。您可以使用“f”、“F”、“FALSE”或数字零“0”来表示“假”。
整数
参数 <int> 的值表示整数数据的类型。
数
<num> 的参数值表示一个数字的类型。
漂浮
<float> 参数的值表示浮点数据的类型。
跨度
span=(<span-length> | <log-span>)
说明:设置每个 bin 的大小。
示例:跨度=2d
示例:跨度=5m
示例:跨度=10
附带条款
by <field-list>
描述:分组依据的字段。
例如端口,按地址
搜索处理语言有多种搜索命令可供选择,可帮助用户执行各种不同的工作。Splunk 平台提供了一种扩展的处理语言,允许用户从数据集中减少大量数据并将其转换为重要的小信息片段。
Splunk 平台中的“信息管道”是一种 Splunk 搜索结构,其中包含一组由键盘中的竖线字符分隔的命令。
该任务由通过管道传输到另一个命令的命令组成,这有助于将结果减少和形成用户需要的东西。
在管道的开始,对 Splunk 的搜索从搜索词开始。关键字、布尔表达式、短语、键/值对等是确定我们要从数据库中检索的索引中的哪些事件的搜索词。
然后将收集的事件作为输入传递给 quest/search 命令,该命令使用 Splunk 平台中的管道字符进行更好的搜索。它将进一步转换为我们需要的结果。搜索命令是在搜索管道的开头推断出来的,即使我们没有直接声明它。因此,如果我们立即键入:host="localhost",它将完成搜索host="localhost。"
在 Splunk 平台中,流经搜索管道的结果和事件作为一系列字段存在,这些字段源自平台中存在的数据。这些字段包含适用于特定数据事件的值字符串,可用于在搜索命令旁边过滤数据。在搜索时,它可以来自索引。此外,它可以从各种来源收集,例如事件类型、正则表达式提取、标签等。对于给定的事件,字段名称可能存在或不存在,如果存在,它可能包括单个或多个字符串值。
一些重要的字段包括索引、时间、主机、源和原始。
Null:给定结果或事件中不存在的字段。对于此字段,同一任务中的特定事件或结果可以具有值。
空字段:空字段是由空值组成的字段。它被称为空字符串。
空值:空字符串值,或“。这也可以表示为长度为零的字符串。
多值字段:值大于 1 的区域。所有非空字段都包含一个有序的字符串列表。典型的情况是,这是一个单值列表。如果列表包含多个条目,则它是一个多值字段。
如果需要对整个字符串进行评估,则使用引号。Splunk 需要在字段值中包含空格、逗号、竖线、引号或方括号的引号。引号之间必须有区别。
Splunk 平台中的转义字符 (\) 用于在搜索字符串时从评估引号、管道及其本身中转义。
在我们编写搜索处理语言时,搜索中有几个组件,用于格式化或过滤 Splunk 平台中的数据。SPL 中包含的任务具有各种组件的组合。以下是组件列表。
为了过滤掉我们想要的结果,搜索词有一些特定的关键字或句子。在 Splunk 中,搜索词可以是我们感兴趣的任何内容,就像它们可以是我们想要搜索的字段的名称一样,也可以是我们感兴趣的任何索引。
当我们想对结果进行一些操作时,例如更改、格式化、重命名、排序等,那么我们使用命令。我们可能会使用多种搜索命令,博客的其余部分将介绍更多。
搜索功能与命令一起使用,以确定在特定领域中要执行哪种计算。通常,函数与统计指令一起使用,例如统计信息。
子句帮助对字段进行分组或重命名,以帮助组织文档中的结果。一些常见的子句是“BY”子句,它按某个字段对结果进行排序,“AS”子句用于重命名它,“WHERE”子句用于对结果进行排序或过滤。
过滤结果中使用的一些有用的子句包括“AND”和“OR”子句,它们通常用于搜索词以确定要包含的词。如果在搜索开始时没有提供子句,则将自动使用“AND”子句。
Splunk 中的参数是可选参数或必要参数。允许命令运行所需的参数,如果未给出,通常会在 Splunk 中返回错误。参数包含 Splunk 中字段的名称、含义或布尔含义。如果在任何情况下未指定参数的任何值,则命令参数包含默认值。
在 Splunk 平台中,当一个搜索完成后,该 quest 搜索其搜索,搜索完成后,将结果作为参数值发送给父命令,则这种搜索称为子搜索. 它写在方括号中,在命令在 Splunk 中运行之前先运行。当我们需要从数据库中过滤掉更多数据,或者我们需要结合两个搜索时,使用子搜索。
union [search index=c | eval type = "poo"] [search index=d | eval mytype = "car"]