RRDTOOL 是一個強大的繪制圖表的工具,下面來安裝和使用RRDTOOL
************************************************************************************
一 .安裝rrdtool,目前最新版本是1.4.7的版本, 在安裝之前需要去下載下傳源碼包,rrdtool-1.4.7.tar.gz 下載下傳完成之後存到系統的/usr/src目錄下
- #cd /usr/src
- #tar xzvf rrdtool-1.4.7.tar.gz
- #cd rrdtool-1.4.7
- #./configure --prefix=/usr/local/rrdtool
- #make
- #make install
- #ln -s /usr/local/rrdtool/bin/* /bin/
ok 安裝成功了,下面來說下繪制圖像的幾個步驟,
需要注意的是rrdtool指令參數太多了,這裡就不一一介紹,
二,繪制圖像的幾大步驟,
1, 建立rrd資料庫
- #rrdtool create mysql.rrd --step 3 DS:myselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:AVERAGE:0.5:10:2880 RRA:MAX:0.5:10:2880 RRA:LAST:0.5:10:2880
- mysql.rrd 是資料庫的名字,根據自己的需要定義
- --step 3 每3秒接受一次資料
- DS 資料源的類型
- GAUGE 儲存一個數值原來的值
- COUNTER 遞增的數值
- DERIVE 有的時候可以增有的時候可以減
- 例 DS:name:GAUGE:5:0:U 接收最小值為0 最大值未知 超過5秒後則不接收資料
- RRA 聚合函數
- AVERAGE 平均值
- MAX 最大值
- MIN 最小值
- LAST 單前值
- 例 RRA:AVERAGE:0.5:10:2880 每10個做一次聚合,儲存2880個這樣的資料
2,更新資料到資料庫裡,
- #rrdtool update mysql.rrd N:值1:值2
- N是從單前時間開始 把“值1”的值傳送給上面定義的第一個DS 把"值2"的值傳送給上面定義的第二個DS 定義幾個DS這裡就傳幾個值
3,生成圖像
- #rrdtool graph 圖檔名稱 -s 開始時間 -t "标題1" -v "标題2" DEF:變量1=mysql.rrd:myselect:AVERAGE:step=3 LINE1:變量1#FF0000:"線條1标題"
- 标題1 是顯示在圖檔正上方的标題
- 标題2 是顯示在圖檔正左邊的标題
下面将給一個執行個體來完成整個過程,
需求,監控下某台伺服器的網絡流量的走勢圖,
1.建立資料檔案并更新資料到資料庫裡,
- #mkdir /root/rrdtool 建立一個用于儲存rrdtool資料的目錄 根據自己需要,
- #vim /root/rrdtool/Monitoring_flow.sh 腳本内容如下
- #!/bin/bash
- rrd="/root/rrdtool/net.rrd"
- DS1=intput
- DS2=output
- rrdtool create $rrd --step 3 DS:$DS1:DERIVE:5:0:U DS:$DS2:DERIVE:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:LAST:0.5:1:28800
- while [ 1 ];do
- in=`ifconfig e | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $2}'`
- out=`ifconfig br0 | grep "RX bytes" | awk '{print $6}' | awk -F: '{print $2}'`
- rrdtool update $rrd N:$in:$out
- sleep 3
- done
- #bash /root/rrdtool/Monitoring_flow.sh
2. 生成圖檔 腳本如下
- #vim /root/rrdtool/p_w_picpath.sh 内容如下
- #!/bin/bash
- # andy_f
- png_name="/root/rrdtool/net.`date +%F-%H.%M.%S`.png"
- rrd="/root/rrdtool/net.rrd"
- DS1=intput
- DS2=output
- rrdtool graph $png_name -t "網絡接口的出入流量" -v "預設單:位元組" DEF:intput=$rrd:$DS1:AVERAGE:step=3 DEF:output=$rrd:$DS2:AVERAGE:step=3 LINE1:intput#FF0000:"接收流量
- " LINE1:output#00FF00:"發送流量"
如果需要看看圖檔的時候就執行下此腳本, 會在/root/rrdtool目錄下生成一個以目前時間為名的圖檔,
- #bash /root/rrdtool/p_w_picpath.sh