orzdba是一个监控mysql性能的一个比较好用的perl脚本,是淘宝开源的小工具,下载地址http://code.taobao.org/p/orzdba/src/trunk/
配置过程中除了参照《orzdba工具使用说明》外,还有一些注意事项
我的安装环境是
Red Hat Enterprise Linux Server release 6.3 (Santiago)
5.6.22-log MySQL Community Server (GPL)
安装tcprstat前,先安装包
yum install glibc-static-2.12-1.80.el6.x86_64.rpm
参照
http://my.oschina.net/moooofly/blog/157063安装tcprstat
安装tcprstat过程中,除了前面的那个glibc-static外,还需要安装5个包
yum -y install automake
yum install bison
yum install flex
yum install patch
yum install make
配置tcprstat的权限
chown mysql:mysql -R tcprstat
ln -sf /mysqldata/soft/tcprstat/src/tcprstat /usr/bin/tcprstat
chown root:root /usr/bin/tcprstat
chmod u+s /usr/bin/tcprstat
ll /usr/bin/tcprstat
lrwxrwxrwx 1 root root 37 Feb 11 11:22 /usr/bin/tcprstat -> /mysqldata/soft/tcprstat/src/tcprstat
查看目录/mysqldata/soft/tcprstat/src
[root@open_mysql1 src]# ll
total 1996
-rw-r--r-- 1 mysql mysql 3006 Feb 10 15:48 capture.c
-rw-r--r-- 1 mysql mysql 1057 Feb 10 15:48 capture.h
-rw-r--r-- 1 mysql mysql 4015 Feb 10 15:48 functions.c
-rw-r--r-- 1 mysql mysql 1019 Feb 10 15:48 functions.h
-rw-r--r-- 1 mysql mysql 4325 Feb 10 15:48 local-addresses.c
-rw-r--r-- 1 mysql mysql 1065 Feb 10 15:48 local-addresses.h
-rw-r--r-- 1 mysql mysql 41829 Feb 11 11:07 Makefile
-rw-r--r-- 1 mysql mysql 1800 Feb 10 15:48 Makefile.am
-rw-r--r-- 1 mysql mysql 47676 Feb 11 11:07 Makefile.in
-rw-r--r-- 1 mysql mysql 10157 Feb 10 15:48 output.c
-rw-r--r-- 1 mysql mysql 1315 Feb 10 15:48 output.h
-rw-r--r-- 1 mysql mysql 3970 Feb 10 15:48 process-packet.c
-rw-r--r-- 1 mysql mysql 1139 Feb 10 15:48 process-packet.h
-rw-r--r-- 1 mysql mysql 10411 Feb 10 15:48 stats.c
-rw-r--r-- 1 mysql mysql 1958 Feb 10 15:48 stats.h
-rw-r--r-- 1 mysql mysql 7845 Feb 10 15:48 stats-hash.c
-rw-r--r-- 1 mysql mysql 1480 Feb 10 15:48 stats-hash.h
-rwsr-xr-x 1 root root 291086 Feb 11 11:08 tcprstat
-rw-r--r-- 1 mysql mysql 5970 Feb 10 15:48 tcprstat.c
-rw-r--r-- 1 mysql mysql 10720 Feb 11 11:07 tcprstat-capture.o
-rw-r--r-- 1 mysql mysql 10272 Feb 11 11:07 tcprstat-functions.o
-rw-r--r-- 1 mysql mysql 1339 Feb 10 15:48 tcprstat.h
-rw-r--r-- 1 mysql mysql 13568 Feb 11 11:08 tcprstat-local-addresses.o
-rw-r--r-- 1 mysql mysql 23312 Feb 11 11:08 tcprstat-output.o
-rw-r--r-- 1 mysql mysql 16072 Feb 11 11:08 tcprstat-process-packet.o
-rwxr-xr-x 1 mysql mysql 1258608 Feb 11 11:08 tcprstat-static
-rw-r--r-- 1 mysql mysql 10720 Feb 11 11:08 tcprstat_static-capture.o
-rw-r--r-- 1 mysql mysql 10272 Feb 11 11:08 tcprstat_static-functions.o
-rw-r--r-- 1 mysql mysql 13568 Feb 11 11:08 tcprstat_static-local-addresses.o
-rw-r--r-- 1 mysql mysql 23312 Feb 11 11:08 tcprstat_static-output.o
-rw-r--r-- 1 mysql mysql 16072 Feb 11 11:08 tcprstat_static-process-packet.o
-rw-r--r-- 1 mysql mysql 16056 Feb 11 11:08 tcprstat_static-stats-hash.o
-rw-r--r-- 1 mysql mysql 27232 Feb 11 11:08 tcprstat_static-stats.o
-rw-r--r-- 1 mysql mysql 18576 Feb 11 11:08 tcprstat_static-tcprstat.o
-rw-r--r-- 1 mysql mysql 16056 Feb 11 11:08 tcprstat-stats-hash.o
-rw-r--r-- 1 mysql mysql 27232 Feb 11 11:08 tcprstat-stats.o
-rw-r--r-- 1 mysql mysql 18576 Feb 11 11:07 tcprstat-tcprstat.o
普通的yum,rpm方式安装version模块会报错,用如下安装方式解决
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum -y install perl-CPAN
yum install perl-Params-Validate
perl -MCPAN -e 'install "Module::Build"'
perl -MCPAN -e 'install "File::Lockfile"'
执行上面命令后,应该安装好了version, Class-Data-Inheritable, Module-Build, File::Lockfile等模块,可以用脚本查看是否安装成功
$ cat check_module.pl
#!/usr/bin/perl
use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new();
print join " ",$inst->modules();
print " ";
对于orzdba脚本,在160行修改root密码,才能运行orzdba脚本,修改后样子如下:
my $MYSQL = qq{mysql -s --skip-column-names -uroot -P$port -pLisx_new_123 };
改成这样后,会出现mysql5.6的明文密码告警:Warning: Using a password on the command line interface can be insecure.我是如下解决的
弄一个免密码的本地可以访问的管理员账户,用这个账户监控?
这个方案也不行,因为每一行都要回车确认
我的解决方案,在mysql的根目录新建隐藏文件,权限为400
-bash-4.1$ cat .my.cnf
[client]
password=lisx123
user=dbalisx
并且修改orzdba脚本的第160行处
my $MYSQL = qq{mysql -s --skip-column-names -udbalisx -P$port };
好了,可以痛快的使用orzdba脚本了。