开源MySQLMTOP配置数据库慢查询分析功能

1.开启MySQL慢查询日志

mysql> set global slow_query_log=on;
mysql> set global long_query_time=1;
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow_query.log';

2.安装percona-toolkit工具

mysqlmtop目前对慢查询的分析和采集是基于percona-toolkit工具,所以需要在被监控的数据库服务器上安装percona-toolkit工具。
(目前已经测试过的版本是2.2.6,其他版本未做测试,可以自己测试使用)
# yum -y install perl-DBI
# yum -y install perl-DBD-MySQL
# yum install perl-IO-Socket-SSL
# wget www.mtop.cc/software/percona-toolkit-2.2.6-1.noarch.rpm
# rpm -ivh percona-toolkit-2.2.6-1.noarch.rpm

3.部署慢查询采集计划任务

在被监控数据库服务器上,部署计划任务,定时将慢查询日志的数据存储到监控机的数据库。为了避免服务器过多引起单表数据过多引起性能问题,我们对慢查询的存储表做了分表,每个数据库主机会将自己的慢查询存储到两张表里。存储表规则为表名加server_id。例如server_id为1的主机会将数据存储到mysql_slow_query_review_1和mysql_slow_query_review_history_1 两张表里。每个主机的server_id可以在主机管理里面查询。

3.1查询server_id

每个主机对应一个server_id,进入管理中心-主机管理可以查询主机的server_id

server_id_find.jpg

3.2按照查询的server_id在该被监控主机部署计划任务

# crontab -l
01 */1 * * * /usr/bin/pt-query-digest --user=mtop_user --password=password --port=3306 --review h=121.199.21.12,D=mysqlmtop,t=mysql_slow_query_review_80 --history h=121.199.21.12,D=mysqlmtop,t=mysql_slow_query_review_history_80 --no-report --limit=0% /usr/local/mysql/data/slow_query.log > /dev/null 2>&1

备注:可手动执行以上脚本一次,然后在监控机检查表是否创建成功,正常情况会自动创建mysql_slow_query_review_80和mysql_slow_query_review_history_80两张表。

其次该计划任务需要在监控机创建慢查询存储表并维护数据,请确保有足够的权限。如果没有权限,请在监控机用如下实例命令进行授权。

mysql> grant select,delete,update,insert,index,create on mysqlmtop.* to 'mtop_user'@'%' identified by 'password';

3.3配置完以上采集任务后,在主机管理里面启用对应主机的慢查询分析功能

slow_on1.jpg

可以看到已经有该主机的慢查询数据记录

slow_on2.jpg

slow_on3.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值