logtash 解析slow.log

该配置文件描述了一个日志处理流程,从MySQL慢查询日志开始,通过Logstash进行过滤和解析,丢弃特定的SELECT SLEEP事件,然后将处理后的日志数据发送到Kafka主题`mysql-slowlog`。这个过程涉及到了日志分析、数据过滤、时间戳处理和日志输出到Kafka的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

input {
  #stdin {
  file {
    type => "mysql-slow"
    path => "/data/mysqldata/log/slow.log"
    start_position => "end"
    codec => multiline {
      pattern => "# Time:"
      negate => true
      what => previous
          auto_flush_interval => 5
    }
  }
}

filter {
  # drop sleep events
  grok {
    match => { "message" => "SELECT SLEEP" }
    add_tag => [ "sleep_drop" ]
    tag_on_failure => [] # prevent default _grokparsefailure tag on real records
  }
  if "sleep_drop" in [tags] {
    drop {}
  }
  grok {
match => { "message" => "(?m)^#\s+Time:\s+%{GREEDYDATA:Time}#\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+@\s+(?:(?<clienthost>\S*) )?\[(?:%{IPV4:clientip})?\]\s+Id:\s+%{NUMBER:row_id:int}.*#\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*(?:use %{DATA:database};\s*)?SET\s+timestamp=%{NUMBER:timestamp};\s*(?<sql>(?<action>\w+)\b.*;)\s*(?:\n#\s+Time)?.*$" }

match => {"user" => "\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+"}

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


}

output {
  kafka {
    bootstrap_servers => "ip:端口,ip:端口,ip:端口"
    codec => json
    topic_id => "mysql-slowlog"
    }

  stdout { codec => rubydebug }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LOST_9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值