[日志分析]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 ...
随机推荐
- 3DMAX 卸载工具,完美彻底卸载清除干净3dmax各种残留注册表和文件
一些同学安装3dmax出错了,也有时候想重新安装3dmax的时候会出现这种本电脑windows系统已安装3dmax,你要是不留意直接安装,只会安装3dmax的附件,3dmax是不会安装上的.这种原因呢 ...
- Centos_7安装python-pip
使用yum -y install python-pip安装pip时,会报出”No package python-pip available.“. 使用命令: yum -y install epel-r ...
- App Store成绞肉机 让创业者止步
Store成绞肉机 让创业者止步" title="App Store成绞肉机 让创业者止步"> 曾几何时,苹果App Store一直被称之为创业者的天堂.似乎只要灵 ...
- 《JavaScript算法》常见排序算法思路与代码实现
冒泡排序 通过相邻元素的比较和交换,使得每一趟循环都能找到未有序数组的最大值或最小值. 最好:O(n),只需要冒泡一次数组就有序了. 最坏: O(n²) 平均: O(n²) *单项冒泡 functio ...
- 我是青年你是良品-魅蓝NOTE 2
2" title="我是青年你是良品-魅蓝NOTE 2"> 明天魅蓝即将迎来自己的新品发布会.选择儿童节的第二天后最喜爱的手机品牌.让其成为真正青年的良品. 在 ...
- 在 Ubuntu 14.04 安装 PyCharm 5 & Oracle JDK
由于授权问题,在较新的Linux发行版本中都不再包含Oracle Java,取而代之的是OpenJDK.Ubuntu也是如此. OpenJDK能满足大部分的应用程序运行条件,但PyCharm无法在Op ...
- “代码量统计脚本”
概述 本文从一段统计C/C++程序脚本入手,记录shell脚本常用和重要的知识点. 代码量统计程序 文件名称,count_code_line.sh 12345678910111213141516171 ...
- C++走向远洋——(项目二、存储班长信息的学生类、派生)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- SpringBoot&Shiro实现用户认证
SpringBoot&Shiro实现用户认证 实现思路 思路:实现认证功能主要可以归纳为3点 1.定义一个ShiroConfig配置类,配置 SecurityManager Bean , Se ...
- 微信小程序状态管理工具 JStore
微信小程序状态管理工具 JStore 闲着没事做,就想着给微信小程序写一个状态管理工具,名叫 JStore,这个状态管理工具是仿照 vuex 的几个方法来写的,所以有 vuex 的基础同学很容易理解. ...