<pre name="code" class="html">在和 codec/multiline 搭配使用的时候,需要注意一个问题,grok 正则和普通正则一样,默认是不支持匹配回车换行的。就像你需要 =~ //m 一样也需要单独指定,具体写法是在表达式开始位置加 (?m) 标记。如下所示:
match => {
"message" => "(?m)\s+(?<request_time>\d+(?:\.\d+)?)\s+"
}
input {
file {
type => "zj_mysql"
path => ["/data01/applog_backup/zjzc_log/zj-mysql01-slowlog.*"]
codec => multiline {
pattern => "^\s+#\s+User@Host:"
negate => true
what => "previous"
}
}
file {
type => "wj_my
(?m) 标记
最新推荐文章于 2022-12-28 21:37:46 发布
在 Logstash 中使用 grok 解析包含回车换行的日志时,需要添加 (?m) 标记来支持多行匹配。本文通过示例展示了如何配置 file 和 codec/multiline,以及如何使用 grok 进行正则匹配,并在遇到特定模式(如 'SELECT SLEEP')时进行过滤和丢弃操作。最后,解析结果将通过 Redis 发送到不同的 key 中。
摘要由CSDN通过智能技术生成