云网牛站
所在位置:首页 > Linux软件 > 在CentOS中下载安装系统监控工具OrzDBA

在CentOS中下载安装系统监控工具OrzDBA

2018-07-10 20:06:13作者:hi-linux稿源:linux站

OrzDBA是淘宝DBA团队发布的监控脚本,它使用perl开发并能完成对linux系统和MySql相关指标的实时监控,本文将介绍在CentOS下安装OrzDBA的方法。

MYSQL这些监控指标的来源和mysqlreport等工具类似,都是通过show variables列出经常关注的核心变量,通过show global status列出相关MYSQL状态信息。这个监控工具比较有特色,把系统信息和数据库信息一起监控,就是安装有点麻烦。

项目地址

 

安装

使用SVN下载OrzDBA的项目,其中包含了文档和依赖的包文件。

1.下载源码

$ svn co http://code.taobao.org/svn/orzdba/trunk

$ chmod +x orzdba

$ cp orzdba  /usr/bin/orzdba

2.安装tcprstat

orzdba依赖于tcprstat,需先安装tcprstat。

$ wget http://github.com/downloads/Lowercases/tcprstat/tcprstat-static.v0.3.1.x86_64

$ cp tcprstat-static.v0.3.1.x86_64 /usr/bin/tcprstat

$ chmod u+sx /usr/bin/tcprstat

3.编辑orzdba源码

在源码162行左右把/usr/bin/tcprstat加入默认读取的位置

运行:$ vim orzdba

my $TCPRSTAT = "/usr/bin/tcprstat --no-header -t 1 -n 0 -p $port";

4.安装的perl依赖包

$ yum install perl-Test-Simple.x86_64 perl-Time-HiRes perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-DBD-MySQL perl-DBI

5.安装version模块

$ wget http://search.cpan.org/CPAN/authors/id/J/JP/JPEACOCK/version-0.99.tar.gz

$ tar -zxvf version-0.99.tar.gz

$ cd version-0.99

$ perl Makefile.PL

$ make 

$ make test

$ make install

6.安装Module-Build模块

$ wget http://search.cpan.org/CPAN/authors/id/K/KW/KWILLIAMS/Module-Build-0.31.tar.gz 

$ tar -zxvf Module-Build-0.31.tar.gz 

$ cd Module-Build-0.31 

$ perl Build.PL 

$ ./Build 

$ ./Build test 

$ ./Build install

7.安装File::Lockfile模块

$ wget http://search.cpan.org/CPAN/authors/id/G/GL/GLORYBOX/File-Lockfile-v1.0.5.tar.gz

$ tar -zxvf File-Lockfile-v1.0.5.tar.gz 

$ cd File-Lockfile-v1.0.5 

$ perl Build.PL

$ perl ./Build

$ perl ./Build test

$ perl ./Build install

8.安装Class-Data-Inheritable模块

$ wget http://search.cpan.org/CPAN/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz

$ tar -zxvf Class-Data-Inheritable-0.08.tar.gz 

$ cd Class-Data-Inheritable-0.08 

$ perl Makefile.PL 

$ make 

$ make test 

$ make install

安装完如提示:Usage: Socket::inet_ntoa(ip_address_sv) at ./orz line 477,因主机名不能解析,需要将IP和主机名写到/etc/hosts文件。

$ vi /etc/hosts

127.0.0.1   mike

注:SVN中签出包含一个orzdba_rt_depend_perl_module.tar.gz文件,这个文件也包含以上4个PERL模块的源代码。

 

配置

1.配置登陆密码

在代码的160行左右,配置自己的MySQL验证信息:username、password、socket、host、port

针对MYSQL 5.6以下版本:

$ grep -n 'my $MYSQL' orzdba

160:my $MYSQL    = qq{mysql -s --skip-column-names -uroot -pyoon -h127.0.0.1 -P$port };

针对MYSQL 5.6以上版本:

密码安全问题解决。

$ mysql -uroot -p'xxxxx' -s

Warning: Using a password on the command line interface can be insecure.

(db)root@localhost [(none)]>

MySQL加强了密码安全,如果在命令行输入密码,会出现这个警告。但这个警告会影响orzdba展示页面,解决这个烦人的警告可以通过下面两个方法:

1].把数据库密码写到my.cnf配置文件里面

2].同样利用mysql5.6的新特性mysql_config_edit可以用来加密用户的密码,消除警告(推荐)

