Anemometer中怎么可視化MySQL慢查詢?nèi)罩荆槍?duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、回民網(wǎng)絡(luò)推廣、微信小程序開發(fā)、回民網(wǎng)絡(luò)營(yíng)銷、回民企業(yè)策劃、回民品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供回民建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
工作原理:
Anemometer: 實(shí)現(xiàn)慢查詢sql可視化
pt-query-digest :抽取慢查詢?nèi)罩?br/>/etc/my.cnf 開啟慢查詢
【
#slow_query
log_queries_not_using_indexes=1
long_query_time=1
slow_query_log=1
】
部署架構(gòu)(單機(jī)部署):
httpd 服務(wù)【相當(dāng)于是tomcat 的用途,去為Anemometer提供服務(wù)】
pt-query-digest 慢查詢?nèi)罩咀ト?dǎo)入【從慢查詢?nèi)罩纠锩嫣崛÷齭ql 寫入到Anemometer 自身的數(shù)據(jù)庫(kù)中,后面會(huì)將它寫入定時(shí)任務(wù)中】
Anemometer 可視化展示【安裝目錄:/var/www/htm】
搭建Anemometer框架
前置工作:
1.關(guān)閉selinux
setenforce 0
sed -i 's/enforcing/disabled/g' /etc/sysconfig/selinux
2.打開防火墻的443,13306,80端口
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 13306 -j ACCEPT
service iptables save
3.確保時(shí)間準(zhǔn)確(非必須)
yum install -y ntp ntpdate
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改時(shí)區(qū)為東8區(qū)
cp: overwrite `/etc/localtime'? y
service ntpdate start
[root@Master01 ~]# date -R
Tue, 30 Jan 2018 14:45:34 +0800#+0800是東8區(qū)
chkconfig ntpdate on
部署工作
1.安裝核心組件pt_query_digest(2.2.14版本)
yum install perl-DBI perl-DBD perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey -y
wget --no-check-certificate https://www.percona.com/downloads/percona-toolkit/2.2.14/RPM/percona-toolkit-2.2.14-1.noarch.rpm
yum install -y percona-toolkit-2.2.14-1.noarch.rpm
2.安裝php
注意php必須是5.33以上的版本,否則報(bào)錯(cuò);
安裝環(huán)境的OS是CentOS6.8,所以直接yum安裝的php就是5.33版本
yum install -y php php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm php-dba
3.安裝httpd
yum install -y httpd
4.修改配置,啟動(dòng)php(不修改時(shí)區(qū)的話,啟動(dòng)httpd時(shí)會(huì)報(bào)500的錯(cuò))
vim /etc/php.ini
date.timezone = Asia/Shanghai
service php-fpm start
5.初步配置anemometer:
cp -r anemometer /var/www/html/ #anemometer項(xiàng)目程序自行下載
vim /etc/httpd/conf/httpd.conf
添加ServerName 192.168.214.140:80(anemometer的IP,如果不采用80端口,需要在這里配上其他端口號(hào))
6.執(zhí)行建庫(kù)腳本:
cd /var/www/html/anemometer
mysql -uroot -p密碼 < install.sql #當(dāng)前主機(jī)安裝了Anemometer需要使用的mysql 數(shù)據(jù)庫(kù)
備注:為了簡(jiǎn)單直接使用了root 賬號(hào)進(jìn)行授權(quán)
7.進(jìn)一步配置anemometer:
cd /var/www/html/anemometer/conf/
修改第一處:
cp sample.config.inc.php config.inc.php
vim /var/www/html/anemometer/conf/config.inc.php
【$conf['datasources']['mysql56'],$conf['datasources']['localhost_history'],$conf['plugins'] 三處的內(nèi)容】
$conn['user'] = 'anemometer';
$conn['password'] = '密碼';
修改第二處:
vim /var/www/html/anemometer/conf/datasource_localhost.inc.php
$conf['datasources']['localhost'] = array(
'host' => '192.168.214.140', #根據(jù)實(shí)際情況進(jìn)行修改
'port' => 3306,
'db' => 'slow_query_log',
'user' => 'backend',
'password' => 'backend',
'tables' => array(
'global_query_review' => 'fact',
'global_query_review_history' => 'dimension'
),
'source_type' => 'slow_query_log'
);
8.啟動(dòng)apache:
service httpd start
打開剛才發(fā)布的網(wǎng)頁(yè)http://192.168.214.140/anemometer
9.添加定時(shí)任務(wù):
定時(shí)任務(wù)腳本如下:
[root@localhost test]# more fetch-slowlog.sh
#!/bin/sh
# turn on debug
set -x
current_host=`/usr/sbin/ip add show eth0 | grep inet | grep -v "inet6" | awk '{print $2}' | cut -d / -f 1`
mysql_cmd=" mysql -uroot -proot -NB "
project=azure-qa-qyd # 項(xiàng)目名稱
hostip=${current_host} #target db IP
#db_name=$3 #數(shù)據(jù)庫(kù)名稱, this can be ignored
#慢查詢文件的絕對(duì)路徑
slowfile=`$mysql_cmd -e "show variables like 'slow_query_log_file'" 2>/dev/null | cut -f2`
# the db host where review and history of slow log store
db_host=192.168.214.140
db_port=3306
pt-query-digest --user=root --password=root \
--review h=${db_host},P=${db_port},D=slow_query_log,t=global_query_review \
--history h=${db_host},P=${db_port},D=slow_query_log,t=global_query_review_history \
--charset=utf8 \
--no-report --limit=0\% \
--filter="\$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"${project}\" and \$event->{hostip}=\"${hostip}\" " \
"${slowfile}"
#clear slow log
echo > $slowfile
$mysql_cmd -e "flush slow logs"
echo "slow log processed!"
[root@localhost test]# crontab -l
*/5 * * * * /opt/test/fetch-slowlog.sh > /tmp/fetch-slowlog.log 2>&1 #每五分鐘運(yùn)行一次
10. 登錄后即可看到慢查詢對(duì)應(yīng)的數(shù)據(jù)庫(kù)的慢sql
http://weahome.cn/article/ppighj.html