加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

通过使用filebeat收集mysql慢查询日志详细流程

发布时间:2023-10-21 15:54:23 所属栏目:MySql教程 来源:
导读:下文主要给大家带来通过使用filebeat收集mysql慢查询日志详细步骤,希望这些内容能够带给大家实际用处,这也是我编辑通过使用filebeat收集mysql慢查询日志详细步骤这篇文章的主要目的。好了,废话不多说,大家直接看
下文主要给大家带来通过使用filebeat收集mysql慢查询日志详细步骤,希望这些内容能够带给大家实际用处,这也是我编辑通过使用filebeat收集mysql慢查询日志详细步骤这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。
 
环境介绍:
 
操作系统版本:CentOS Linux release 7.3.1611 (Core) 64bit
 
Mysql版本: 5.6.28
 
Logstash版本: logstash 5.3.0
 
Elasticsearch版本:elasticsearch 5.3.0
 
Kibana版本:Kibana 5.3.0
 
Java版本:1.8.0_121
 
Mysql版本: 5.6.28及mysql慢日志
 
[bash]# Time: 170420 1:41:04
 
# User@Host: root[root] @ [192.168.1.178] Id: 2238895756
 
# Query_time: 3.887598 Lock_time: 0.000099 Rows_sent: 19 Rows_examined: 19
 
SET timestamp=1492623664;
 
select * from users_test;
 
# User@Host: root[root] @ [192.168.1.178] Id: 2238895828
 
# Query_time: 3.161184 Lock_time: 0.000150 Rows_sent: 28 Rows_examined: 28
 
SET timestamp=1492623664;
 
select * from users_test;
 
# Time: 170420 1:41:12[/bash]
 
复制代码
 
filebeat及logstash配置
 
filebeat.yml配置文件
 
[bash]filebeat:
 
prospectors:
 
-
 
paths:
 
- /data/mysql/xxx-slow.log
 
document_type: mysqlslow
 
multiline:
 
pattern: "^# User@Host: "
 
negate: true
 
match: after
 
registry_file: /var/lib/filebeat/registry
 
output:
 
logstash:
 
hosts: ["192.168.1.63:5044"][/bash]
 
复制代码
 
logstash.conf
 
[bash]input {
 
beats {
 
port => 5044
 
}
 
}
 
filter {
 
grok {
 
match => [ "message", "(?m)^# User@Host: %{USER:query_user}\[[^\]]+\] @ (?:(?<query_host>\S*) )?\[(?:%{IP:query_ip})?\]\s*Id: %{NUMBER:id:int}\s+# 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}\s*(?:use %{DATA:database};\s*)?SET timestamp=%{NUMBER:timestamp};\s*(?<query>(?<action>\w+)\s+.*)" ]
 
}
 
grok {
 
match => { "message" => "# Time: " }
 
add_tag => [ "drop" ]
 
tag_on_failure =>[]
 
}
 
if "drop" in [tags] {
 
drop {}
 
}
 
date {
 
match => [ "timestamp", "UNIX", "YYYY-MM-dd HH:mm:ss"]
 
remove_field => [ "timestamp" ]
 
}
 
}
 
output {
 
elasticsearch {
 
hosts => "192.168.1.63:9200"
 
manage_template => false
 
index => "%{[@metadata][beat]}-%{[type]}-%{+YYYY.MM.dd}"
 
document_type => "%{[@metadata][type]}"
 
}
 
}[/bash]
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章