sar+gnuplot 制作系统活动报告

sar+gnuplot 制作系统活动报告
时间 20090811
sar 是一款功能非常强大的系统活动信息监测工具 ,他可以收集,报告和保存系统的多种活动信息。比如 内存、中断、块儿设备、网络以及单个进程等等。下面我来介绍下他的简单操作,希望对大家的工作有所帮助。
注意: sar 只能工作在本地
首先是装包,如果你用的是 RHEL 或者 Centos 的话那就方便了,在安装盘上面带着呢
sysstat 就是这个包,装上就行了,这个包里面带着不少好东西,让我们看看
 
rpm -ql sysstat-7.0.2-3.el5
/etc/cron.d/sysstat
/etc/rc.d/init.d/sysstat
/etc/sysconfig/sysstat
/etc/sysconfig/sysstat.ioconf
/usr/bin/iostat
/usr/bin/mpstat
/usr/bin/sadf
/usr/bin/sar
/usr/lib/sa
/usr/lib/sa/sa1
/usr/lib/sa/sa2
/usr/lib/sa/sadc
都是系统监测相关的,不过我们现在说的就是 /usr/bin/sar 其他的如果您有兴趣的话可以自己看看帮助
先让我们看看他的选项
Usage: sar [ options... ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -i <interval> ] [ -p ] [ -q ]
[ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I { <irq> | SUM | ALL | XALL } ] [ -P { <cpu> | ALL } ]
[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]
[ -x { <pid> | SELF | ALL } ] [ -X { <pid> | SELF | ALL } ]
[ -o [ <filename> ] | -f [ <filename> ] ]
[ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]
 
选项还真不少,不过大家可以根据自己的需要来选择使用。
我来介绍下常用的几个选项:
-A 这个很厉害,相当于 -bBcdqrRuvwWy -I SUM -I XALL -n ALL -P ALL 呵呵够全吧!几乎包括了系统的大部分信息,不过大多数都是我们不想看到的,所以咱们就自己定义吧。
sar 1 1 如果什么参数都不加的话默认就是   -P 0 1 1
-P 0 中的 -P 是监测 cpu 状态 0 是指第一个 cpu 后面第一个 1 1 检查一次,第二个 1 检查几次
让我们看看输出结果
[root@jdb ~]# sar 1 1
Linux 2.6.18-128.el5 (jdb.vs.com)       2009 07 27
 
09 26 42        CPU     %user     %nice   %system   %iowait    %steal     %idle
09 26 43        all      0.00      0.00      0.00      0.00      0.00    100.00
Average:          all      0.00      0.00      0.00      0.00      0.00    100.00
 
上面的输出结果我就不必多说了吧
好了让我们大概介绍下常用的几个参数
-r 监测内存使用情况        -I 中断         -d 指定块儿设备        -n DEV 网络接口        -P cpu  -o 以二进制保存为文件   -f 查看用 -o 保存的二进制文件
-x PID 指定 pid 来监视
好了,让我们来举个例子来测试一下 sar 的功能,我们现在对 网络接口的情况进行监视
sar -n DEV 1 8
[root@jdb ~]# sar -n DEV 1 8
Linux 2.6.18-128.el5 (jdb.vs.com)       2009 07 27
 
09 52 33      IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
09 52 34         lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09 52 34       eth0      2.00      1.00    120.00    162.00      0.00      0.00      0.00
09 52 34       eth1      3.00      0.00    186.00      0.00      0.00      0.00      0.00
09 52 34       sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 
下面 7 行省略 ,大家可以看到 在本机上的所有的网络接口的 状态
IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
这些参数请参考 man sar 这里我就不多说了。
现在我们将 输出到屏幕的内容保存到文件
sar -n DEV 1 300 &> /var/log/sar.log &  (文件生成后,把第一行和最后的 Average 部分去掉 为了方便给下面 gnuplot 使用 , 或者直接用 grep 过滤出自己想要的行)
这里我只想看 eth0 的状态 于是就 grep "eth0" /var/log/sar.log > /tmp/sar.log 别忘了 清掉最下面的 Average 平均值那一行,用 sed 或者之间删就不用说了。呵呵
 
不过大家发现没,这样一两行看着还行,但如果是监测几个小时呢? 一百多页的文件 怎么看   ?这时我们还有一个软件可以用 ,那就是 gnuplot
 
这个工具在 RHEL Centos 的光盘里也自带
装包
rpm -ivh gnuplot-4.0.0-14.el5.i386.rpm
man page 介绍看 似乎很简单   一个交互式的绘图工具 但他的功能可是相当的强。
提醒下: gnuplot 只能运行在图形界面如 gnome KDE ,不过我们的服务器一般是不装那些的,怎么办?很简单你可以把 sar.log 文件拿出来随便找个带桌面的 linux 就可以了。
gnuplot 有自己的操作界面
输入 gnuplot 进入
 G N U P L O T
        Version 4.0 patchlevel 0
        last modified Thu Apr 15 14:44:22 CEST 2004
        System: Linux 2.6.18-128.el5
 
        Copyright (C) 1986 - 1993, 1998, 2004
        Thomas Williams, Colin Kelley and many others
 
        This is gnuplot version 4.0.  Please refer to the documentation
        for command syntax changes.  The old syntax will be accepted
        throughout the 4.0 series, but all save files use the new syntax.
 
        Type `help` to access the on-line reference manual.
        The gnuplot FAQ is available from
                http://www.gnuplot.info/faq/
 
        Send comments and requests for help to
                <[email protected]>
        Send bugs, suggestions and mods to
                <[email protected]>
 
 
Terminal type set to 'x11'
gnuplot>
然后就是使用 他自己的命令来进行绘图了
set xlabel "time"  #设置 x 轴坐标 名字
set ylabel "eth0 status" #设置 y 轴坐标名字
set xdata time            #将 x 轴的 data 类型设置为 time 时间型
set timefmt "%H %M %S "   这步是设置 时间的格式,和上面的操作对应,(因为我用了默认的中文环境,所以 /tmp/sar.log 的第一行显示的时间为中文,所以我这里为了能看得舒服些,就这样写了,大家可以根据自己喜好定义
plot "/tmp/sar.log" using 1:5 # 这步就是输出图表了, 中间的是我刚才保存的文件 using 1:5 是使用文件中的 第一列作为 x 第六列作为 y
 
这时 会在屏幕上输出 一个 图形 ,不过上面全是点 ,为了更直观,看下面的操作
plot "/tmp/sar.log" using 1:5 with line #再看图就不同了吧,用线的方式将点都连接起来了
当然还有很多 图形可以选择 可以用 plot "/tmp/sar.log" using 1:5 with 直接回车 查看,不过有些是用不了的,喜欢的话自己可以都试试看。
replot "/tmp/sar.log" using 1:4 with line # 如果你想在 刚才的图中 加入其他的 数值并和原来的图对比,就用这条命令吧。
 
至于你用什么图形工具去修改你的图片那就看自己喜好了,呵呵 , 在图上面用鼠标右键点击托选可以对图片进行放大,不过我经常放大后不知道怎么还原。
 
好了,我这里具了一个例子来说明 sar+gnuplot 的简单应用,不过能作图表的工具还是很多的比如 Excel ,我在这里抛砖引玉希望大家对上面文章不足的地方予以指正。
 

你可能感兴趣的:(职场,sar,休闲,gnuplo,系统活动报告)