mysql 慢日志可视化_Mysql 慢日志分析系统搭建 —— Box Anemometer

背景:

​慢日志是分析定位问题的利器,但是在日常实际应用中,mysql自动生成的慢日志是杂乱无章的,不便于我们的使用。 这里介绍利用开源项目 Box Anemometer来搭建一个图形可视化的慢日志分析系统。

github项目地址:  https://github.com/box/Anemometer

步骤过程:​

一. 安装 percona-toolkit,因为其实box还是借助percona的pt-query-digest工具将慢日志的分析结果写入数据库,然后展示。

1. 获取最新的安装包 :wget percona.com/get/percona-toolkit.tar.gz​

2. 解压并安装 :

tar xzvf​  percona-toolkit-2.2.16.tar.gz

cd percona-toolkit-2.2.16

perl Makefile.PL

make

make test

make install

​二. 搭建LAMP环境并且安装Box Anemometer :

1.  git clone https://github.com/box/Anemometer.git anemometer

2.  将clone的anemometer放在httpd.conf对应的DocumentRoot​目录路径下。

3.  修改配置文件:

cd   /anemometer/conf

cp sample.config.inc.php config.inc.php  ​

配置项说明:

$conf['datasources']['localhost'] = array(

'host'  => '127.0.0.1',         //anemometer系统用来存放数据集结果的数据库服务器的host

'port'  => 3307,                  //对应的端口

'db'    => 'slow_query_log',          //对应的数据库

'user'  => 'root',                              //用户名

'password' => '123456',                //密码

'tables' => array(

'global_query_review' => 'fact',

'global_query_review_history' => 'dimension'

),

'source_type' => 'slow_query_log'

);

三. 在anemometer的结果集数据库中手工倒入sql文件创建数据库以及表:

mysql -uroot  -p  -S /tmp/mysql3306.sock < Anemometer/install.sql

四. 配置具体的收集环境:​

注: 当你要收集多个数据库服务器上的慢日志时,你有以下方式可以实现:

1、手工导入的install.sql里面的global_query_review_history表包含了hostname_max和db_max,通过hostname_max区分把多个数据源存放到一个表里.

2、每台mysql把处理后的slow log数据放到当前服务器,然后anemometer连接对应的服务器获取数据.

3、所有的mysql把处理后的slow log数据统一存放到anemometer所在的数据库上,然后通过表名或者数据库名字区分.

如果选择第二种或者第三种方案,需要定义多个数据源​。我们这里以第2中方式为例:

假如我们的Box系统放在A主机上,我们要收集B与C主机的slow log来分析统计(三台主机上都有mysql实例):​

第一步,首先,我们在A数据中心数据库(即存放B和C的结果集)上创建B和C对应的库和表:修改install.sql文件中的库名和表名即可:

f0a19342ec18383dec5c2f3179149075.png

​​我们将B的数据存放在A的slow_query_log_master库中,将C的数据存放在A的slow_query_log_slave数据库中。

第二步,然后修改配置文件中的数据源配置:

54784ee61acdbac432520640fcc1e12a.png

​上面的B和C指的是界面的数据源选择,其他的都是A数据库的配置,db即B和C的数据结果集存放数据库。

第三步,在B和C上配置日志收集装置:

将/anemometer/scripts​/anemometer_collect.sh放在B和C上,然后根据自己的需求进行修改,因为不同的需求要进行不同的修改,这里就不具体说明了,只是强调几点应该注意的:

1.  此程序是默认登陆机器,将mysql的slow_query_log​关掉,然后mv到另外一个文件夹,然后用pt-query-digest进行分析,并将结果写入A的数据库。然后再打开slow_query_log开关,中间涉及慢日志时长long_query_time的修改,需要根据自己的需求更改。

2. 此程序默认删掉了mv过去的文件,如果你有需要需保存。​

​3. 为anemometer_collect.sh生成配置文件,​分别为连接本地数据库的配置文件localhost.cnf(用于设置slow_query_log参数)以及远程数据库A的连接配置server.cnf 用于将pt-query-digest的结果写入A。

4. 以cron的形式每天定时执行:

30 21 * * *  sh -x   anemometer_collect.sh  --defaults-file localhost.cnf  --history-defaults-file  server.cnf >>/data2/box-slow.log​

第四步:​这时候,应该就可以打开服务器对应的网站进行访问了.

4eed28a5e776b97883e0cba0bac23362.png

如果发现访问不了,可以curl -v以及查看log的方式定位错误。​

致此,基本上就搭建完毕,后续遇到的问题会持续更新。。。​

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值