Logstash 将字段与数字进行比较

Logstash compare a field to a number

我正在寻找一种方法来将 Logstash 字段与条件语句中的数字进行比较,但在文档中找不到任何内容。

例如这样的事情:

if [myfiels] => 1{
           mutate {
                   add_field => ["fild", "1"]
           }

if [myfiels] >= 1 and [myfiels] <= 3 {
               mutate {
                       add_field => ["fild", "2"]
               }

谢谢。

您首先需要转换列类型。

input {
   stdin{}
}

filter {
    grok {
        match => ["message","%{NUMBER:num}" ]
    }
    mutate {
        convert => { "num" => "integer" }
    }
    if [num] >= 5 {
        mutate { 
            add_field => { "xyz" => "123" }
        }
    }
}

output {
    stdout { codec => rubydebug }
}