1. 程式人生 > >十分鐘部署Anemometer作為Mysql慢查詢可視化系統

十分鐘部署Anemometer作為Mysql慢查詢可視化系統

建議 mce 抽取 bsp nta empty gin http服務 run

前言

采用Anemometer將Mysql慢查詢日誌可視化,可以更便捷的查詢慢查詢日誌,並根據時間戳進行歷史查詢。如下是單機版Anemometer部署的演示,實際應用中,為安全起見,建議把anemometer 分開到另外的機器上。

工作原理

Anemometer: 實現日誌可視化

pt-query-digest :抽取慢查詢日誌

技術分享圖片

環境信息

Ip功能軟件信息安裝路徑操作系統
192.168.9.11http服務httpd-2.2.15-54yum缺省路徑centos6.9
慢查詢日誌抓取導入pt-query-digestrpm缺省路徑
慢查詢日誌切割logrotateyum缺省路徑
可視化展示Anemometer/var/www/html

安裝步驟

1.安裝apache

yum install httpd -y

2.安裝pt-query-digest並設置抓取腳本

yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL -y

#需要安裝perl-TermReadKey否則會報錯
wget http://pkgs.repoforge.org/perl-TermReadKey/perl-TermReadKey-2.30-1.el3.rf.x86_64.rpmrpm -ivh perl-TermReadKey-2.30-1.el3.rf.x86_64.rpm

wget https://www.percona.com/downloads/percona-toolkit/2.2.20/RPM/percona-toolkit-2.2.20-1.noarch.rpmrpm -ivh percona-toolkit-2.2.20-1.noarch.rpm

vim /home/shell_script/slow_db_export.sh
#!/bin/bash/usr/bin/pt-query-digest --user=anemometer --password=123456 --review h=192.168.9.11,D=slow_query_log,t=global_query_review --history h=192.168.9.11,
D=slow_query_log,t=global_query_review_history --no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /usr/local/mysql/data/mysql.slow

chmod -R 755 /home/shell_script/slow_db_export.sh

3.安裝logrotate並配置每日切割mysql慢查詢日誌

yum install logrotate -y
vim /etc/logrotate.d/mysql/usr/local/mysql/data/mysql.slow {
create 660 mysql mysql
dateext
notifempty
daily
maxage 60rotate 30missingok
compress
olddir /usr/local/mysql/old_log
postrotate
##########run if mysqld is running
if /usr/local/mysql/bin/mysqladmin ping -h172.27.127.12 -uroot -p'Hs!hs8989' -S /usr/local/mysql/mysql.sock &>/dev/null; then
/usr/local/mysql/bin/mysqladmin flush-logs -h172.27.127.12 -uroot -p'Hs!hs8989' -S /usr/local/mysql/mysql.sock

fi
endscript
}
chmod -R 755 /etc/logrotate.d/mysql

4.將pt-query-digest腳本和logrotate切割腳本放入crontab中

#############23點55分-分割導入當天的慢查詢數據#####################
55 23 * * *  /home/shell_script/slow_db_export.sh
###############23點59分-切割慢查詢日誌#############
59 23 * * * root ( /usr/sbin/logrotate -f /etc/logrotate.d/mysql)

5.安裝Anemometer

cd /var/www/htmlgit clone https://github.com/box/Anemometer.git anemometer&&cd anemometer#創建表和用戶名
# mysql -uroot -proot < install.sql
# mysql-uroot -proot -e "grant ALL ON slow_query_log.* to 'anemometer'@'localhost' IDENTIFIED BY '123456';"
# mysql -uroot -proot -e "grant SELECT ON *.* to 'anemometer'@'localhost' IDENTIFIED BY '123456';"
# mysql -uroot -proot -e "flush privileges;"

6.導入日誌並打開頁面測試(http://192.168.9.11/amemometer

#執行剛剛編輯的slow_db_export.sh腳本
./home/shell_script/slow_db_export.sh

#重啟apache
service httpd restart

技術分享圖片

至此,已經通過Anemometer實現了mysql慢查詢日誌可視化功能。


十分鐘部署Anemometer作為Mysql慢查詢可視化系統