ELK-Logstash MySQL 慢查询日志分析

#mysql_slow.conf

input {

  file {

    type => "mysql-slow"

    path => "/var/log/mysql_slow_log.log"

 

  }

}

 

filter {

if [type] == "mysql-slow" {

#grep {

# ignore ‘# Time:‘ as we use the SET timestamp to get the time. grep is actually

# on the deprecation cycle so need to figure out an alternative to this

#    match => {

#        message => [

#            "# Time: "

#        ]

#    }

#    negate => true

#}

 

multiline {

    # anything not starting with # or SET is the actual query being run so roll it up with

    # the previous entries

    pattern => "^#|^SET"

    negate => true

    what => "previous"

}

 

grok {

    match => {

     message => [

       "# [email protected]: %{WORD:user}\[%{WORD}\] @ (%{HOST:client_hostname}|) \[(%{IP:client_ip}|)\]",

       "# Thread_id: %{NUMBER:thread_id:int} \s*Schema: (%{WORD:schema}| ) \s*Last_errno: \

     %{NUMBER:last_errno:int} \s*Killed: %{NUMBER:killed:int}",

       "# Query_time: %{NUMBER:query_time:float} \s*Lock_time: %{NUMBER:lock_time:float} \

     \s*Rows_sent: %{NUMBER:rows_sent:int} \s*Rows_examined: %{NUMBER:rows_examined:int}",

       "# Bytes_sent: %{NUMBER:bytes_sent:int}",

       "(?m)SET timestamp=%{NUMBER:timestamp};%{GREEDYDATA:mysql_query}"

        ]

    }

}

mutate {

         gsub => [ "mysql_query""\n"" " ]

         gsub => [ "mysql_query""  "" " ]

         add_tag => "mutated_mysql_query"

}

multiline {

    pattern => "(# User|# Thread|# Query|# Time|# Bytes)"

    negate => false

    what => "next"

}

date {

    match => [ "timestamp","UNIX" ]

}

mutate {

    remove_field => [ "timestamp" ]

}

}

}

 

output {

    stdout { codec => rubydebug }

    elasticsearch {

        hosts => "192.168.0.100:9200"

        index => "mysql_slow_log-%{+YYYY.MM}"

    }

}

Kibana 图形展示

时间: 2024-10-10 07:28:20

ELK-Logstash MySQL 慢查询日志分析的相关文章

记一次mysql慢查询日志分析

MySQL慢查询日志分析 分析工具mysqlsla的安装以及使用,mysqlsla是hackmysql.com推出的一款MySQL的日志分析工具,功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等. 在CentOS下安装mysqlsla yum install perl-DBI perl-DBD-MySQL perl-devel -y #安装依赖包 wget ftp://ftp.tw.freebsd.org/pub/distfiles/mysqlsla-

mysql慢查询日志分析工具mysqlsla

一.介绍    mysqlsla是一个分析mysql慢日志的工具,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比.执行时间.等待销的时间等. 公司的数据库有很多慢查询日志,导致的系统的负载很高,而mysql慢查询日志文件内容格式不太好看,经推荐使用mysqlsla:使用方便,操作简单. 二.安装mysqlsla 系统环境 CentOS release 6.6 (Final) 2.6.32-504.el6.x86_64 官网已经不能下载,所需要的文件已在百度云

mysql 慢查询日志分析

mysql慢查询: 慢查询相关的变量 slow_query_log:该参数控制着慢查询的状态, 1表示开启状态 ,0 表示关闭状态 slow_query_log_file:慢查询日志路径 long_query_time:最大查询阀值,查询的时间超过这个值就视为慢查询并且将其记录到慢查询日志中,慢查询日志路径 通过slow_query_log_file 这个变量设置 log_queries_not_using_indexes:没有使用到索引的查询语句是否记录到慢查询日志中. log_slow_sl

mysql慢查询日志分析工具 mysqlsla(转)

mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览慢查询日志做为一项日常工作,直接阅读mysql生成的慢查询日志就有可能比较低效了. 除了操作系统命令直接查看slowlog外,mysql自己也提供了一个阅读slowlog的命令行工具:mysqldumpslow,该命令行提供了一定的分析汇总功能,可以将多个类似的SQL语句抽象显示成一个,不过功能还是

mysql慢查询日志分析工具使用

参考:  5种mysql日志分析工具比拼 http://blog.csdn.net/gzh0222/article/details/10384475 1.mysql-log-filter工具脚本使用说明: google code上找到的一个分析工具.提供了 python 和 php 两种可执行的脚本.http://code.google.com/p/mysql-log-filter/ (需要搬梯子爬墙),51cto下载链接: 使用方法:(这里只介绍python的使用方法) python mysq

mysql慢查询日志分析

如何开启慢查询日志? 在mysql配置文件my.cnf中增加 log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log)long_query_time=2 (记录超过的时间,默认为10s)log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)log-long-format (如果设置了,所有没有使用索

Mysql慢查询日志过程

原创地址 :http://itlab.idcquan.com/linux/MYSQL/922126.html mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出代码实现中耗费资源的sql语句,对我们程序的优化有很高的参考.本篇主要将慢查询日志的开启,日志分析,这也是优化SQL程序的一般步骤中至关重要的一步. 1.mysql慢查询日志 打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加

ELK logstash 处理MySQL慢查询日志(初步)

写在前面:在做ELK logstash 处理MySQL慢查询日志的时候出现的问题: 1.测试数据库没有慢日志,所以没有日志信息,导致 IP:9200/_plugin/head/界面异常(忽然出现日志数据,删除索引后就消失了) 2.处理日志脚本问题 3.目前单节点 配置脚本文件/usr/local/logstash-2.3.0/config/slowlog.conf[详细脚本文件见最后] output { elasticsearch { hosts => "115.28.3.150:9200

ELK分析MySQL慢查询日志并生成图像

一.背景 1.MySQL慢查询日志格式: # Time: 181109 15:04:08 # [email protected]: tvpayrcdev[tvpayrcdev] @ [172.16.14.51] Id: 8960747 # Query_time: 35.918265 Lock_time: 0.000141 Rows_sent: 1 Rows_examined: 11699162 SET timestamp=1541747048; select count(*) from trad