Linux主機和MySQL實時監控工具-orzdba

代碼SVN地址:

http://code.taobao.org/p/orzdba/src/trunk/

 

說明:

Perl腳本,用於對Linux主機和MySQL相關指標進行實時監控。

工具主要有如下參數:

 

下面分別說明一下:

1、查看Linux主機指標

 

-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.-sys                Print SysInfo   (include -t,-l,-c,-s)

這些指標的數據都來自/proc目錄下的相關係統元數據:

LOAD : /proc/loadavg

CPU  : /proc/stat

SWAP : /proc/vmstat

DISK : /proc/diskstats

NET  : /proc/net/dev

其中,查看DISK(-d)和NET(-n)需要帶具體的設備名(具體可以查看/proc/diskstats和/proc/net/dev中的設備或者可以取自iostat和sar -n DEV)。

 

 

2、查看MySQL指標

通過show variables列出經常關注的核心變量。

通過show global status列出相關MYSQL status信息。

-com

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

Print Innodb Hit%.Hit% : (Innodb_buffer_pool_read_requests  Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * 100%-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)

另外,-innodb_status的信息來自如下:

 

 

其中:

log unflushed = Log sequence number – Log flushed up to

uncheckpointed bytes = Log sequence number – Last checkpoint at

-T,–threads

Print Threads Status(Threads_running,Threads_connected,Threads_created,Threads_cached).-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)

 

3、查看MySQL的響應時間

 

-rt                 Print MySQL DB RT(us).

通過調用tcprstat來監控MySQL的響應時間。

-rt中列的具體意義參考http://www.percona.com/docs/wiki/tcprstat:start 中的解釋。

 

 

-rt參數依賴:

(1)需要安裝tcprstat

由於安裝後運行tcprstat需要root用戶,或者sudo進行,可以通過如下命令來避免:

$sudo chown root:root /usr/bin/tcprstat

$sudo chmod u+s /usr/bin/tcprstat

$ll /usr/bin/tcprstat

-rwsr-xr-x 1 root root 1183465 May 28 15:38 /usr/bin/tcprstat

默認工具讀取tcprstat的代碼如下:

 

 

$grep -n my $TCPRSTAT orzdba

166:my $TCPRSTAT = “/usr/bin/tcprstat no-header -t 1 -n 0 -p $port”;

不同的路徑可以自行修改。

2)需要安裝PerlFile::Lockfile模塊

File::Lockfile模塊同時要依賴Module-Build/version/Class-Data-Inheritable這3個模塊,可以通過下面方式進行安裝:

安裝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

$sudo make install

安裝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

$sudo make install

安裝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

$sudo ./Build install

安裝安裝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

$sudo perl ./Build install

可以通過如下腳本,檢查安裝了哪些perl模塊的腳本:

 

 

$cat check_module.pl

#!/usr/bin/perluse ExtUtils::Installed;my $inst = ExtUtils::Installed->new();print join \n”,$inst->modules();print \n”;

4、其他

(1)MySQL相關參數配置

-P,–port           Port number to use for mysql connection(default 3306).-S,–socket         Socket file to use for mysql connection.

用於指定端口或者socket。

如果需要MYSQL的其他參數要添加,直接改代碼:

$grep -n -A1 my $MYSQL orzdba

166:my $MYSQL    = qq{mysql -s skip-column-names -uroot -P$port };167-$MYSQL      .= qq{-S$socket } if defined $socket;

(2)控制輸出間隔和次數,以及是否輸出顏色。

-h,–help           Print Help Info.-i,–interval       Time(second) Interval.-C,–count          Times.-t,–time           Print The Current Time.-nocolor            Print NO Color.

(3)日誌輸出

 

 

-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.

用於將數據輸出到日誌文件-L後面帶輸出的日誌文件,另外如果加上-logfile_by_day參數的話,將按天輸出日誌。

 

原文地址:http://www.taobaodba.com/html/937_orzdba.html

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章