前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Logstash 处理 Mysql Slow Log4

Logstash 处理 Mysql Slow Log4

作者头像
franket
发布2022-01-20 11:32:16
发布2022-01-20 11:32:16
28200
代码可运行
举报
文章被收录于专栏:技术杂记技术杂记
运行总次数:0
代码可运行

logstash的流水线模型是 intpu|[filter]|output,其中 filter 部分为可选,但是处理mysql这种复杂的日志,没有filter,还真不行

Item

Comment

input {

框定输入源的定义范围

stdin {

定义了一个输入源,使用 stdin 插件从标准输入读取数据,也就是终端读入(生产中不会这样配置,一般用来进行交互调试)

codec => multiline {

使用 multiline 插件来进行处理,因为mysql的日志是多行的

pattern => "^# User@Host:"

匹配以 # User@Host: 顶头的行

negate => true

对上面的匹配进行反转(就是实际去匹配不以 # User@Host: 顶头的行)

what => previous

把找到的行用于追加,追加到之前的日志条目中,就是认为这一行仍然属于前一个事件的内容

合起来的意思就是 : 所有不以 # User@Host: 顶头的条目都追加到以 # User@Host: 顶头的条目中,作为同一个事件看待


filter

代码语言:javascript
代码运行次数:0
运行
复制
filter {
  grok {
	match => [ "message", "(?m)^#\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+@\s+%{USER:clienthost}\s+\[(?:%{IP:clientip})?\]\s+Id:\s+%{NUMBER:id:int}\n#\s+Schema:\s+%{USER:schema}\s+Last_errno:\s+%{NUMBER:lasterrorno:int}\s+Killed:\s+%{NUMBER:killedno: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}\s+Rows_affected:\s+%{NUMBER:rows_affected:int}\n#\s+Bytes_sent:\s+%{NUMBER:bytes_sent:int}\n\s*(?:use\s+%{USER:usedatabase};\s*\n)?SET\s+timestamp=%{NUMBER:timestamp};\n\s*(?<query>(?<action>\w+)\b.*)\s*(?:\n#\s+Time)?.*$"]

  } 

  date {
    match => [ "timestamp", "UNIX" ]
    #remove_field => [ "timestamp" ]
  }
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • filter
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档