ELK Stack基础教程(6)使用ES对MySQL慢日志进行展示分析
1、MySQL数据库版本为5.7,慢日志格式如下
# Time: 2022-10-24T16:15:28.539506+08:00 # User@Host: dba[dba] @ localhost [] Id: 618888 # Query_time: 3.000829 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 SET timestamp=1666599328; select sleep(3);
2、Filebeat配置部分
filebeat.inputs: - type: log paths: - /data/mysql3306/log/slowlog/mysql.slow #修改为实际数据库慢日志的路径 multiline.type: pattern multiline.pattern: '^# User@Host: ' #从慢日志的User@Host行开始进行匹配,然后将该行后面的多行日志都合并为一条日志,而第一行Time会另作处理 multiline.negate: true multiline.match: after tags: ["mysql_slowlog",3306] - type: log paths: - /data/mysql3307/log/slowlog/mysql.slow multiline.type: pattern multiline.pattern: '^# User@Host: ' multiline.negate: true multiline.match: after tags: ["mysql_slowlog",3307] - type: log paths: - /data/redis/logs/redis.log tags: ["redis_log"] processors: - drop_fields: fields: ["ecs","agent","input","log"] #删除filebeat自身带的多余字段 output.logstash: hosts: ["172.20.1.221:5044"] #指向了Logstash地址
经过上面Filebeat处理后的日志内容如下
2、Logstash部分
input { beats { port => 5044 } } filter { #MySQL 5.7慢日志grok规则,一定要配合下面的删除语句一起使用,否则不匹配 grok { match => [ "message", "(?m)^# User@Host: %{USER:query_user}\[[^\]]+\] @ (?:(?<query_host>\S*) )?\[(?:%{IP:query_ip})?\]\s+Id:\s+%{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+.*)" ] } #将慢日志中#Time开头的行加上drop标签,如:# Time: 181218 9:17:42 grok { match => { "message" => "# Time: " } add_tag => [ "drop" ] tag_on_failure => [] } #删除标签中含有drop的行,也就是日志里# Time开头的内容 if "drop" in [tags] { drop {} } } output { elasticsearch { hosts => ["172.20.1.221:9200"] index => "filebeat-mysql-slowlog-%{+yyyy.MM.dd}" } }
经过上面Logstash处理后的日志内容如下
3、ES部分
cluster.name: mysql_slowlog_es node.name: node_1_221 path.data: /data/es/data path.logs: /data/es/logs bootstrap.memory_lock: true network.host: 172.20.1.221 http.port: 9200 discovery.seed_hosts: ["172.20.1.221"] cluster.initial_master_nodes: ["172.20.1.221"] action.destructive_requires_name: true
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论