我有一个Lighttpd服务器(在Centos上),并希望显示4个graphics:lighttpdstream量,每秒lighttpd请求,CPU使用率和MEM使用率。 我为rrd数据库设置了lighttpdconfiguration,如下所示:
rrdtool.binary = "/usr/bin/rrdtool" rrdtool.db-name = "/var/www/lighttpd.rrd"
并把我的WWW cgi-bin sh文件从lighttpd RRD文件中获取数据,并创build每秒的stream量和请求的graphics,如下所示:
#!/bin/sh RRDTOOL=/usr/bin/rrdtool OUTDIR=//var/www/graphs INFILE=/var/www/lighttpd.rrd OUTPRE=lighttpd-traffic WIDTH=400 HEIGHT=100 DISP="-v bytes --title TrafficWebserver \ DEF:binraw=$INFILE:InOctets:AVERAGE \ DEF:binmaxraw=$INFILE:InOctets:MAX \ DEF:binminraw=$INFILE:InOctets:MIN \ DEF:bout=$INFILE:OutOctets:AVERAGE \ DEF:boutmax=$INFILE:OutOctets:MAX \ DEF:boutmin=$INFILE:OutOctets:MIN \ CDEF:bin=binraw,-1,* \ CDEF:binmax=binmaxraw,-1,* \ CDEF:binmin=binminraw,-1,* \ CDEF:binminmax=binmaxraw,binminraw,- \ CDEF:boutminmax=boutmax,boutmin,- \ AREA:binmin#ffffff: \ STACK:binmax#f00000: \ LINE1:binmin#a0a0a0: \ LINE1:binmax#a0a0a0: \ LINE2:bin#efb71d:incoming \ GPRINT:bin:MIN:%.2lf \ GPRINT:bin:AVERAGE:%.2lf \ GPRINT:bin:MAX:%.2lf \ AREA:boutmin#ffffff: \ STACK:boutminmax#00f000: \ LINE1:boutmin#a0a0a0: \ LINE1:boutmax#a0a0a0: \ LINE2:bout#a0a735:outgoing \ GPRINT:bout:MIN:%.2lf \ GPRINT:bout:AVERAGE:%.2lf \ GPRINT:bout:MAX:%.2lf \ " $RRDTOOL graph $OUTDIR/$OUTPRE-hour.png -a PNG --start -14400 $DISP -w $WIDTH -h $HEIGHT $RRDTOOL graph $OUTDIR/$OUTPRE-day.png -a PNG --start -86400 $DISP -w $WIDTH -h $HEIGHT $RRDTOOL graph $OUTDIR/$OUTPRE-month.png -a PNG --start -2592000 $DISP -w $WIDTH -h $HEIGHT OUTPRE=lighttpd-requests DISP="-v req --title RequestsperSecond -u 1 \ DEF:req=$INFILE:Requests:AVERAGE \ DEF:reqmax=$INFILE:Requests:MAX \ DEF:reqmin=$INFILE:Requests:MIN \ CDEF:reqminmax=reqmax,reqmin,- \ AREA:reqmin#ffffff: \ STACK:reqminmax#00f000: \ LINE1:reqmin#a0a0a0: \ LINE1:reqmax#a0a0a0: \ LINE2:req#00a735:requests" $RRDTOOL graph $OUTDIR/$OUTPRE-hour.png -a PNG --start -14400 $DISP -w $WIDTH -h $HEIGHT $RRDTOOL graph $OUTDIR/$OUTPRE-day.png -a PNG --start -86400 $DISP -w $WIDTH -h $HEIGHT $RRDTOOL graph $OUTDIR/$OUTPRE-month.png -a PNG --start -2592000 $DISP -w $WIDTH -h $HEIGHT
基本上这不是我的脚本,我从互联网的某个地方得到它。 现在我想为CPU使用率和MEM使用情况做同样的事情。 我不喜欢使用任何额外的软件包!
正如你所看到的,lighttpd使用每秒的stream量数据和请求来填充lighttpd.rrd文件。 现在我想系统填充第二个rrd文件与CPU和MEM的用法,所以我可以添加到SH文件代码生成此数据的graphics。
如何使用CPU和MEM使用数据填充RRD文件? 请不要使用第三方工具!
所以,如果你想真正控制自己,你首先需要为这个数据定义你自己的rrd文件,这意味着你需要知道你想要存储多长时间。 那么你必须填充这个,可能来自一个脚本。 您正在查找的数据位于/ proc / meminfo和/ proc / loadavg中,您必须parsing此数据并将其提供给rrdtool。
如何定义和填充你自己的rrd文件由rrdtool的创build者很好的logging ,所以我只是把你引用到这个文档中。
也许值得看看如何收集(一个小的守护进程收集统计数据到rrd文件)是否:
在这里你可以find它如何读取/proc/stat并分析它的内容,然后你可以很容易地写一个bash脚本。