gpt4 book ai didi

Logstash 删除事件过滤器

转载 作者:行者123 更新时间:2023-12-02 21:25:45 24 4
gpt4 key购买 nike

在我的日志文件中,有如下条目:

2014-06-25 12:36:18,176 [10] ((null)) INFO  [s=(null)] [u=(null)] Hello from Serilog, running as "David"! [Program] 
2014-06-25 12:36:18,207 [10] ((null)) WARN [s=(null)] [u=(null)] =======MyOwnLogger====== Hello from log4net, running as David! [MyOwnLogger]
2014-06-25 12:36:18,209 [10] ((null)) ERROR [s=(null)] [u=(null)] =======MyOwnLogger====== Hello from log4net, running as David! [MyOwnLogger]

日志级别分别为 INFO、WARN 和 ERROR。

我想要做的就是仅将那些 ERROR 级别的条目输出到 Elasticsearch。这是我的 Logstash 配置文件:

input {
file {
path => "Somepath/*.log"
}
}

# This filter doesn't work
filter {
if [loglevel] != "error" {
drop { }
}
}

output {
elasticsearch { host => localhost }
stdout {}
}

实际上,目前没有任何内容发送到 Elasticsearch。我知道它与过滤器有关,因为如果它不存在,所有条目都会发送到 Elastisearch。

最佳答案

试试这个 grok 过滤器。它对我来说适用于你的日志

filter {
grok {
match => ["message","%{TIMESTAMP_ISO8601:logtime} \[%{NUMBER}\] \(\(%{WORD}\)\) %{WORD:loglevel} %{GREEDYDATA:other}"]
}

if [loglevel]!= "ERROR" {
drop {}
}
}

首先,您需要了解日志级别,然后您可以使用该字段来执行 if else 条件并决定是否删除。

关于Logstash 删除事件过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com