之前聊了一下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. Qt 信号阻塞和断开

    Qt程序中有时候不希望信号槽的触发,在某段流程结束之后,又需要继续回复信号槽状态,这时候可以用阻塞或者断开信号槽的方法来处理. 1. 阻塞方法:bool QObject::blockSignals(b ...

  2. 最简化的DirectX 11开发环境的配置 VS2010

    转载自:http://blog.csdn.net/zhmxy555/article/details/7672101 在编写基于DirectX 11的应用程序之前,我们当然需要在IDE中加入Direct ...

  3. Java 内部类(成员内部类、局部内部类、静态内部类,匿名内部类)

    一.什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用publ ...

  4. C++输入带空格的字符串

    对于字符数组 1.使用 getline() 读入整行数据,回车键输入的换行符确定输入结尾. 调用方法:cin.getline(str, len) 第一个参数str用来存储输入行的数组名称,第二个参数是 ...

  5. 吴裕雄--天生自然KITTEN编程:拾金币

  6. linux查看端口号占用命令-netstat

    题记 经常会发现,很多时候我们在运行一些带有端口的程序时,程序经常会报端口被占用的问题,比如Tomcat 8080,端口起不来. 查看端口号 netstat 如果发现某个端口被占用后,可以用命令查看, ...

  7. e代驾推出新产品“e代喝”,能否实现前者的社交梦?

    近日,关于e代驾推出e代喝的新闻不断出现在各大媒体的新闻报道之中,看似好像是替人排扰解难的征服酒局的又一利器.但事实真的如此吗?首先要弄清楚的,是目前e代驾在行业中的处境.作为代驾行业的先驱者,e代驾 ...

  8. linux公社大量免费的在线android资料

    2011年linux数据库的android在线分享 linux公社:开源公社             本文撰写:杨凯专属频道 下载如需密码,详见博客案例:点击我去查看密码 2011年9月12日 21: ...

  9. SQL命令汇总

    order by rocketmq_id; 查找主从在同一IP的集群和节点2. select rocketmq_id,ip,port,type,count(*) as num  from t_rock ...

  10. CSS定位属性position相关介绍

    position属性用来定义元素的定位方式. 定位相关属性值 1.static 默认值 2.absolute 绝对定位 3.fixed 固定定位 4.relative 相对定位 5.sticky 粘性 ...