MySQL监控工具之orzdba
安装 orzdba
代码SVN地址:http://code.taobao.org/p/orzdba/src/trunk/
说明:Perl脚本,用于对Linux主机和MySQL相关指标进行实时监控。
修改代码160行左右配置MySQL的相关验证信息,如username,password,host,port,sock等
安装tcprstat
安装orzdba_rt_depend_perl_module.tar.gz依赖包(version模块、Class-Data-Inheritable模块、Module-Build模块、File-Lockfile模块)
- shell> grep -n 'my $MYSQL' orzdba
- 160:my $MYSQL = qq{mysql -s --skip-column-names -uroot -P$port };
-
- shell> chmod +x orzdba
-
- shell> ./orzdba --help
-
- ==========================================================================================
- 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 &
- ==========================================================================================
查看Linux主机指标
- shell> ./orzdba -sys -C 10 -i 1 -t -d sda
-
- .=================================================.
- | Welcome to use the orzdba tool ! |
- | Yep...Chinese English~ |
- '=============== Date : 2014-12-31 ==============='
-
- HOST: rac3 IP: 127.0.0.1
-
- -------- -----load-avg---- ---cpu-usage--- ---swap--- -------------------------io-usage-----------------------
- time | 1m 5m 15m |usr sys idl iow| si so| r/s w/s rkB/s wkB/s queue await svctm %util|
- 02:14:13| 0.08 0.02 0.01| 0 0 100 0| 0 0| 0.3 0.3 7.7 2.7 0.0 6.0 2.0 0.1|
- 02:14:14| 0.08 0.02 0.01| 0 3 97 0| 0 0| 0.0 3.0 0.0 11.9 0.0 4.0 1.3 0.4|
- 02:14:15| 0.08 0.02 0.01| 0 3 97 0| 0 0| 0.0 6.7 0.0 30.5 0.0 2.1 0.7 0.5|
- 02:14:16| 0.08 0.02 0.01| 0 2 98 0| 0 0| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0|
- 02:14:17| 0.08 0.02 0.01| 0 3 97 0| 0 0| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0|
- 02:14:18| 0.07 0.02 0.00| 0 3 96 0| 0 0| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0|
- 02:14:19| 0.07 0.02 0.00| 0 3 97 0| 0 0| 0.0 1.9 0.0 7.5 0.0 4.0 2.0 0.4|
- 02:14:20| 0.07 0.02 0.00| 0 4 96 0| 0 0| 0.0 5.0 0.0 51.7 0.0 0.8 0.4 0.2|
- 02:14:21| 0.07 0.02 0.00| 0 3 96 0| 0 0| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0|
- 02:14:22| 0.07 0.02 0.00| 0 4 96 0| 0 0| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0|
- 02:14:23| 0.07 0.02 0.00| 0 3 97 0| 0 0| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0|
-sys:打印系统信息,包括-t(打印当前时间)、-l(打印负载信息,分1分钟、5分钟、15分钟)、-c(打印cpu信息)、-s(打印交换分区信息)
-d:打印磁盘信息,需要指点磁盘设备名
-n:打印网络信息,接收和发送大小,需要指点网卡设备名
查看DISK(-d)和NET(-n)需要带具体的设备名(具体可以查看/proc/diskstats和/proc/net/dev中的设备或者可以取自iostat
和sar -n DEV)
Linux指标的数据都来自/proc目录下的相关系统元数据:
LOAD : /proc/loadavg
CPU : /proc/stat
SWAP : /proc/vmstat
DISK : /proc/diskstats
NET : /proc/net/dev
查看MySQL响应时间(rt)
通过调用tcprstat来监控MySQL的响应时间。
- shell> ./orzdba -rt -C 10 -i 1 -t -d sda
-
- .=================================================.
- | Welcome to use the orzdba tool ! |
- | Yep...Chinese English~ |
- '=============== Date : 2014-12-31 ==============='
-
- -------- -------------------------io-usage----------------------- --------tcprstat(us)--------
- time | r/s w/s rkB/s wkB/s queue await svctm %util| count avg 95-avg 99-avg|
- 01:53:22| 0.0 0.0 0.1 0.0 0.0 0.4 0.4 0.0| 0 0 0 0|
- 01:53:24| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:25| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:26| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:27| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:28| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:29| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:30| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:31| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:32| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
- 01:53:33| 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0| 0 0 0 0|
监控InnoDB的性能指标
- shell> ./orzdba -innodb -C 10 -i 1
-
- .=================================================.
- | Welcome to use the orzdba tool ! |
- | Yep...Chinese English~ |
- '=============== Date : 2014-12-31 ==============='
-
- -------- ---innodb bp pages status-- -----innodb data status---- --innodb log-- his --log(byte)-- read ---query---
time | data free dirty flush| reads writes read written|fsyncs written| list uflush uckpt view inside que|
01:48:38| 0 0 0 0| 0 0 0 0| 0 0| 0 0 0 0 0 0|
01:48:39| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:40| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:41| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:42| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:43| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:44| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:45| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:46| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:47| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
01:48:48| 638 7553 0 0| 0 0 0 0| 0 0| 350 0 0 0 0 0|
监控MySQL Server性能
- shell> ./orzdba -mysql -C 10 -i 1
-
- .=================================================.
- | Welcome to use the orzdba tool ! |
- | Yep...Chinese English~ |
- '=============== Date : 2014-12-31 ==============='
-
- -------- -QPS- -TPS- -Hit%- ------threads------ -----bytes----
- time | ins upd del sel iud| lor hit| run con cre cac| recv send|
- 01:45:58| 0 0 0 0 0| 0 100.00| 0 0 0 0| 0 0|
- 01:45:59| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:01| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:02| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:03| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:04| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:05| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:06| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:07| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:08| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
- 01:46:09| 0 0 0 1 0| 0 100.00| 1 2 0 0| 839 1k|
安装问题:
Usage: Socket::inet_ntoa(ip_address_sv) at ./orz line 477
因主机名不能解析,将主机名和IP写到/etc/hosts文件。
参考:
http://code.taobao.org/svn/orzdba/trunk/orzdba%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.pdf
整理自网络
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/807718/viewspace-2157619/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/807718/viewspace-2157619/