freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课
FreeBuf+小程序

FreeBuf+小程序

官方公众号企业安全新浪微博

国内领先的互联网安全新媒体,同时也是爱好者们交流与分享安全技术的社区

Linux主机和MySQL实时监控工具-orzdba
2012-08-06 12:20:52

代码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/perl

use 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

本文作者:, 转载请注明来自FreeBuf.COM

# linux监控 # mysql监控 # orzdba
被以下专栏收录,发现更多精彩内容
+ 收入我的专栏
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