Splunk 计算字段

 

很多时候,我们需要对 Splunk 事件中已经可用的字段进行一些计算。我们还希望将这些计算的结果存储为一个新字段,以便稍后通过各种搜索进行引用。这是通过在 Splunk 搜索中使用计算字段的概念实现的。

一个最简单的例子是显示工作日的前三个字符而不是完整的日期名称。我们需要应用某些 Splunk 函数来实现对字段的这种操作,并将新结果存储在新的字段名称下。

 

示例

Web_application 日志文件有两个名为 bytes 和 date_wday 的字段。字节字段中的值是字节数。我们希望将此值显示为 GB。这将需要将字段除以 1024 以获得 GB 值。我们需要将此计算应用于字节字段。

同样,date_wday 显示星期的完整名称。但是我们只需要显示前三个字符。

这两个字段中的现有值如下图所示:

Calculated Fields1

 

使用 eval 函数

要创建计算字段,我们使用 eval 函数。此函数将计算结果存储在新字段中。我们将应用以下两个计算:

# divide the bytes with 1024 and store it as a field named byte_in_GB
Eval byte_in_GB = (bytes/1024)
# Extract the first 3 characters of the name of the day.
Eval short_day = substr(date_wday,1,3)

 

添加新字段

我们将上面创建的新字段添加到我们作为搜索结果的一部分显示的字段列表中。为此,我们选择 所有字段选项并勾选这些新字段名称的复选标记,如下图所示:

Calculated Fields2

 

显示计算字段

选择上面的字段后,我们可以在搜索结果中看到计算出来的字段,如下图。搜索查询显示计算字段,如下所示:

Calculated Fields3

 标签用于为特定字段和值组合分配名称。这些字段可以是事件类型、主机、来源或来源类型等。您还可以使用标签将一组字段值组合在一起,以便您可以使用一个命令搜索它们。例如,您可以将星期一生成的所有不同文件标记为名为 m ...