快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Anemometer中怎么可视化Mysql慢查询日志

Anemometer中怎么可视化MySQL慢查询日志,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站建设、回民网络推广、微信小程序开发、回民网络营销、回民企业策划、回民品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供回民建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

工作原理:
Anemometer: 实现慢查询sql可视化
pt-query-digest :抽取慢查询日志
/etc/my.cnf 开启慢查询

#slow_query 
log_queries_not_using_indexes=1
long_query_time=1
slow_query_log=1


部署架构(单机部署):
httpd 服务【相当于是tomcat 的用途,去为Anemometer提供服务】
pt-query-digest 慢查询日志抓取导入【从慢查询日志里面提取慢sql 写入到Anemometer 自身的数据库中,后面会将它写入定时任务中】
Anemometer 可视化展示【安装目录:/var/www/htm】

搭建Anemometer框架
前置工作:
1.关闭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.确保时间准确(非必须)
yum install -y ntp ntpdate
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改时区为东8区
cp: overwrite `/etc/localtime'? y
service ntpdate start
[root@Master01 ~]# date -R
Tue, 30 Jan 2018 14:45:34 +0800#+0800是东8区
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以上的版本,否则报错;
安装环境的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.修改配置,启动php(不修改时区的话,启动httpd时会报500的错)
vim /etc/php.ini
date.timezone = Asia/Shanghai
service php-fpm start


5.初步配置anemometer:
cp -r anemometer /var/www/html/ #anemometer项目程序自行下载
vim /etc/httpd/conf/httpd.conf
添加ServerName 192.168.214.140:80(anemometer的IP,如果不采用80端口,需要在这里配上其他端口号)


6.执行建库脚本:
cd /var/www/html/anemometer
mysql -uroot -p密码 < install.sql   #当前主机安装了Anemometer需要使用的mysql 数据库
备注:为了简单直接使用了root 账号进行授权


7.进一步配置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'] 三处的内容】

$conn['user'] = 'anemometer';                                      
$conn['password'] = '密码';
修改第二处:
vim /var/www/html/anemometer/conf/datasource_localhost.inc.php
$conf['datasources']['localhost'] = array(
'host' => '192.168.214.140', #根据实际情况进行修改
'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.启动apache:
service httpd start
打开刚才发布的网页http://192.168.214.140/anemometer

9.添加定时任务:
定时任务脚本如下:
[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 # 项目名称
hostip=${current_host} #target db IP
#db_name=$3 #数据库名称, this can be ignored
#慢查询文件的绝对路径
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  #每五分钟运行一次

10. 登录后即可看到慢查询对应的数据库的慢sql 

Anemometer中怎么可视化Mysql慢查询日志

关于Anemometer中怎么可视化Mysql慢查询日志问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


文章题目:Anemometer中怎么可视化Mysql慢查询日志
文章分享:http://6mz.cn/article/ppighj.html

其他资讯