对大多数人来说,这可能是一个愚蠢的问题。
我对logstash grok很陌生。我刚刚通过grok调试器成功运行了我的grok模式。
以下是我的grok模式中的severity_code值:
+LRGPSEVRI
+LRGPSEVRE
SQDC061I
我想获取每个值的最后一个字符,即'I'和'E'。由于字符串的值的长度不同,因此我无法执行logstash突变,因为到目前为止我所看到的全部都必须指定长度。
感谢帮助。谢谢。
如果我理解正确,可以尝试
grok {
match => ["severity_code", "(?<Severity>\B([EI])\b)"]
}
这正在使用正则表达式,并在单词障碍\b
的前面寻找E或I并以非单词屏障\B
(即字母)开头。如果严重性在字符串的末尾,则应使用末尾锚点$
代替:(?<Severity>\B([EI])$)