Anemometer图形化显示MySQL慢日志的工具搭建使用
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,介绍:Anemometer 是一个图形化显示MySQL慢日志的工具。结合pt-query-digest,Anemometer可以很轻松的帮你去分析慢查询日志,让你很容易就能找到哪些SQL需要优化Thi
千家信息网最后更新 2025年01月22日Anemometer图形化显示MySQL慢日志的工具搭建使用
介绍:Anemometer 是一个图形化显示MySQL慢日志的工具。结合pt-query-digest,Anemometer可以很轻松的帮你去分析慢查询日志,让你很容易就能找到哪些SQL需要优化
This is the Box Anemometer, the MySQL Slow Query Monitor. This tool is used to analyze slow query logs collected from MySQL instances to identify problematic queries
官方网站:https://github.com/box/Anemometer
环境概况
以写此文章时 percona-toolkit最新的版本3.0.10为例
mysql数据库对应版本为5.7.21,二进制安装
http和php均是系统CentOS Linux release 7.4.1708 (Core)自带版本
需要安装的步骤如下:
- percona-toolkit工具的安装
- php web环境的搭建
- 安装Anemometer并配置
- 导入慢查询日志
- 访问界面,查看慢查询
- 其他相关和问题解决
0. 整体的架构
1. percona-toolkit工具的安装
安装目的:pt-query-digest是percona-toolkit里面一个工具,其作用就是分析慢查询日志,将MySQL慢查询日志进行统计并友好的显示出来下载地址:https://www.percona.com/downloads/percona-toolkit/安装方式(rpm): 1、下载包,wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/redhat/7/x86_64/percona-toolkit-3.0.10-1.el7.x86_64.rpm 2、安装依赖,yum install perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Digest-MD5 -y 3、正式安装,rpm -ivh percona-toolkit-3.0.10-1.el7.x86_64.rpm 4、安装完毕验证,pt-query-digest --version pt-query-digest 3.0.10安装方式(tar二进制) 1、下载包,wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/tarball/percona-toolkit-3.0.10_x86_64.tar.gz 2、安装依赖,yum install perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Digest-MD5 -y 3、解压包,tar xf percona-toolkit-3.0.10_x86_64.tar.gz 4、直接使用工具,./percona-toolkit-3.0.10/bin/pt-query-digest --version pt-query-digest 3.0.10
2. php web环境的搭建
安装目的:Anemometer需要依赖LAMP环境LAMP环境的安装: 1、安装apache,yum install httpd httpd-devel -y 2、安装php,yum install php php-mysql php-common php-bcmath php-dba php-cli php-gd php-mbstring php-mcrypt php-devel php-xml php-pdo -y 3、修改时区,vim /etc/php.ini,修改为 date.timezone = PRCLAMP环境的启动: 1、启动,systemctl start httpd 2、关闭,systemctl stop httpd 3、重启,systemctl restart httpd 4、查看,systemctl status httpd
3. 安装Anemometer并配置
1、下载安装: 安装目的:安装Anemometer应用 下载地址:https://github.com/box/Anemometer 下载包:git clone https://github.com/box/Anemometer.git 移动到对应路径:mv Anemometer /var/www/html/anemometer2、目标慢查询数据库上需要授予Anemometer主机对应的权限 1、目的,用于分析目标慢查询数据库explain执行计划 2、授权,grant select on *.* to 'anemometer'@'$ip' identified by '123456';flush privileges;($ip为Anemometer主机对应ip地址)3、修改配置文件增加explain读取用户密码信息 cp conf/sample.config.inc.php conf/config.inc.php vim conf/config.inc.php
4、修改配置文件指向数据源文件,vim conf/datasource_localhost.inc.php,当然也可以直接vim conf/config.inc.php
5、初始化数据源的数据库表的配置,mysql -uroot -p123456 -h227.0.0.1 -P5700 < install.sql,每个datasource源头可以对应不同的数据库database(修改install.sql的内容)
4. 导入慢查询日志
1、慢查询主机推送格式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.logFor 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.log2、慢查询主机推动脚本示例
#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=5700anemometer_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 dayscd $slowquery_dir/usr/bin/find ./ -name 'slowquery_*.log' -mtime +2|xargs rm -rf ;####END####
5. 访问界面,查看慢查询
http://$ip/anemometer/ ($ip为Anemometer主机对应ip地址)
6、其他相关和问题解决
1、对于anemometer的主机上,需要进行慢查询主机hostname和ip的映射(修改/etc/hosts进行配置),目的在于慢查询explain执行计划的目标主机解析 #collect mysql slowquery log into lepus database步骤中,$HOSTNAME:$mysql_port 数据库存取的格式,hostname_max类似这种,cnwangdawei:57002、中文乱码的问题,在#collect mysql slowquery log into lepus database步骤中添加 --charset=utf83、慢查询主机数据库是5.7版本的数据库,可能出现界面ts_cnt不显示,替换percona toolkit为新版本,2.x.x -----> 3.x.x4、表结构和状态字符集显示乱码,添加mysqli的字符集设定,vim /var/www/html/anemometer/lib/QueryExplain.php 新增(194行后增加),$this->mysqli->query("set names utf8");
查询
数据
主机
数据库
日志
环境
配置
工具
目的
地址
版本
步骤
界面
目标
问题
分析
乱码
二进制
字符
字符集
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
世界最大材料数据库
溧水区智能化软件开发创新服务
巴中软件开发销售电话
微信机器人平台软件开发
淘宝付款后找不到服务器
查询数据库中的数据前20行
国家网络安全教育手抄报
绍兴网络技术推荐咨询
服务器兼容普通内存
洛阳软件开发制作
万项科技互联网平台
网络安全报告软件
华勤应用软件开发岗
大专国家网络安全
多光谱数据库
部队网络安全保密教案方案
手机获取服务器数据异常
dns管理器服务器无法启动
网络安全初级教程
智能手机当文件服务器
数据库答题用户结构
滴滴下架的原因设计网络安全
车载软件开发v模型
服务器兼容普通内存
天津通讯软件开发服务创意
软件开发报价不同
数据库中国少数民族语言文学
服务器涉及哪些硬件
腾讯云服务器s5和s4
四川税控盘服务器设置