$ mysql_config_editor set --login-path=login --user=root --password

$ mysql_config_editor print --all

[login] 

user = root 

password = *****

host = localhost

#加密过后的文件是二进制文件不能够直接读出

$ cat .mylogin.cnf    

$ mysql --login-path=login -s

(db)root@localhost [(none)]>

2.修改orzdba

运行:$ vim orzdba

#找到160行

gg 160

my $MYSQL    = qq{mysql -s --skip-column-names -uroot -P$port };

修改为

my $MYSQL    = qq{mysql --login-path=login -s --skip-column-names };

保存,大功告成。

 

使用

1.使用方法可用帮助命令查看:

运行:$ orzdba -h

Info  :

Created By zhuxu@taobao.com

Usage :

Command line options :

-h,--help           Print Help Info. 

-i,--interval       Time(second) Interval.  

-C,--count          Times. 

-t,--time           Print The Current Time.

-nocolor            Print NO Color.

-l,--load           Print Load Info.

-c,--cpu            Print Cpu  Info.

-s,--swap           Print Swap Info.

-d,--disk           Print Disk Info.

-n,--net            Print Net  Info.

-P,--port           Port number to use for mysql connection(default 3306).

-S,--socket         Socket file to use for mysql connection.

-com                Print MySQL Status(Com_select,Com_insert,Com_update,Com_delete).

-hit                Print Innodb Hit%.

-innodb_rows        Print Innodb Rows Status(Innodb_rows_inserted/updated/deleted/read).

-innodb_pages       Print Innodb Buffer Pool Pages Status(Innodb_buffer_pool_pages_data/free/dirty/flushed)

-innodb_data        Print Innodb Data Status(Innodb_data_reads/writes/read/written)

-innodb_log         Print Innodb Log  Status(Innodb_os_log_fsyncs/written)

-innodb_status      Print Innodb Status from Command: 'Show Engine Innodb Status'

(history list/ log unflushed/uncheckpointed bytes/ read views/ queries inside/queued)

-T,--threads        Print Threads Status(Threads_running,Threads_connected,Threads_created,Threads_cached).

-rt                 Print MySQL DB RT(us).

-B,--bytes          Print Bytes received from/send to MySQL(Bytes_received,Bytes_sent).

-mysql              Print MySQLInfo (include -t,-com,-hit,-T,-B).

-innodb             Print InnodbInfo(include -t,-innodb_pages,-innodb_data,-innodb_log,-innodb_status)

-sys                Print SysInfo   (include -t,-l,-c,-s).

-lazy               Print Info      (include -t,-l,-c,-s,-com,-hit). 

-L,--logfile        Print to Logfile.

-logfile_by_day     One day a logfile,the suffix of logfile is 'yyyy-mm-dd'; and is valid with -L.

Sample :

shell> nohup ./orzdba -lazy -d sda -C 5 -i 2 -L /tmp/orzdba.log  > /dev/null 2>&1 &

2.监控系统和MYSQL各项指标

$ orzdba  -lazy -rt -S /var/lib/mysql/mysql.sock

在CentOS中下载安装系统监控工具OrzDBA

count:此间隔内完成的请求数量

avg:此间隔内所有完成的请求,响应的平均时间

95_avg:此间隔内95%的请求量的平均响应时间(单位微秒),该值较能体现MySQL Server查询的平均响应时间

3.监控InnoDB的各项指标

$ orzdba -innodb -S /var/lib/mysql/mysql.sock

文档中给出[innodb请求命中率]的计算公式为

Hit% =

(Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads)

/ Innodb_buffer_pool_read_requests * 100%

3.监控MySQL Server性能

$ orzdba -mysql -S /var/lib/mysql/mysql.sock

在CentOS中下载安装系统监控工具OrzDBA

显示出数据库常用变量值、insert/update/delete/select的统计值、innodb请求命中率、线程状态、mysql收发字节数

4.Linux系统信息的监控

$ orzdba -sys

在CentOS中下载安装系统监控工具OrzDBA

显示出了当前负载状况、CPU使用状况、swap状况

5.查询数据库节点主机cpu,每两秒显示一次,共显示10次,将结果放到cpu.log中

$ orzdba -c -i 2 -C 10 -L cpu.log

在CentOS中下载安装系统监控工具OrzDBA

 

相关主题

CentOS下使用MyTop实时监控MySQL

精选文章
热门文章