千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Anemometer中怎么可视化Mysql慢查询日志,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。工作原理:Anemometer:
千家信息网最后更新 2026年11月02日Anemometer中怎么可视化Mysql慢查询日志

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

工作原理:
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慢查询日志问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

查询 日志 可视化 数据 数据库 任务 版本 问题 工作 配置 内容 名称 密码 时区 更多 端口 脚本 项目 帮助 服务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 伟宏互联网科技 互联网通讯科技 互联网科技深圳 易互联网科技有限公司 碳银互联网科技 壹账通互联网科技 恒生科技互联网指数分析 哈尔滨秒房互联网科技有限公司 济南华为互联网科技产业总部基地 哈尔滨新华互联网科技学院 银川新华互联网科技职业技术培训学校图片 常德市电业局互联网科技部 洛阳昕诺飞互联网科技有限公司 河南住房之家互联网科技 皮皮虾互联网科技有限公司 广州燕处互联网科技有限公司 互联网的科技体现在哪里 重庆科技产业互联网有哪些 互联网的黑科技实验室 株洲百竞科技的互联网营销顾问 北京路客互联网科技有限公司 睿民互联网科技 科技互联网创业计划书 互联网科技公司名称 互联网科技博主是什么意思 小米互联网科技园设置 洛阳昕诺飞互联网科技有限公司 世界互联网领先科技成果获奖 国大互联网教育科技有限公司薪资 互联网科技收购价值
0