如何在logstash中创建条件字段?

如何在logstash中创建条件字段?,logstash,Logstash,我有一个名为“Priority”的字段,它的整数值为1到 10这里1是最低的,10是最高的。如何显示字符串 值,而不是数字,以使此字段更易于理解。因此,新字段应包含3个值,即 low ---> if priority lies in 1 to 3 Medium---> if priority lies in 4-7 high---->if priority lies in 8-10 首先,您需要确保优先级值的类型为int。之后,您可以使用将值更改为字符串 配置示例: inpu

我有一个名为“Priority”的字段,它的整数值为1到 10这里1是最低的,10是最高的。如何显示字符串 值,而不是数字,以使此字段更易于理解。因此,新字段应包含3个值,即

low ---> if priority lies in 1 to 3
Medium---> if priority lies in 4-7
high---->if priority lies in 8-10

首先,您需要确保优先级值的类型为
int
。之后,您可以使用将值更改为字符串

配置示例:

input { stdin {} }
filter {
    grok { match => { "message" => [" %{NUMBER:priority:int}" ] } }
    if [priority] < 4 {
        mutate { replace => { "priority" => "low" } } 
    } else if [priority] < 8 {
        mutate { replace => { "priority" => "medium" } }
    } else {
        mutate { replace => { "priority" => "high" } }
    }
}
output {stdout { codec => rubydebug }}

这意味着,无论从何处获取优先级字段,都需要注意它是否包含int。否则,您可以通过比较字符串值来实现这一点。

我建议您保留两个字段:数字和字符串(漂亮)版本。这样,您可以基于数字运行高效查询,并在图表上显示字符串等

更多信息

%{NUMBER:priority:int}