之前聊了一下graylog如何采集nginx日志,为此我介绍了两种采集方法(主动和被动),让大家对graylog日志采集有了一个大致的了解。

从日志收集这个角度,graylog提供了多样性和灵活性,大家可以根据自身场景选择适合自己的一种。

这次要跟大家聊的是如何通过graylog采集mysql慢日志。mysql慢日志的特点就是多行输出,不是那种一行就是一条日志的那种打印方式。

除了采集,我这边还要介绍一下如何通过graylog把慢日志相应的字段提取出来,方便我们进行分析,进而用grafana做成性能分析看板(APM)。

所以今天要围绕三点展开来讲:

graylog如何采集多行日志

graylog如何通过正则解析日志字段

如何通过grafana制作mysql慢日志的性能看板

一、graylog如何采集多行日志:

(1)我们在已经建好的linux配置里新增一个mysql_slow_logBeats 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_TIMEPattern一栏填入我们的正则表达式为:

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慢日志的更多相关文章

  1. [日志分析]Graylog2采集Nginx日志 主动方式

    这次聊一下Graylog如何主动采集Nginx日志,分成两部分: 介绍一下 Graylog Collector Sidecar 是什么 如何配置 Graylog Collector Sidecar 采 ...

  2. [日志分析]Graylog2采集Nginx日志 被动方式

    graylog可以通过两种方式采集nginx日志,一种是通过Graylog Collector Sidecar进行采集(主动方式),另外是通过修改nginx配置文件的方式进行收集(被动方式). 这次说 ...

  3. [日志分析]Graylog2进阶 通过正则解析Nginx日志

    之前分享的 [日志分析]Graylog2采集Nginx日志 主动方式 这篇文章介绍了Graylog如何通过Graylog Collector Sidecar来采集nginx日志. 由于日志是未经处理的 ...

  4. 【linux日志】【日志分析】linux系统各日志文件的含义

    前段时间太忙,没有来得及管博客,最近时间充裕了,开始更新博客. 因为最近在看linux日志相关内容,把心得分享给大家 linux系统日志文件默认存放路径/var/log/ ls查看此路径下有哪些日志文 ...

  5. [日志分析]Graylog2进阶之获取Nginx来源IP的地理位置信息

    如果你们觉得graylog只是负责日志收集的一个管理工具,那就too young too naive .日志收集只是graylog的最最基础的用法,graylog有很多实用的数据清洗和处理的进阶用法. ...

  6. 日志分析_使用shell完整日志分析案例

    一.需求分析 1. 日志文件每天生成一份(需要将日志文件定时上传至hdfs) 2. 分析日志文件中包含的字段:访问IP,访问时间,访问URL,访问状态,访问流量 3. 现在有"昨日" ...

  7. logstash采集tomcat日志、mysql错误日志

    input{ file { path => "/opt/Tomcat7.0.28/logs/*.txt" start_position => "beginni ...

  8. MySQL慢日志查询分析方法与工具

    MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1)通用查询日志:记录建立的客户端连接和执行的语句. 2)慢查 ...

  9. 日志分析 第一章 ELK介绍

    1 ELK各组件介绍? ELK Stack是elasticsearch.logstash.kibana是三个开源软件的组合, fielbeat是一个轻量级日志收集工具,类似于Linux系统中tail ...

随机推荐

  1. web前端知识day01_HTML

    一.HTML入门案例(静夜思) 1.概述 HTML:Hyper Text Markup Language 超文本标记语言超文本:比普通文本功能强大,能实现不同样式(比如加粗,居中,斜体)标记语言:使用 ...

  2. eclipse 大括号改为C语言一样的代码块

    如图:找到Windows->Preferences->Java->Code Style->Formatter: 然后,点击右边的Edit按钮: 按如下图完成

  3. iOS应用程序开发——解决iOS7之前版本与之后版本下app启动图片跳动问题

    之前开发的app都是针对iOS6(兼容iOS5),所以在开发之初也出现了启动图片向下跳动的现象,通过网上的解决方法,代码中做了处理(“-20”): _imageView.frame = CGRectM ...

  4. shell-变量学习-01

    1.变量   1.1 变量赋值 > variable_zhou="hello world!" #等号两边不能有空格   1.2 使用变量 > echo $variabl ...

  5. 提升项目一:花卉管理系统(Servlet+JSP完成)

    这个是写的第一个项目:使用Servlet+JSP完成,加上对底层构架的理解,才可以对后面要接触使用的ssh框架的深刻理解 2017-02-11: 完成对进货业务的操作, 下一步完成对销货业务的操作

  6. 默认的Settings.xml文件(无修改过)-Maven

    Tip: 当什么都不作修改时,默认是从Maven中央仓库进行下载,https://repo.maven.apache.org/maven2. 打开maven源码下的lib文件夹,找到maven-mod ...

  7. 一、HTTP和HTTPS的基本概念

    1HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少. 2HT ...

  8. 用手机应用追踪城市噪声污染——微软Azure助力解决城市问题

    噪声无孔不入的城市地带(图片来自于网络) 2014年4月19日发行的<经济学人>杂志预言,到2030年,中国人口的70%(约10亿人)会在城市中居住.中国城镇化的高速发展一方面大大提高了 ...

  9. 当学术邂逅浪漫 – 记MobiCom 2015大会

    作者:微软亚洲研究院主管研究员 刘云新 今年的MobiCom大会在著名的浪漫之都巴黎举行.通常于欧洲举办的会议的参会人数会相对少一些,但今年的MobiCom大会吸引了近400人参加,绝不少于往年.浪漫 ...

  10. github hexo配置踩过的坑

    大体步骤:配置npm,在github中增加自己的sshkey. 多sshkey的话在用户主目录的.ssh中要配置好. 删除仓库里面 source/_posts/我的文章.md 执行下面命令更新博客 h ...