Anemometer图形化显示MySQL慢日志的工具搭建及使用的实例解析


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

#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=5700

anemometer_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 days

cd $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:5700
2、中文乱码的问题,在#collect mysql slowquery log into lepus database步骤中添加 --charset=utf8
3、慢查询主机数据库是5.7版本的数据库,可能出现界面ts_cnt不显示,替换percona toolkit为新版本,2.x.x -----> 3.x.x
4、表结构和状态字符集显示乱码,添加mysqli的字符集设定,vim /var/www/html/anemometer/lib/QueryExplain.php
新增(194行后增加),$this->mysqli->query("set names utf8");

以上就是Anemometer图形化显示MySQL慢日志的工具搭建及使用的实例解析的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

mysql如何计算相邻两行某列差值

redis如何与mysql保持一致性

mysql 字符串拆分操作(含分隔符的字符串截取)

mysql索引详细解析

如何源码安装mysql数据库?

mysql启动创建不了pid是什么原因

sql 中 having 的用法?

mysql可以一次输入多行记录么

mysql实现主从数据库搭建的方法详解

mysql 十大常用字符串函数详解

更多相关阅读请进入《Anemometer》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...