
Logstash添加字段简介
Logstash添加字段是由mutate过滤器启用的功能,它支持在Logstash中修改、重命名、添加和删除字段的操作。添加字段过滤器接受哈希类型的值,默认情况下,当没有指定时,包含{}的值。
在这篇文章中,我们将了解如何在Logstash的事件中添加新的字段,并通过研究它的子主题,包括什么是Logstash添加字段,如何进行Logstash添加字段的输出,Logstash添加字段的配置,Logstash添加字段的例子和有关结论,来深入了解它。
什么是Logstash添加字段?
Logstash add_field是过滤器插件可用的配置选项,它被所有可用于过滤器部分的插件所支持,因为它是标准选项之一。这个配置选项使我们能够根据要求向事件添加新的字段,它可以包含一个哈希值。与此同时,我们还可以设置%sample字符串,其中样本可以是事件配置值中的任何值,这样提交的文件就可以包含各自事件的部分值。
当没有指定add_field配置选项的值时,考虑的默认值是括在大括号内的{}空白值。当过滤器成功工作时,我们将在其中使用一个mutate插件,我们可以为特定的事件添加包含任何任意值和名称的字段。可以分配给字段的名称可以通过使用%{字段名称}在其中包含事件的任何部分,同时,它也可以有任何动态的名称设置到其各自的字段。
与此同时,我们还可以使用mutate过滤器支持的替换配置选项,这将有助于改变字段的现有值,甚至在事件中不存在指定字段的情况下添加一个新字段。对于这个配置选项,我们也可以给字段的值,可以是一个简单的字符串值,或者我们也可以使用%{任何特定部分}字符串值将事件的其他部分设置为字段的值。我们也将看到一个这样的例子。
Logstash添加字段的输出是如何工作的?
Logstash添加字段配置的输出是为Logstash中的特定事件创建指定的字段,其中包含提到的值。这些字段可以进一步考虑执行各种操作,这取决于该字段是否存在或具有特定的值。字段的值也可以被额外改变。配置字段的输出部分应该包含显示字段及其值的代码。通过这种方式,我们可以检查字段的创建情况。
Logstash添加字段配置
Logstash添加字段是一个配置选项,是Logstash中所有过滤器插件所支持的标准选项之一。一个名为mutate的过滤器插件添加新字段,并重命名、改变或删除现有字段。add_field是你应该使用的配置的设置名称,它接受哈希格式的值作为输入值。这个配置选项规范完全是可选的,不是必须的配置。我们应该指定字段的名称,更进一步,我们需要通过使用=>符号将值传递给它,更进一步,值应该被括在大括号之间。使用这个配置选项,我们也可以在事件中添加多个字段。
Logstash添加字段的例子
例子 #1
让我们考虑一个例子,我们将添加一个名为educba的字段,其附加值包含事件的一部分,当在主机名称为localhost的环境下运行时,其值为 "这是一个样本片段,显示此附加信息为字段localhost的值"。该代码段将如下所示。
filter {
mutate {
add_field => { "educba%{sample_educba_field}" => "It is a sample snippet that shows this appended message as value to field %{name_of_host}" }
}
}
上述代码片断的输出如下图所示

例子 #2
现在,我们将通过使用相同的add_field配置在事件中添加多个字段,而且只添加一次。我们将添加名为educba的字段和一些附加的名称,以及一个名为one_more_field_to_add的字段,该字段将包含一个固定值和其他字段的操作附加值,该字段在运行时附加有主机名称。该代码片段将如下所示
filter {
mutate {
add_field => {
"educba%{sample_educba_field}" => "It is a sample snippet that shows this appended message as value to field %{name_of_host}"
"one_more_field_to_add" => "any random value"
}
}
}
上述代码片断的输出如下图所示

例子 #3
使用替换配置选项,我们可以去修改字段的值,如果它已经存在,或者我们甚至可以添加另一个字段到事件中,如果它不存在,遵循相同的格式。考虑这样的情况,我们有一个名为educba的样本字段,我们将使用替换来创建它,因为它在Logstash中不存在,并将使用下面的代码片断为它赋值 "localhost: appended information to attach"。
filter {
mutate {
replace => { "educba_sample_field" => "%{name_of_host}: appended information to attach" }
}
上述代码片断的输出如下所示

总结
Logstash添加字段是配置选项设置,有助于在Logstash事件管道中添加一个或多个字段。