[教學]中的教學(二) RRDTOOL 1.2 更新項目(待少量修訂)
发表于:2007-06-08来源:作者:点击数:
标签:
RRDTOOL 1.2.x 的差異 1.說明 自從上次的 rrdtool 教學後,頗受好評,不過實至今日, rrdtool 巳從 1.0.x 昇級至 1.2.x 版本,這個 1.2.x 版本基本除了 graph 外,並沒有太多太大的變動,而在 graph 上新增了許多功能,本文的目的主要是向大家解釋 這些新的東西,至
RRDTOOL 1.2.x 的差異 1.說明
自從上次的 rrdtool 教學後,頗受好評,不過實至今日, rrdtool 巳從 1.0.x 昇級至 1.2.x 版本,這個 1.2.x
版本基本除了 graph 外,並沒有太多太大的變動,而在 graph 上新增了許多功能,本文的目的主要是向大家解釋
這些新的東西,至於原有的東西您可自參考
http://phorum.study-area.org/viewtopic.php?t=18496 之說明.
2.安裝
這一版的安裝是較費事的,因為它用了幾個較少用的東西(對我而言真的是較少用),你可以在
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/?M=D
下載到最新版的 tarball , 這個 URL 下有一個 libs/ 的目錄內的東西最好也都一次下載,因為裝 1.2.x
版的 rrdtool 一定會用到. contrib/ 下的東西也值得有興趣的人好好研究.
下載後的東西,請先安裝 libs 下的東西,基本上的裝法就是(每一個 tarball 都要)
代码: |
$>./configure --help #看好好看一下有什麼要注意的 $>./configure --prefix=/usr #把東西裝到 /usr 目錄下 $>make ; make install #編譯及安裝
|
是的,的確有點費事,且有些 libs 裝起來也要花不少時間,只好耐心等囉.
至於 rrdtool 所需的一些 libs 裝到 /usr 下.在您裝 rrdtool 時, ./configure 就可以少打很多字
代码: |
#rrdtool 的安裝 $>./configure --prefix=/usr --disable-rrdcgi #我個人不用 rrdcgi,所以您一定要先看 help $>make $>make install $>rrdtool -v [root@log doc]# /tmp/bin/rrdtool -v RRDtool 1.2.8 Copyright 1997-2005 by Tobias Oetiker <tobi@oetiker.ch> Compiled 週三 5月 25 15:23:18 CST 2005
Usage: rrdtool [options] command command_options
Valid commands: create, update, updatev, graph, dump, restore, last, first, info, fetch, tune, resize, xport
RRDtool is distributed under the Terms of the GNU General Public License Version 2. (www.gnu.org/copyleft/gpl.html)
For more information read the RRD manpages
|
感覺上的差異
1.2.x 版的 rrdtool 繪圖不再使用 GD , 而使用 libart 及 freetype 等功能來畫圖,所以,我個人在用起
來時,感覺速度上較 1.0.x 版慢了許多,
代码: |
#以 1.2.8 畫 100 張圖,time 所計算之時間 real 1m23.076s user 0m52.855s sys 0m7.021s #以 1.0.42 畫 100 張圖,time 所計算之時間 real 0m27.234s user 0m21.629s sys 0m5.209s
|
所以,可以明顯感覺到 1.2.x 較 1.0.x 版本畫圖上慢上了許多,一般公認大概差了 2~3 倍的時間,主要因為
作者(oetiker) 要讓 rrdtool 的 output 可以產生 PDF 檔,所以才造成這種現象,至於使用上的取捨,就看
您的需求囉, 並沒有說新版的一定會較好這種理由.
新的東西(以下介紹皆針對 rrdtool graph)
DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]
VDEF:vname=RPN expression
SHIFT:vname:offset
[TICK:vname#rrggbb[aa][:[fraction][:legend]]]
可以產生 PDF 檔
[-n|--font FONTTAG:size:font]
這裏面的文字意義如下:
更具彈性空間的定義特性 DEF
DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]
定義從那一個 RRD FILE取出裏面的那一個 DS 資料(Data Source Name,DSN)
vname: rrdtool graph 用的變數名稱,可任意取名
rrdfile: 意即那個 rrd 檔案
ds-name: 在建立 RRD FILE 時,用的名稱
CF: 即 MAX/AVERAGE/MIN/LAST 等
*step: 在繪圖時,資料的取用原則,例如,你的 RRD FILE 在建立時,設了 --step 為 300 秒,所以每
個資料點距為 300 秒,畫一小時共有 12 點,此時,在 DEF 定義 step=1800, 畫一小時就會變
成兩個點,而其取用則試 CF 而定,例如 CF 為 AVERAGE, 則合併的 6 個點 (1800=300x6),
其會畫出平均值出來(官網是這麼講,但是我設了做不出來效果,不知原因何在)
*start: 資料起始時間,如果你在 graph 時,以時間參數畫圖,但你只想要某個 DSN 只畫某一段時間,可
以利用此參數來做,例如, start=end-1w , 即表示要畫這個 DSN 一個星期內的資料,而其他的
畫全部的資料
*end: 其意同 start, 旨在定義時間區間
標示水平線 VDEF
VDEF:vname=RPN expression
例如 ,VDEF:avg=mydata,AVERAGE ,
avg 如同一般的 DSN, 而 mydata 為 DEF 之 DSN,AVERAGE 表示求取平均值(時間區間內),並在圖上畫出
之一橫線,以供比較(sample5),
時間徧移 SHIFT
SHIFT:vname:offset
這個功能較特別,主要在 "徧移" 整個資料,例如,你要把過去三個星期以來的數據互相比較時:
DEF:out0=$RRDFILE:ifOutOctets$INT:AVERAGE:start=end-1w \ #現在以前的七天
DEF:out1=$RRDFILE:ifOutOctets$INT:AVERAGE:start=now-2w:end=now-1w \ #8-14 天前
DEF:out2=$RRDFILE:ifOutOctets$INT:AVERAGE:start=now-3w:end=now-2w \ #15-21 天前
SHIFT:out1:604800 \ # out2 的資料時間向後移 604800 秒,意即一週
SHIFT:out2:1209600 \ # out3 的資料時間向後移 1209600 秒,意即二週
所以我們可以想像,同一個 DSN 我們有三段數據,每段各代表一週的時間,把時間對齊後,我們就可
以週與週間互相比較了,所以像 "與上月比較","與去年同期比較","特定時間區間互相比較",也都可
以信手拈來,只要弄清楚 DEF 中的 start/end 用法,再加上 SHIFT 的 offset 功能,即可達成
透明處理 TICK
[TICK:vname#rrggbb[aa][:[fraction][:legend]]]
可以在圖的資料區,畫上一個顏色.有點類似底色,但會更據 DSN 來晝,而不畫 0 值或是 UNKNOWN 值
vname 即 DSN , 不過看來畫起來沒有什麼意義
#rrggbb[aa] rgb 即顏色, aa 是透明度,數值介於 (最透明)00~ff(最不透明)
fraction 佔資料區的比例,以 0.0~1.0 表示, 0.5 表示佔一半
legend 圖例名稱
可以產生 PDF 檔
以 rrdtool graph xxx.pdf .... 即可產生 PDF 格式之檔案
變更字型及字體的大小
[-n|--font FONTTAG:size:font]
FONTTAG 依圖上的地區,分為 DEFAULT/TITLE/AXIS/UNIT/LEGEND, DEFAULT 代表後四種
size 為字體大小
font 使用那個 TTF 字型檔 (請注意官方 1.2.8 版並不支援中文處理)
範例:
代码: |
-n TITLE:20:/usr/share/fonts/zh_TW/TrueType/bsmi00lp.ttf \ -n AXIS:10:/usr/share/fonts/zh_TW/TrueType/bsmi00lp.ttf \ -n UNIT:30:/usr/share/fonts/zh_TW/TrueType/bsmi00lp.ttf \ -n LEGEND:14:/usr/share/fonts/zh_TW/TrueType/bkai00mp.ttf \
|
以例子來說明
1. 原來標準原圖(in/out 流量)
2. 使用 1.2.8 的 start=end-1w 功能(即只要畫最近七天)
3. 使用 1.2.8 的 start/end 功能,依最近7/14/21天來畫圖
4. 使用 1.2.8 的 step 功能...但做不出來
5. 使用 1.2.8 的 VDEF 功能...in 畫出最大線, out 畫出平均線
6. 使用 1.2.8 的 start/end + SHIFT 功能畫出週與週間的比較
7. 使用 1.2.8 的 TICK 功能畫出週與週間的比較
8. 使用 1.2.8 的 PDF 輸出
8. 使用 1.2.8 的字型及大小的處理
以上網頁 及 script 程式,您可在 http://211.72.210.251/tmp/ 取得
原文转自:http://www.ltesting.net