不为失败找理由,要为成功找方法。

logstash 处理MySQL慢日志后,所有内容都在一个message字段不拆分

Logstash | 作者 qiqisa | 发布于2020年05月29日 | | 阅读数:3330

logstash配置为
input {
file {
type => "mysql-slow"
path => "/tmp/slows.log"
codec => multiline {
pattern => "^# Time:"
negate => true
what => "previous"
}
}
}
filter {
if [ type ] == "mysql-slow" {
grok {
match => { "message" => "SELECT SLEEP" }
add_tag => [ "sleep_drop" ]
}
if "sleep_drop" in [tags] {
drop {}
}
grok {
"message" => "(?m)^#\s+Time\s?.*\s+#\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+@\s+(?:(?<clienthost>\S*) )?\[(?:%{IPV4:clientip})?\]\s+Id:\s+%{NUMBER:row_id:int}\n#\s+Query_time:\s+%{NUMBER:query_time:float}\s+Lock_time:\s+%{NUMBER:lock_time:float}\s+Rows_sent:\s+%{NUMBER:rows_sent:int}\s+Rows_examined:\s+%{NUMBER:rows_examined:int}\n\s*(?:use %{DATA:database};\s*\n)?SET\s+timestamp=%{NUMBER:timestamp};\n\s*(?<sql>(?<action>\w+)([\w.*\W.*])*;)\s*$"
}
}
}
最后的数据展示出来是这样的,不进行分割字段

ssss.png

请问怎么解决

[尊重社区原创,转载请保留或注明出处]
本文地址:http://searchkit.cn/article/13822


7 个评论

为什么搞了两个gork , 你第一个gork的作用是什么
丢弃select sleep语句
是不是第二个grok写法有问题? 按照第一个grok 用match试试?
这个grok,我在其他机器上测试可以正常解析,在这台机器上就不行。我感到很奇怪
Dm

Dm 回复 qiqisa

两个机器环境有什么不同吗,查查这个机器上的patterns文件
qiqisa

qiqisa 回复 Dm

input 的path支持通配符正则吗
Dm

Dm 回复 qiqisa

支持

要回复文章请先登录注册