[日志分析]Graylog2采集mysql慢日志
之前聊了一下graylog如何采集nginx日志,为此我介绍了两种采集方法(主动和被动),让大家对graylog日志采集有了一个大致的了解。
从日志收集这个角度,graylog提供了多样性和灵活性,大家可以根据自身场景选择适合自己的一种。
这次要跟大家聊的是如何通过graylog采集mysql慢日志。mysql慢日志的特点就是多行输出,不是那种一行就是一条日志的那种打印方式。
除了采集,我这边还要介绍一下如何通过graylog把慢日志相应的字段提取出来,方便我们进行分析,进而用grafana做成性能分析看板(APM)。
所以今天要围绕三点展开来讲:
graylog如何采集多行日志
graylog如何通过正则解析日志字段
如何通过grafana制作mysql慢日志的性能看板
一、graylog如何采集多行日志:
(1)我们在已经建好的linux配置里新增一个mysql_slow_log的Beats Input,如果有对这块不清楚的同学可以看一下我之前的文章:Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式 ,这里不再赘述一遍了。

(2)需要注意的是,我们处理的是多行日志所以要勾选 Enable Mutilline

(3)Start pattern of a multiline message 文本框中填入:^# Time ,也就是告诉它日志的开头部分是以# Time开始。然后在How are matching lines combined into one event 的下拉菜单选择 after ,意思就是把以# Time开头,并在之后的那些行都算是一条日志。

(4)我们不要忘了在导航栏System/Collector 中,把新增的mysql_slow_log的新标签更新一下。

(5)在mysql服务器上安装好graylog Sidecar 并采集mysql慢日志,会得到以下的效果。graylog Sidecar 安装配置方法,请参考我之前的文章:Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

二、graylog如何通过正则解析日志字段
(1)要想把日志中的各个字段提取出来,还需要我们对message进行进一步处理,通过正则匹配将字段提取出来。导航栏选择System/Grok Patterns。

