mysql數(shù)據(jù)庫對應(yīng)版本為5.7.21,二進(jìn)制安裝
http和php均是系統(tǒng)CentOS Linux release 7.4.1708 (Core)自帶版本
需要安裝的步驟如下:
1.percona-toolkit工具的安裝
2.php web環(huán)境的搭建安裝
3.Anemometer并配置
4.導(dǎo)入慢查詢?nèi)罩?/p>
5.訪問界面,查看慢查詢
6.其他相關(guān)和問題解決
0. 整體的架構(gòu)
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
2、慢查詢主機(jī)推動腳本示例
#config anemometer server, the purpose is to push slow query to the remote anemometer server and store it.
anemometer_host="127.0.0.1"
anemometer_user="root"
anemometer_password="123456"
anemometer_port=5700
anemometer_db="slow_query_log"
#config mysql server, the purpose is to get the path of the slow query log.
mysql_client="/usr/local/mysql-5.7.21/bin/mysql"
mysql_user="root"
mysql_password="123456"
mysql_socket="/tmp/mysql_5700.sock"
mysql_port=5700
#config slowqury dir to cd, and then delete the expired slow query file.
slowquery_dir="/data/mysql_$mysql_port/"
#get the path of the slow query log.
slowquery_file=`$mysql_client -u$mysql_user -p$mysql_password -S $mysql_socket -e "show variables like 'slow_query_log_file'"|grep log|awk '{print $2}'`
pt_query_digest="/data/percona-toolkit-3.0.10/bin/pt-query-digest"
#collect mysql slowquery log into lepus database.
$pt_query_digest --user=$anemometer_user --password=$anemometer_password --port=$anemometer_port --review h=$anemometer_host,D=$anemometer_db,t=global_query_review --history h=$anemometer_host,D=$anemometer_db,t=global_query_review_history --no-report --limit=0% --filter=" \\\\$event->{Bytes} = length(\\\\$event->{arg}) and \\\\$event->{hostname}=\\\\"$HOSTNAME:$mysql_port\\\\"" $slowquery_file
#generate a new slow query log, the below is generate a new slow file per hour.
tmp_log=`$mysql_client -u$mysql_user -p$mysql_password -S $mysql_socket -e "select concat('$slowquery_dir','slowquery_',date_format(now(),'%Y%m%d%H'),'.log');"|grep log|sed -n -e '2p'`
#use new slow file to config mysql slowquery
$mysql_client -u$mysql_user -p$mysql_password -S $mysql_socket -e "set global slow_query_log = 0;set global slow_query_log_file = '$tmp_log';"
$mysql_client -u$mysql_user -p$mysql_password -S $mysql_socket -e "set global slow_query_log = 1; "
#delete slow query file before 2 days
cd $slowquery_dir
/usr/bin/find ./ -name 'slowquery_*.log' -mtime 2|xargs rm -rf ;
####END####
5. 訪問界面,查看慢查詢
http://$ip/anemometer/ ($ip為Anemometer主機(jī)對應(yīng)ip地址)
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機(jī)的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn