当前位置:Gxlcms > 数据库问题 > ELK-Logstash MySQL 慢查询日志分析

ELK-Logstash MySQL 慢查询日志分析

时间:2021-07-01 10:21:17 帮助过:86人阅读

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 => [       "# User@Host: %{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 图形展示

技术分享

ELK-Logstash MySQL 慢查询日志分析

标签:elk logstash kibana elasticsearch

人气教程排行