ELK logstash 处理MySQL慢查询日志
介绍
在生产环境下,logstash 经常会遇到处理多种格式的日志,不同的日志格式,解析方法不同。下面来说说logstash处理多行日志的例子,对MySQL慢查询日志进行分析,这个经常遇到过,网络上疑问也很多。
MySQL慢查询日志格式如下:
User@Host: ttlsa[ttlsa] @ [10.4.10.12] Id: 69641319
# Query_time: 0.000148 Lock_time: 0.000023 Rows_sent: 0 Rows_examined: 202
SET timestamp=1456717595;
select `Id`, `Url` from `File` where `Id` in ('201319', '201300');
# Time: 160229 11:46:37
1、filebeat配置:
我这里是使用filebeat 1.1.1版本的,之前版本没有multiline配置项,具体方法看后面那种。
filebeat:prospectors:-paths:- /www.ttlsa.com/logs/mysql/slow.logdocument_type: mysqlslowloginput_type: logmultiline:negate: truematch: afterregistry_file: /var/lib/filebeat/registry
output:logstash:hosts: ["10.6.66.14:5046"]
shipper:
logging:files:
logstash配置
2、logstash配置
input段配置
# vi /etc/logstash/conf.d/01-beats-input.conf
input {beats {port => 5046host => "10.6.66.14"}
}
filter 段配置
# vi /etc/logstash/conf.d/16-mysqlslowlog.log filter { if [type] == "mysqlslowlog" { grok { match => { "message" => "(?m)^#\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+@\s+(?:(?<clienthost>\S*) )?\[(?:%{IPV4:clientip})?\]\s+Id:\s+%{NUMBER:row_id:int}\n#\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}\n\s*(?:use %{DATA:database};\s*\n)?SET\s+timestamp=%{NUMBER:timestamp};\n\s*(?<sql>(?<action>\w+)\b.*;)\s*(?:\n#\s+Time)?.*$" } } date { match => [ "timestamp", "UNIX", "YYYY-MM-dd HH:mm:ss"] remove_field => [ "timestamp" ] } }}
关键之重是grok正则的配置。
output段配置
# vi /etc/logstash/conf.d/30-beats-output.conf
output {if "_grokparsefailure" in [tags] {file { path => "/var/log/logstash/grokparsefailure-%{[type]}-%{+YYYY.MM.dd}.log" }}if [@metadata][type] in [ "mysqlslowlog" ] {elasticsearch {hosts => ["10.6.66.14:9200"]sniffing => truemanage_template => falsetemplate_overwrite => trueindex => "%{[@metadata][beat]}-%{[type]}-%{+YYYY.MM.dd}"document_type => "%{[@metadata][type]}"}}
}
标准输出结果截图
elasticsearch结果截图
如果是使用filebeat1.1.1之前的版本,配置如下:
1. filebeat配置
filebeat:prospectors:-paths:- /www.ttlsa.com/logs/mysql/slow.logdocument_type: mysqlslowloginput_type: logregistry_file: /var/lib/filebeat/registry
output:logstash:hosts: ["10.6.66.14:5046"]
shipper:
logging:files:
2. logstash input段配
input {beats {port => 5046host => "10.6.66.14"codec => multiline {pattern => "^# User@Host:"negate => truewhat => previous}}
}
其它配置不变。
来源:http://www.ttlsa.com/elk/elk-logstash-process-mysql-slowlog/
参考连接 :
ELK logstash 处理MySQL慢查询日志 : https://mp.weixin.qq.com/s/ii1mu18WazEHezRMQImfwA
ELK logstash 处理MySQL慢查询日志相关推荐
- MySQL 慢查询日志导入 Elasticsearch 可视化查询分析
当应用程序后台 SQL 查询慢的时候我们一般第一时间会查看数据库慢查询记录,但是慢查询记录是原始文本,直接查询搜索分析比较费时费力,虽然业界有针对 MySQL 慢查询分析的命令行工具(比如:pt-qu ...
- MySQL 慢查询日志分析及可视化结果
MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的 ...
- mysql慢查询日志平时开启吗_MySQL开启慢查询日志功能的方法
mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里是否有很耗费资源的sql语句,这是一个有用的日志.它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失 ...
- MySQL慢查询日志的配置与使用_MySQL 慢查询日志的开启与配置
简介 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能. 查看是否开启慢查询功能: mysql> show variables like 'slow_ ...
- 6、MySQL慢查询日志(Slow Query Log)
慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句.通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化. 通俗的说,MySQL 慢查询日志是排查问题的 SQL 语句,以及 ...
- mysql慢查询日志 Mysql慢查询
mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢? 其实打开mysql的慢查询日志很简单,只需要在mysql ...
- mysql 慢查询日志的作用_MySQL慢查询日志的作用和开启
前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...
- 开启MYSQL慢查询日志
1.修改my.cnf或my.ini 1).linux----------------------------------- /etc/my.cnf 文件 [mysqld]long_query_time ...
- 读懂mysql慢查询日志
我们来看一下如何去读懂这些慢查询日志. 在跟踪慢查询日志之前,首先你得保证最少发生过一次慢查询.如果你没有可以自己制造一个: root@server# mysql -e 'SELECT SLEEP(8 ...
最新文章
- mysql数据没有真正提交,转MySQL 批量提交优化
- python中的 怎么用_Python中如何调用Linux命令
- 分享ASP.NET+jQuery MiniUI后台购物管理
- [github]使用——上传工程到新建的repo
- mysql单列索引和多列索引_浅谈MySQL索引优化
- 节后的第一个周末,来领取一个Ipad吧!真香!
- AFN2.0到3.0的迁移
- kubernetes目录挂载
- sql server charindex函数和patindex函数详解(转)
- CentOS Linux解决Device eth0 does not seem to be present【转】
- 一个程序员的创业失败教训【转自CSDN】
- 数据结构基础知识(2)
- Android的快速开发框架 afinal
- 产品设计(1):开源产品设计工具pencil
- 电脑桌面打开计算机打开多个,如何在电脑桌面并排显示多个Excel工作表
- 浅谈css样式及选择器
- 瑞萨E1仿真器(R0E000010KCE00)支持的MCU系列--V850 Family
- Java堆内存Heap与非堆内存Non-Heap简介和设置
- 新松机器人通过c++离线编程接口库控制运动失败的100个注意事项
- Unity3d Gis 坐标转换
热门文章
- python机器学习:朴素贝叶斯分类算法
- 使用计算机解决问题的本质,(新教材)教科版高中信息技术必修一 2.1 计算机解决问题的过程 课件(共25张PPT)...
- c++语言怎么实现字符串拼接,C++ string类和字符串的访问和拼接操作
- linux自动分区shell,SHELL脚本实现分区
- delphi 字符串占用空间_字符串在Python内部是如何省内存的
- iOS申请发布证书-图文详解
- [CQOI2017]小Q的表格(数论+分块)
- PHP项目:如何用PHP高并发检索数据库?
- C# 文件读取(一)
- CentOS 6.5源码编译安装MySQL 5.6