文档章节

Mysql 慢日志分析系统搭建 —— Box Anemometer

水露露
 水露露
发布于 2017/08/14 10:05
字数 1035
阅读 73
收藏 0

背景:

​慢日志是分析定位问题的利器,但是在日常实际应用中,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文件中的库名和表名即可:

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

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

 

​上面的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​

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

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

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

本文转载自:http://blog.sina.com.cn/s/blog_c2839d2a0102wkuv.html

共有 人打赏支持
水露露
粉丝 4
博文 96
码字总数 25340
作品 0
西安
程序员
Anemometer图形化显示MySQL慢日志的工具搭建使用

介绍:Anemometer 是一个图形化显示MySQL慢日志的工具。结合pt-query-digest,Anemometer可以很轻松的帮你去分析慢查询日志,让你很容易就能找到哪些SQL需要优化 This is the Box Anemometer...

wdw王大为
05/23
0
0
Anemometer+Percona Toolki实现MySQL慢查询日志可视化功能

最近发现了一个挺好用的MySQL慢查询日志可视化的工具,网上也能找到很多资料,在这里结合自己的实际情况重新整理一下。 1. 实验环境 1.1 系统环境: 1.2 可视化软件环境: 2. 编译安装MySQL...

呀哈喽
07/26
0
0
MySQL 慢查询监控器--Anemometer

Box Anemometer 是一个 MySQL 慢查询监控器,用来分析 MySQL 中的执行效率底下的 SQL 语句,以找出系统慢的原因。

红薯
2014/04/13
1K
0
slowlog分析anemometer平台搭建

slowlog监控服务器的anemometer配置 slowlog监控平台搭建步骤: 一、安装percona-toolkit-2.2.14 二、准备相关php模块 yum -y install php-common php-bcmath php-mysql php-dba php-cli php......

浮生凤年
2015/07/07
0
0
MySQL性能分析系统

对于MySQL慢查询日志的分析,现已由多种工具来提供;最原始的mysqldumpslow,功能比较齐全的 mysqlsla和percona的 pt-query-digest;以上工具大大提高了DBA来分析数据库的性能效率,减少了过...

像教授
2017/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day96-20180923-英语流利阅读-待学习

英国王子也不看好人工智能,理由却和霍金不同 Daniel 2018-09-23 1.今日导读 2016 年 3 月 9 日至 15 日,世界围棋冠军李世石与谷歌研发的计算机围棋程序 AlphaGo 进行人机大战并以 1 比 4 ...

飞鱼说编程
15分钟前
0
0
今天在码云遇到一个很有意思的人 for Per.js

今天在码云遇到一个很有意思的人,他在我的Per.js项目下面评论了一句,大意为“你试试这句代码,看看速度到底是你快还是Vue快”【当然,这个评论被我手残不小心删掉了...】。 然后我就试了,...

Skyogo
20分钟前
16
0
Java -------- 首字母相关排序总结

Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa","CC","Ba","DD","ee","dd"}; Arrays.sort(strings); for (int i ...

切切歆语
22分钟前
0
0
还在用 Git 的 -f 参数强推仓库,你这是在作死!

最近,美国一个程序员因为同事不写注释,代码不规范,最严重的是天天使用 git push -f 参数强行覆盖仓库,该程序员忍无可忍向四名同事开抢,其中一人情况危急!!! 不写注释、代码不规范是一...

红薯
35分钟前
281
0
NPM报错终极大法

所有的错误基本上都跟node的版本相关 直接删除系统中的node 重新安装 sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 重新安装 $ n lts$ npm...

lilugirl
39分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部