(2)grok pattern取名为MYSQL_SLOW_QUERY_TIME ,Pattern一栏填入我们的正则表达式为:
Query_time: %{NUMBER:mysql_slow_querytime:float}(?:%{SPACE})Lock_time: %{NUMBER:mysql_slow_locktime:float}(?:%{SPACE})Rows_sent: %{NUMBER:mysql_slow_rowssent:int}(?:%{SPACE})Rows_examined: %{NUMBER:mysql_slow_rowsexamined:int}(?:%{SPACE})(?:%{GREEDYDATA}
点击save保存,这样我们就已经创建好一个名为MYSQL_SLOW_QUERY_TIME的这个正则解析了。

(3)这一步我们要创建一个mysql慢日志日志的解析器。我们在导航栏Search中选择一条mysql慢日志,在message的右侧有个小黑三角,点击选择Grok pattern -> Creat extractor for field message

(4)在Grok pattern文本框中填入刚才我们定义好的正则解析式的名字MYSQL_SLOW_QUERY_TIME,在Condition中选择执行这个解析的匹配的条件,有关键字:# Query_time 执行,把解析器命名完毕,点击Update extractor 进行保存。

(5)我们在回到导航栏Search中找一条最新采集的mysql慢日志,这时我们已经看到,相应的字段已经解析出来了,当然我们只是解析了其中一个字段,其他字段的解析还需大家了解一下正则表达式自己来编写,我只是抛砖引玉一下。

三、如何通过grafana制作mysql慢日志的性能看板
在grafana中选择mysql慢日志所在的ES数据源之后我们分别创建三个图形展示栏,饼图、表格栏、时间轴。
饼图主要是用来展示慢查询所在数据库的分布情况
表格图主要展示具体的时间,哪些客户端访问哪些数据库,耗时多少,并可以按照时间或者耗时时间进行排序。
时间轴主要是用来鼠标滑动时间范围,饼图和表格图会根据时间范围进行联动展示滑动范围内慢查询的详细信息。
这样,就能很快的帮我们分析出,具体是哪个慢查询导致的性能问题,一目了然。
具体grafana看板的制作方法,有时间我抽空详细讲一下,今天只是提供一个思路和实现手段。


[日志分析]Graylog2采集mysql慢日志的更多相关文章
- [日志分析]Graylog2采集Nginx日志 主动方式
这次聊一下Graylog如何主动采集Nginx日志,分成两部分: 介绍一下 Graylog Collector Sidecar 是什么 如何配置 Graylog Collector Sidecar 采 ...
- [日志分析]Graylog2采集Nginx日志 被动方式
graylog可以通过两种方式采集nginx日志,一种是通过Graylog Collector Sidecar进行采集(主动方式),另外是通过修改nginx配置文件的方式进行收集(被动方式). 这次说 ...
- [日志分析]Graylog2进阶 通过正则解析Nginx日志
之前分享的 [日志分析]Graylog2采集Nginx日志 主动方式 这篇文章介绍了Graylog如何通过Graylog Collector Sidecar来采集nginx日志. 由于日志是未经处理的 ...
- 【linux日志】【日志分析】linux系统各日志文件的含义
前段时间太忙,没有来得及管博客,最近时间充裕了,开始更新博客. 因为最近在看linux日志相关内容,把心得分享给大家 linux系统日志文件默认存放路径/var/log/ ls查看此路径下有哪些日志文 ...
- [日志分析]Graylog2进阶之获取Nginx来源IP的地理位置信息
如果你们觉得graylog只是负责日志收集的一个管理工具,那就too young too naive .日志收集只是graylog的最最基础的用法,graylog有很多实用的数据清洗和处理的进阶用法. ...
- 日志分析_使用shell完整日志分析案例
一.需求分析 1. 日志文件每天生成一份(需要将日志文件定时上传至hdfs) 2. 分析日志文件中包含的字段:访问IP,访问时间,访问URL,访问状态,访问流量 3. 现在有"昨日" ...
- logstash采集tomcat日志、mysql错误日志
input{ file { path => "/opt/Tomcat7.0.28/logs/*.txt" start_position => "beginni ...
- MySQL慢日志查询分析方法与工具
MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1)通用查询日志:记录建立的客户端连接和执行的语句. 2)慢查 ...
- 日志分析 第一章 ELK介绍
1 ELK各组件介绍? ELK Stack是elasticsearch.logstash.kibana是三个开源软件的组合, fielbeat是一个轻量级日志收集工具,类似于Linux系统中tail ...
随机推荐
- Promise的用法(js&java)
Promise(onsuccess , on fail) f1.then(f2.then(), f3.then()) java CompletableFuture.thenAccept
- [LC] 8. String to Integer (atoi)
Implement atoi which converts a string to an integer. The function first discards as many whitespace ...
- 吴裕雄--天生自然python编程:实例
# 该实例输出 Hello World! print('Hello World!') # 用户输入数字 num1 = input('输入第一个数字:') num2 = input('输入第二个数字:' ...
- 解决android 无法打开 DDMS 中的data目录
把上面操作一遍就可以了,如果还是不行你可以检查下 su 是不是输入错误了.
- idea maven 项目可以运行但依赖包一直是红色
一句话!!!重启一下idea 红红的一片很烦!!!!!重启
- python ATM项目
1.需求: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆,用户间转帐 支持多用户 管理员可添加账户.指定用户额度.冻结用户等 购物车: 商品信息 ...
- openCryptoki安装
什么是OpenCryptoki OpenCryptoki提供Linux下的PKCS#11库和工具,支持包括TPM和IBM加密硬件以及软件令牌. 目前(2019/05/06)最新release版为3.1 ...
- 记 MySQL优化 20条
1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ...
- PHP 导出网页表格如何对标签中的内容设置属性
当在使用php导出excel表格的时候,有时需要将某一列专门设置成文本属性 方法: 在需要设置属性的的<td>标签中 添加 style='vnd.ms-excel.numberforma ...
- Hexo站点Next主题添加google adsense广告
本文转载自: https://www.93bok.com 前言 无意之间看到了google adsense的广告,于是就想到给我的站点也弄一个,本来以为是很简单的事,参考了很多资料,终于是部署成功了, ...