本文共 5012 字,大约阅读时间需要 16 分钟。
Box Anemometer 安装部署
针对多台数据库慢查询日志,可使用Box Anemometer工具集中在web展示慢日志。
Anemometer工具,集合了php、apache、MySQL,将慢日志使用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_review、global_query_review_history
建Anemometer数据库账号,并授权:
> Grant All on `slow_query_log`.* TO 'anemometer'@'%' identified by ‘supersecurepass’;
Flush privileges;
5. 安装Percona Toolkit,并测试Anemometer配置是否成功
# wget
# 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_max、db_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
参考博文:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30201474/viewspace-1839921/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30201474/viewspace-1839921/
转载地址:https://blog.csdn.net/ciyou05587/article/details/100291245 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!