dba+开源工具:图形化显示MySQL慢日志
Posted DBAplus社群
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dba+开源工具:图形化显示MySQL慢日志相关的知识,希望对你有一定的参考价值。
工具研发者介绍
贺春旸,凡普金科DBA团队负责人,《mysql管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。
工具下载:点击文末【阅读原文】或登录云盘
https://pan.baidu.com/s/1a06GbTc7be5jNtUl84UlOw(提取码: 6q8x)
Slowquery工具搭建背景
由于天兔Lepus慢查询工具是运行在php CI框架里,而不是作为一个独立的web页面接口,所以想直接接入自动化运维平台里,移植代码比较困难,固考虑重构。
参考了开源工具Anemometer图形展示思路,并且把小米Soar工具集成进去,开发在页面上点击慢SQL,就会自动反馈优化建议,从而降低DBA人肉成本,同时也支持自动发送邮件报警功能。
agent客户端慢日志采集分析是结合Percona pt-query-digest工具来实现。
https://github.com/hcymysql/slowquery
安装步骤
需要安装的步骤如下:
1、percona-toolkit工具的安装
2、php web mysql环境的搭建
# yum install httpd mysql php php-mysql -y
3、安装Slowquery并配置
4、导入慢查询日志
5、访问界面,查看慢查询
6、配置邮件报警
工具搭建配置
1、移动到web目录
2、进入slowquery/slowquery_table_schema目录下,导入dbinfo_table_schema.sql和slowquery_table_schema.sql表结构文件到你的运维管理机MySQL里。
注:dbinfo表是保存生产MySQL主库的配置信息。
例:
# mysql -uroot -p123456 sql_db < ./dbinfo_table_schema.sql
# mysql -uroot -p123456 sql_db < ./slowquery_table_schema.sql
录入你要监控的MySQL主库配置信息。
例:
mysql> INSERT INTO sql_db.dbinfo VALUES
(1,'192.168.148.101','test','admin','123456',3306);
例:
$con = mysqli_connect("192.168.148.9","admin","123456","sql_db","3306") or die("数据库链接
错误".mysqli_connect_error());
例:
//-test-dsn soar测试环境,用来分析SQL使用
$test_user='admin';
$test_pwd='123456';
$test_ip='192.168.148.9';
$test_port='3306';
$test_db='test';
5、进入到slowquery/client_agent_script目录下,把slowquery_analysis.sh脚本拷贝到生产MySQL主库上做慢日志分析推送,按照下面的例子做修改:
#!/bin/bash
slowquery_db_host="192.168.148.9"
slowquery_db_port="3306"
slowquery_db_user="admin"
slowquery_db_password="123456"
slowquery_db_database="sql_db"
mysql_client="/usr/local/mysql/bin/mysql"
mysql_host="192.168.148.1"
mysql_port="3306"
mysql_user="admin"
mysql_password="123456"
#改成你的生产MySQL主库慢查询目录和慢查询执行时间(单位秒)
slowquery_dir="/data/mysql/yourDB/slowlog/"
slowquery_long_time=2
slowquery_file=`$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "show
variables like 'slow_query_log_file'"|grep log|awk '{print $2}'`
pt_query_digest="/usr/local/bin/pt-query-digest"
#改成你的生产MySQL主库server_id
mysql_server_id=270
#collect mysql slowquery log into slowquery database
$pt_query_digest --user=$slowquery_db_user --password=$slowquery_db_password --port=$slowquery_db_port
--review h=$slowquery_db_host,D=$slowquery_db_database,t=mysql_slow_query_review --history
h=$slowquery_db_host,D=$slowquery_db_database,t=mysql_slow_query_review_history --no-report
--limit=100% --filter=" \$event->{add_column} = length(\$event->{arg}) and
\$event->{serverid}=$mysql_server_id " $slowquery_file > /tmp/slowquery_analysis.log
##### set a new slow query log ###########
tmp_log=`$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "select
concat('$slowquery_dir','slowquery_',date_format(now(),'%Y%m%d%H'),'.log');"|grep log|sed -n -e '2p'`
#config mysql slowquery
$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "set global
slow_query_log=1;set global long_query_time=$slowquery_long_time;"
$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "set global
slow_query_log_file = '$tmp_log'; "
#delete log before 7 days
cd $slowquery_dir
/usr/bin/find ./ -name 'slowquery_*' -mtime +7|xargs rm -f ;
####END####
定时任务(10分钟一次)。
6、别的就没啥配置的了,直接打开浏览器访问slowquery.php就OK了。
查找某一个库的具体信息:
点击+号,点下面的SQL,会调用Soar反馈优化建议:
Soar有的SQL我发现不能显示Explain,所以我用PHP多显示了一次:
7、慢查询邮件推送报警配置。进入到slowquery/alarm_mail/目录里,修改sendmail.php配置信息。
例:
$smtpserver = "smtp.126.com";//SMTP服务器
$smtpserverport = 25;//SMTP服务器端口
$smtpusermail = "chunyang_he@126.com";//SMTP服务器的用户邮箱
$smtpemailto = 'chunyang_he@126.com';//发送给谁
$smtpuser = "chunyang_he@126.com";//SMTP服务器的用户帐号,注:部分邮箱只需@前面的用户名
$smtppass = "123456";//SMTP服务器的授权码
定时任务(每隔3小时慢查询报警推送一次)。
0 */3 * * * cd /var/www/html/slowquery/alarm_mail;
/usr/bin/php /var/www/html/slowquery/alarm_mail/sendmail.php > /dev/null 2>&1
在线演示:
http://fander.jios.org:8008/slowquery/slowquery.php
下载方式
点击文末【阅读原文】或登录云盘链接:
https://pan.baidu.com/s/1a06GbTc7be5jNtUl84UlOw
输入提取码: 6q8x 即可下载工具脚本
现通过dbaplus社群免费为大家提供Slowquery的下载使用。若使用过程中有任何问题或建议,可随时与我们联系,欢迎大家试用!
更多免费工具&脚本
详情及下载:http://dbaplus.cn/list-142-1.html
近期活动
↓↓点击链接了解活动详情及报名↓↓
站
↓↓↓点这里输入提取码6q8x可下载Slowquery
以上是关于dba+开源工具:图形化显示MySQL慢日志的主要内容,如果未能解决你的问题,请参考以下文章
Anemometer图形化显示MySQL慢日志的工具搭建使用