介紹:Anemometer 是一個圖形化顯示MySQL慢日誌的工具。結合pt-query-digest,Anemometer可以很輕鬆的幫你分析慢查詢日誌,讓你很容易就能找到哪些SQL需要優化
This is the Box Anemometer, the MySQL Slow Query Monitor. This tool is used to analyze slow query logs collected from MySQL instances to identify problematic queries
相關學習推薦:PHP編程從入門到精通
環境概況
#以寫此文章時percona-toolkit最新的版本3.0.10為例
mysql資料庫對應版本為5.7.21,二進位安裝
http和php皆是系統CentOS Linux release 7.4.1708 (Core)自帶版本
需要安裝的步驟如下:
#1.percona-toolkit工具的安裝
2.php web環境的建置安裝
3.Anemometer並設定
4.匯入慢查詢日誌
#5.存取介面,查看慢查詢
6.其他相關和問題解決
#0.整體的架構
1. percona-toolkit工具的安裝
安裝目的:pt-query-digest是percona -toolkit裡面一個工具,其作用是分析慢查詢日誌,將MySQL慢查詢日誌進行統計並友好的顯示出來
下載地址:https://www.percona.com/downloads/ percona-toolkit/
安裝方式(rpm):
#1、下載包,wget https://www.percona.com/ downloads/percona-toolkit/3.0.10/binary/redhat/7/x86_64/percona-toolkit-3.0.10-1.el7.x86_64.rpm
2、安裝依賴, yum install perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Digest-MD5 -y
3、正式安裝,rpm -ivh percona-toolkit-3.0. 10-1.el7.x86_64.rpm
4、安裝完成驗證,pt-query-digest --version pt-query-digest 3.0.10
安裝方式(tar二進位)
1、下載包,wget https://www.percona.com/downloads/percona-toolkit /3.0.10/binary/tarball/percona-toolkit-3.0.10_x86_64.tar.gz
2、安裝依賴,yum install perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Digest-MD5 -y<br>
3、解壓縮包,tar xf percona-toolkit-3.0.10_x86_64.tar.gz
4、直接使用工具, ./percona-toolkit-3.0.10/bin/pt-query-digest --version<br>pt-query-digest 3.0.10
2. php web環境的搭建
#安裝目的:Anemometer需要依賴
LAMP環境LAMP環境的安裝:
1、安裝apache,yum install httpd httpd-devel -y
2、安裝php,yum install php php-mysql php-common php-bcmath php-dba php-cli php-gd php-mbstring php-mcrypt php-devel php-xml php-pdo -y<br>
3、修改時區,vim /etc/php.ini
,修改為 date.timezone = PRC
LAMP環境的啟動:
1、啟動,systemctl start httpd
2、關閉,systemctl stop httpd
3、重啟,systemctl restart httpd
4、查看,systemctl status httpd
3. 安裝Anemometer並設定
1、下載安裝:
安裝目的:安裝Anemometer應用程式
下載位址:https://github.com/box/Anemometer
#下載套件:
git clone https://github.com/box/Anemometer.git
移動到對應路徑:
mv Anemometer /var/www/html/anemometer2、目標慢查詢資料庫上需要授予Anemometer主機對應的權限
1、目的,用於分析目標慢查詢資料庫explain執行計劃2、授權,
grant select on *. * to 'anemometer'@'$ip' identified by '123456';flush privileges
3、修改設定檔增加explain讀取使用者密碼資訊 cp conf/sample.config.inc.php conf/config.inc.php vim conf/config.inc.php\\
##4、修改設定文件指向資料來源文件,vim conf/datasource_localhost.inc.php,當然也可以直接vim conf/config.inc.php
#########5、初始化数据源的数据库表的配置,mysql -uroot -p123456 -h127.0.0.1 -P5700 < install.sql,每个datasource源头可以对应不同的数据库database(修改install.sql的内容)
4. 导入慢查询日志
1、慢查询主机推送格式
f6780ecd3ff99cbd2c96acce639108725. 访问界面,查看慢查询
http://$ip/anemometer/ ($ip为Anemometer主机对应ip地址)
6、其他相关和问题解决
1、对于anemometer的主机上,需要进行慢查询主机hostname和ip的映射(修改/etc/hosts进行配置),目的在于慢查询explain执行计划的目标主机解析
#collect mysql slowquery log into lepus database步骤中,$HOSTNAME:$mysql_port
数据库存取的格式,hostname_max类似这种,cnwangdawei:5700
2、中文乱码的问题,在#collect mysql slowquery log into lepus database步骤中添加 --charset=utf8
3、慢查询主机数据库是5.7版本的数据库,可能出现界面ts_cnt不显示,替换percona toolkit为新版本,2.x.x -----> 3.x.x
4、表结构和状态字符集显示乱码,添加mysqli的字符集设定,vim /var/www/html/anemometer/lib/QueryExplain.php
新增(194行后增加),$this->mysqli->query("set names utf8");
以上是Anemometer圖形化顯示MySQL慢日誌的工具建構及使用的實例解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!