ITPub博客

首页 > 数据库 > MySQL > Box Anemometer的安装部署【监控慢查询】

Box Anemometer的安装部署【监控慢查询】

原创 MySQL 作者:litcoco 时间:2015-11-17 16:52:28 0 删除 编辑

           

        Box Anemometer 安装部署


   针对多台数据库慢查询日志,可使用Box Anemometer工具集中在web展示慢日志。

Anemometer工具,集合了phpapacheMySQL,将慢日志使用pt-query-digest分析并通过web页面展示出来,其主要是通过pt-query-digest工具定时分析写库,然后通过网页可展示出来,并不是它做的慢查询分析。

 

Box Anemometer工具的安装

准备环境:

Anemometer服务器

1.准备安装好php模块。

2.安装好apache服务。

3.下载Anemometer包。

4.准备Anemoeter数据库。

被监控端服务器

1.安装Percona Toolkit

 

选择Anemometer服务器,进行安装:

1. 安装php模块(需要5.3以上版本)

yum安装以下模块 

# yum install -y php-bcmath.x86_64

# yum install -y php.x86_64 

# yum install -y php-dba.x86_64 

# yum install -y php-cli.x86_64  

# yum install -y php-pdo.x86_64

# yum install -y php-common.x86_64 

# yum install -y php-gd.x86_64

# yum install -y php-mysql.x86_64

 

# rpm -qa|grep php

php-5.3.3-46.el6_6.x86_64

php-pear-1.9.4-4.el6.noarch

php-ldap-5.3.3-46.el6_6.x86_64

php-mysql-5.3.3-46.el6_6.x86_64

php-cli-5.3.3-46.el6_6.x86_64

php-devel-5.3.3-46.el6_6.x86_64

php-gd-5.3.3-46.el6_6.x86_64

php-xmlrpc-5.3.3-46.el6_6.x86_64

php-bcmath-5.3.3-46.el6_6.x86_64

php-pdo-5.3.3-46.el6_6.x86_64

php-common-5.3.3-46.el6_6.x86_64

php-xml-5.3.3-46.el6_6.x86_64

php-mbstring-5.3.3-46.el6_6.x86_64

php-dba-5.3.3-46.el6_6.x86_64

 

修改PHP时区:

PHP5.2.4之后版本必需设置时区。修改PHP时区方法如下:

1.vi /etc/PHP.ini

date.timezone = Asia/Shanghai

2.修改htaccess文件

2种方法,以下2条语句之一即可:

php_value date.tomezone Asia/Shanghai

SetEnv TZ Asia/Shanghai

3.修改PHP代码

也是下面两条语句之一即可:

<?php

date_default_timezone_set('Asia/Shanghai');

ini_set('date.timezone','Asia/Shanghai');

?>

2. 安装apache服务

查看系统是否安装,否则yum安装

# yum install -y httpd

# rpm -qa|grep http

httpd-tools-2.2.15-47.el6.centos.x86_64

httpd-2.2.15-47.el6.centos.x86_64

重启命令:

service httpd restart

相关错误日志

# tail /var/log/httpd/error_log

 

3. 下载Anemometer,并配置

下载链接https://github.com/box/Anemometer/archive/master.zip

# unzip Anemometer-master.zip

# cd Anemometer-master

# cat README.md

# mv Anemometer-master /var/www/html/anemometer/

 

 

修改配置文件:

# cd /var/www/html/anemometer/conf

# cp sample.config.inc.php  config.inc.php

vi config.inc.php



 

修改如上划横线部分,其中第二个node1为当前服务器对外服务IP,下图为连接的数据库及密码。

 

 

 

 

4. 准备好Anemometer数据库、初始化生成要用的库、建账号

准备好存储慢日志分析MySQL Server,初始化生成需要的库

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

Db:  slow_query_log

Table:  global_query_reviewglobal_query_review_history

 

Anemometer数据库账号,并授权:

> Grant All on `slow_query_log`.* TO 'anemometer'@'%' identified by ‘supersecurepass’;

