我在尝试从下线打印第二个字符串时遇到问题。
Severity: error
我期待的输出是错误。有人可以帮忙吗?我是regex的新手并尝试了很多选项,不知怎的,我在修完线上的所有其他东西并且卡在这里之后就到了这里。
答案 0 :(得分:0)
希望这有帮助
的Regex => ^Severity: \K\w+
答案 1 :(得分:0)
Severity:\s(?<log_severity>[^\s|\r|\n|\r\n]*)
以上正则表达式符合我的要求。实际上,我希望在logstash.conf文件中实现它以将日志输入到Kibana。完整的模式如下,
input {
file {
path => ["your input log file path"]
start_position => beginning
ignore_older => 0
sincedb_path => "NUL"
}
}
filter{
grok {
match => ["message","Severity:\s(?<log_severity>[^\s|\r|\n|\r\n]*)"]
#You can add more as per your requirement. It display in Kibana as
#Severity: Error
}
}
output {
elasticsearch {
hosts => "localhost:9200"
}
}
答案 2 :(得分:0)
您的过滤器过于复杂。由于您需要匹配单个单词,因此可以使用WORD
模式,如下所示,
filter {
grok {
match => { "message" => "Severity: %{WORD:Severity}" }
}
}
将输出,
{
"Severity": [
[
"error"
]
]
}
你可以在这里测试, https://grokdebug.herokuapp.com/