官方版的部署流程中有几个需要注意的点,在此补充一下
部署master
第一步,yum安装perl-DBD-mysql即可,当然源码编译安装也可以。
第二步,修改myawr.sql,create table前加上use myawr;并修改账号的密码。然后导入至mysql。
第三步,INSERT INTO `myawr_host`(id,host_name,ip_addr,port,db_role,version, running_thread_threshold,times_per_hour) VALUES (1, '10.116.db.2-2-a16.gzyt.zwc.com', '172.16.225.114', 3306, 'master', '5.5.24',10000,0);
部署被监控机
在监控机上添加账号,grant all on *.* to 'superuser'@'localhost' identified by 'xxx';
yum安装perl-DBD-mysql,perl-IO-Socket-SSL,rpm或编译方式安装percona-toolkit。
部署crontab,部署前先手工运行并检查有无报错
*/5 * * * * perl /usr/local/bin/backup_script/myawr.pl -u superuser -p xxx -lh localhost -P 3306 -tu myuser -tp xxx -TP 3312 -th 172.16.225.132 -n eth0 -d sda7 -I 1033313 >> /usr/local/bin/backup_script/myawr_pl.log 2>&1 备注:-tu为远程主机账号 -n -d均为本地参数 -i是自己设定的主机id 00 9 * * * pt-query-digest --user=myuser --password=xxx --port=3312 --review h=172.16.225.132,D=myawr,t=myawr_query_review --history h=172.16.225.132,D=myawr,t=myawr_query_review_history --no-report --filter="\$event->{add_column} = length(\$event->{arg}) and \$event->{hostid}=1033313" /data0/mysqldata/3313/slow_statement.log >> /usr/local/bin/backup_script/pt-query_run.log 2>&1 备注:--user是master的账号,h均为master的ip,hostid是被监控机自身的id
输出报告
在master上执行脚本,然后查看html即可。
perl myawrrpt.pl -u myuser -p xxx -P 3312 -lh 172.16.225.132 -I 1033313 perl myawrsrpt.pl -u myuser -p xxx -P 3312 -lh 172.16.225.132 -I 1033313 -s 4 -s是快照点
注意事项
1.master与被监控的机器的perl版本需保持一致,否则上述crontab会报SQL错误
2.貌似不支持多实例的监控
3.如果mysql.sock不在/var/lib/mysql目录下,需要建立软链接,否则上述crontab会报连不上本地主机
4.superuser权限很大,不知能否缩小。参考文献
MYAWR_README https://github.com/noodba/myawr