这篇文章主要介绍了编写Bash Shell通过gnuplot绘制系统性能数据图的方法,做到可视化数据收集,需要的朋友可以参考下
使用步骤:
1.设置一个定时任何 执行getperf.sh,采集性能数据
2.将采集到性能数据文件,如:192.168.1.1.tar.gz 解压
3.将性能分析的脚步performance_analyse.sh 放到解压后的目录中
4.安装gnuplot程序(这里下载)
5.将字体文件夹,拷贝到/usr/share/fonts/目录
6.直接运行 bash performance_analyse.sh
getperf.sh脚本内容如下:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ################################################# #说明: # 定义时间TIMES参数,表示采集的次数, # 采集时间 = TIMES * INTERVAL #eg: # TIMES=180 , INTERVAL=10 采集时间就是半小时 # ################################################# #!/bin/bash TIMES=3600 INTERVAL=2 PWD=`pwd` TIME=`date "+%F %H:%M:%S"` TAR=`whereis tar|awk -F ":" '{print $2}'|awk '{print $1}'` SAR=`whereis sar|awk -F ":" '{print $2}'|awk '{print $1}'` IOSTAT=`whereis iostat|awk -F ":" '{print $2}'|awk '{print $1}'` # Check Moniter Tool SysInfo(){ echo "sysip : $SYSIP"|tee $PWD/$SYSIP/sysinfo echo "starttime : $TIME" |tee -a $PWD/$SYSIP/sysinfo /sbin/ifconfig >>$PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /usr/sbin/dmidecode >>$PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /bin/cat /proc/cpuinfo >> $PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /sbin/fdisk -l >> $PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /bin/df -Th >>$PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /usr/bin/free -m >> $PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo echo "" } CheckEnv(){ PUB_IP=`/sbin/ifconfig |grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}'|grep -v "172.|10.|127.|192."|sed -n 1p` PRI_IP=`/sbin/ifconfig |grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}'|grep "10.|127.|192."|sed -n 1p` if [ "snda$PUB_IP" == "snda" ];then SYSIP=$PRI_IP else SYSIP=$PUB_IP fi if [ -d $PWD/$SYSIP ];then rm -rf $PWD/$SYSIP fi mkdir -p $PWD/$SYSIP if ! grep iostat /usr/bin/iostat ;then yum -y install sysstat fi } GetPerf(){ CPUUSAGE="$PWD/$SYSIP/cpuusage.log" MEMUSAGE="$PWD/$SYSIP/memusage.log" DISKUSAGE="$PWD/$SYSIP/diskusage.log" NETWORK="$PWD/$SYSIP/network.log" $SAR -P ALL $INTERVAL $TIMES>> $CPUUSAGE & $IOSTAT -dkx $INTERVAL $TIMES>> $DISKUSAGE & $SAR -n DEV $INTERVAL $TIMES>> $NETWORK & $SAR -r $INTERVAL $TIMES>> $MEMUSAGE & for ((i=0;i<$TIMES;i++)) do sleep $INTERVAL done } CheckEnv SysInfo GetPerf #在同一台机器上第二次采集数据时,会删除之前采集的数据,重新采集 #采集完成之后,会生产一个以 IP.tar.gz的压缩包。将这个压缩包,放到 #分析脚本performance_analyse.sh 的同级目录。 if [ -d $PWD/$SYSIP ];then cd $PWD rm -f $SYSIP.tar.gz tar zcvf $SYSIP.tar.gz $SYSIP fiperformance_analyse.sh脚本内容如下:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144