2010-11-27 11 views
0

私はLighttpdサーバ(CentOS上)を持っており、lighttpdトラフィック、毎秒lighttpdリクエスト、CPU使用率、およびMEM使用の4つのグラフを表示したいと考えています。RRDデータベースにCPUとMEMの使用データを設定するにはどうすればよいですか?

rrdtool.binary = "/usr/bin/rrdtool" 
rrdtool.db-name = "/var/www/lighttpd.rrd" 

そしてlighttpdののRRDファイルからデータを取得し、このように、トラフィックのグラフや秒あたりの要求を作成し、私のWWWのcgi-binのshのファイルに入れて:私はこのようにlighttpdのコンフィグ用のRRDデータベースのための場所を設定しました:

#!/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はlighttpd.rrdファイルにトラフィックデータと要求を毎秒入力します。今、私は、CPUとMEMの使用法を使って2番目のrrdファイルを作成するシステムにしたいので、このデータのグラフを生成するためにshファイルコードを追加することができます。

RRDファイルにCPUとMEMの使用データを設定するにはどうすればよいですか? 第三者のツールは使用しないでください。

答えて

1

トリックは、procファイルシステムのファイルからデータを読み込み、sed/awkを使って実際の値を抽出することです。データを保存するDSタイプGAUGEを持つrrdfileを作成してください。www.rrdtool.orgのチュートリアルを見てください。

関連する問題