如何使用 logstash 来理解这个输入?

How to grok this input with logstash?

我正在尝试使用 logstash 查找一些行,所以首先我创建了两个模式 如下所示:

AZ_LIST [1-9a-zA-Z,]+
AZ_STRING [a-zA-Z._-]+

然后我配置了 logstash 来理解这个输入:

security=0 system=23 CPU=this.adresse_false Pvm=0,0,0,0,0,0,0,0 Vlan2=AZERT,566,2184,798,3312  

我的过滤器是:

filter {
    grok {
        patterns_dir => "/patterns"

        match => [
            "message" , "security=%{NUMBER:security} system=%{NUMBER:system} CPU=%{AZ_STRING:CPU} Pvm=%{AZ_LIST:Pvm} Vlan2=%{AZ_LIST:Vlan2}"
         ]
        tag_on_failure => [ "failure_grok_exemple" ]
        break_on_match => false  
    }
}

但是这些都不行

您的模式有误。您的 AZ_LIST 不包括 0,但您的日志有 0 EX:Pvm=0,0,0,0,0,0,0,0

这是我的配置,我可以成功解析你的日志。

filter {
        grok {
                patterns_dir => "./patterns/"
                match => [
                "message" , "security=%{NUMBER:security} system=%{NUMBER:system} CPU=%{AZ_STRING:CPU} Pvm=%{AZ_LIST:Pvm} Vlan2=%{AZ_LIST:Vlan2}"
                ]
        }
}

模式:

AZ_LIST [0-9a-zA-Z,]+
AZ_STRING [a-zA-Z._-]+