Flush privileges;

 

5. 安装Percona Toolkit,并测试Anemometer配置是否成功

# wget https://www.percona.com/downloads/percona-toolkit/2.2.14/deb/percona-toolkit_2.2.14.tar.gz

# tar xvzf percona-toolkit_2.2.14.tar.gz

# cd percona-toolkit-2.2.14/

#  perl Makefile.PL

# make && make install

 

导入慢日志:

For pt-query-digest version < 2.2

# pt-query-digest --user=anemometer --password=superSecurePass \

                  --review h=db.example.com,D=slow_query_log,t=global_query_review \

                  --review-history h=db.example.com,D=slow_query_log,t=global_query_review_history \

                  --no-report --limit=0% \ 

                  --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \ 

                  /var/lib/mysql/db.example.com-slow.log  

For pt-query-digest version > 2.2

# pt-query-digest --user=anemometer --password=superSecurePass \

                  --review h=db.example.com,D=slow_query_log,t=global_query_review \

                  --history h=db.example.com,D=slow_query_log,t=global_query_review_history \

                  --no-report --limit=0% \ 

                  --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \ 

                  /var/lib/mysql/db.example.com-slow.log

 

 

 

通过IP访问测试:

http://192.168.149.131/anemometer

 

 

 

 

6. 被监控端,部署慢日志搜集脚本

首先安装好Percona Toolkit(见上第5步)

在被监控端建立账号

此账号用来启停慢日志起到定期生成慢日志片段作用

(实质就是定时生成慢日志,pt-query-digest分析后,远程写库)

> GRANT SUPER ON *.* TO 'anemometer_local'@'localhost' IDENTIFIED BY 'Monitor';

> flush privileges;

 

定制慢查询日志,及本地、远程连接信息

# mkdir /anemometer/scrips -p

# cp cd /anemometer/scrips/anemometer_collect.sh /anemometer/scrips

# ll

-rwx--xr-x 1 root root 4480 Nov 11 10:02 anemometer_collect.sh

-rw-r--r-- 1 root root   76 Nov 10 17:06 anemometer-local.cnf

-rw-r--r-- 1 root root   71 Nov 10 19:09 anemometer-server.cnf

慢查询搜集脚本,通过pt-query-diges对被监控端进行分析,并将结果写入远程Anemometer数据库,global_query_review_history表中,通过字段hostname_maxdb_max可区分被监控端源自什么机器、什么db,其中hostname_max 可在web页面中选择显示。

其中加入部分如下:

echo `date '+%Y-%m-%d %H:%M'`

PATH=/usr/local/mysql55/bin:$PATH 

#set log prefix

#LOG_PREFIX='/data/mylog/JICC'

#set slow log history file

LOG_HISTORY_FILE=/data/mylog/JICC/slow_query_history_3306.log

HOSTNAME=`/sbin/ifconfig | grep 'inet addr'  | egrep '172.|192.' | awk '{print $2}' | awk -F ":" '{print $2}'`

 

#store history slow_log

cat /tmp/tmp_slow_log >> $LOG_HISTORY_FILE

 

本地被监控端账号连接信息:

# cat anemometer-local.cnf 

[client]

user=anemometer_local

password=Monitor

socket=/tmp/mysql.sock

 

远程监控端Anemometer账号连接信息:

# cat anemometer-server.cnf

[client]

user=anemometer

password=supercurepass

port=3306

host=node1

 

定时分析:

*/1 * * * * /anemometer/scrips/anemometer_collect.sh --interval 59 --history-db-host node1 --defaults-file /anemometer/scrips/anemometer-local.cnf --history-defaults-file /anemometer/scrips/anemometer-server.cnf >> /tmp/log/anemometer.log

 

Author Email:mr_zhengkai@163.com


参考博文:

http://isadba.com/?p=655

 

https://github.com/box/Anemometer

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30201474/viewspace-1839921/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2015-04-10

  • 博文量
    2
  • 访问量
    10954