2024年3月26日发(作者:)

logstash on_failure用法

Logstash的`on_failure`用法是指在Logstash的配置文件中,当一个插件或

过滤器失败时采取的行动。当配置文件中的某个部分失败时,Logstash会停止

当前事件的处理,并按照`on_failure`指定的方式处理该事件。

`on_failure`可以接受以下几种处理方式:

1. `drop`: 丢弃当前事件,不将其传递给其他插件或过滤器。

2. `tag_on_failure`: 为当前事件添加一个标签,以便在后续的处理过程中进行

识别。可以通过在配置文件中使用正则表达式来指定要添加的标签。

3. `retry`: 重新处理当前事件。这可能会涉及到将事件重新发送到输入插件或

过滤器进行处理。在这种情况下,需要指定一个`retry_count`参数,以确定重

新处理事件的次数。如果达到最大重试次数后仍然失败,则可以使用其他处理

方式(如丢弃事件或添加标签)。

4. `delegate`: 将当前事件委托给另一个Logstash实例进行处理。这可以通过指

定一个输出插件来实现。在这种情况下,需要确保目标Logstash实例可以正常

接收和处理事件。

下面是一个示例配置文件,展示了如何使用`on_failure`处理失败的事件:

```

input {

stdin {}

}

filter {

grok {

match => { "message" => "%{COMBINEDAPACHELOG}" }

}

}

output {

stdout { codec => rubydebug }

1

if "_grokparsefailure" in [tags] {

# 当过滤器失败时,将事件委托给另一个Logstash实例进行处理

delegate {

target => "another-logstash-instance"

}

} else {

# 正常输出事件

stdout { codec => rubydebug }

}

}

```

在这个示例中,如果过滤器(`grok`插件)失败,则会将事件委托给名为

"another-logstash-instance"的另一个Logstash实例进行处理。如果过滤器成

功,则正常输出事件。

2