RRDtool簡體中文教程 v1.01 – 4

  rel="File-List" href="file:///C:%5CDOCUME%7E1%5Ccxgao%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5Ccxgao%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso">RRDtool簡體中文教程 v1.01 – 4

 

RRD 文件中提取數據

**********************************************************************************************************************
注 :該教程參考瞭如下內容 :
A
)官方文檔 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B
abel 兄的大作 :http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
最後修改 :2006/11/17 17:35
**********************************************************************************************************************

一)前言
RRD
Round Robin Database 的意思,那麼是否可以象普通的數據庫進行查詢操作呢?

答案是可以的。fetch 就是用來做這種事情的工具。當然 fetch 不能和 select 語句相比,它只是根據用戶指定的時間,

從合適的 RRA 中取出數據,並加以格式化。不過和 MRTG 相比,已經好很多了,至少你不用取看該死的 log 文件。

實際上,fetch 操作其實可以不學,因爲 RRDtool 會自動幫你選好數據。但你如何確定 RRDtool 取的數據就是你想要的呢?

或者說你如何證明 RRDtool 繪製出來的圖是正確的呢?

廢話少說,下面開始正文

二)fetch 操作的語法

[Copy to clipboard]

CODE:

rrdtool fetch filename CF [--resolution|-r resolution] [--start|-s start] [--end|-e end]


其中 --start--end-r 都是可選的 。RRDtool 默認的 --end now --start end-1day ,也就是1天前。

CF
可以是 AVERAGEMAXMINLAST ,當然必須建庫時有該 CF 類型的 RRA 纔可以查,否則會報錯。


三)fetch 如何取數據

在確定了時間範圍後,RRDtool 會從多個 RRA 中挑選最佳的那個 RRA 的數據。至於什麼是最佳,則從兩個方面考慮 :

A
第一是該 RRA 的數據要儘可能的覆蓋所請求的時間範圍。如何計算一個 RRA 的覆蓋時間呢?以 eth0.rrd 的第一個RRA 爲例,

   
600 個記錄,每個記錄相隔300秒,則總的時間覆蓋範圍是180000 ≈2天,所以如果 –-start -–end 規定的時間範圍
   
   
大於2天,則 RRDtool 不會從該 RRA 中取數據。

B
第二是 resolution 的要求。還是上面的例子,如果是要畫3天的數據,從時間覆蓋範圍上來講,第234 RRA 都符合要求。

   
那究竟挑選那個 RRA 的數據呢?如果 fetch 中有指定 –r 選項,則挑選 resolution 等於 –r 指定的值那個 RRA 的數據。如果沒有
   
    –r
選項,則從第一個合適的 RRA 中取數據。

C
fetch 如果不加 –-start--end-r ,則默認輸出 resolution 最小的那個 RRA 的數據。就像下面的例子1一樣。

四)實際例子

實例一 :默認情況

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE |more
                     eth0_in          eth0_out

1164467700: 1.1337243905e+01 9.6323712631e-02
1164468000: 1.7896453039e+01 0.0000000000e+00
1164468300: 1.8469136234e+01 1.2215723119e+00
。。。。(中間省略)
1164553800: 6.9634610564e+01 4.9644415243e+01
1164554100: nan nan



[Copy to clipboard]

CODE:

[root@dns1 bob]# date (當前時間)
11 26 23:11:12 CST 2006

[root@dns1 bob]# date -d '1970-1-1 1164554100 sec utc' (
最後一個記錄的時間)
11 26 23:15:00 CST 2006
[root@dns1 bob]#

[root@dns1 bob]# date -d '1970-1-1 1164467700 sec utc'
(第一個記錄的時間)
11 25 23:15:00 CST 2006
[root@dns1 bob]#


fetch
輸出的第一列是 timestamp ,表示後面的數據是在什麼時間收到的。”:” 後面就是DS的值。fetch 不能指定只取那個 DS 的數據,

只能一次性取出全部 DS 的值。可以看到,eth0.rrd 有兩個 DS eth0_in eth0_out ,每個 DS 的值用 空格進行分隔,一律採用科學記數法的格式。

如果 fetch 不指定 –-start -–end ,則默認取從當前時刻算起,往前1天的數據(289個記錄)。因爲現在是 23:11 ,還不到 23:15,所以最後一個記

錄的值是 NaN Not a Number),也就是 UNKNOWN 的意思。可以看到,兩個記錄之間的時間間隔是300


實例二:使用 --start --end 指定時間範圍

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE --start 1164467700 --end 1164553800 |more
                     eth0_in          eth0_out

1164468000: 1.7896453039e+01 0.0000000000e+00
1164468300: 1.8469136234e+01 1.2215723119e+00
1164468600: 1.5988336199e+01 1.4417769382e-01
。。。。。(中間省略很多)
1164553800: 6.9634610564e+01 4.9644415243e+01
1164554100: 1.7481962958e+02 2.3086574912e+02
[root@dns1 bob]#


可以看到第一個記錄和最後一個記錄都比 –-start   –-end 晚了300秒。


實例三 :使用 AT風格的時間

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE --start end-1day --end 1164553800 |more
                     eth0_in          eth0_out

1164467700: 1.1337243905e+01 9.6323712631e-02
1164468000: 1.7896453039e+01 0.0000000000e+00
。。。。。。。(中間省略很多)
1164554100: 1.7481962958e+02 2.3086574912e+02
[root@dns1 bob]#


注意 --start 的值是 end-1day ,這就是 AT風格的時間。end 就是 --end 中給出的1164553800 。具體的時間範圍是表示起始時間從1164553800 往前1天 。

可以看到,現在第一個記錄和實例二相比,提前了300秒。和例2中的 –start 一致了。所以能夠用 AT風格的時間的時候還是用 AT 風格的時間比較方便。

可以省去計算的麻煩,別人也比較容易看。

實例四 :提取指定 resolution 的數據

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE --start 1164467700 --end start+1day -r 1200 |more
                     eth0_in          eth0_out

1164468000: 1.7899370295e+01 3.8782610300e+00
1164469200: 2.0828335735e+01 3.4166666667e-01
1164470400: 1.4581351504e+01 3.5000000000e-02
。。。。。。(中間省略很多)
1164554400: 9.4367707174e+01 9.4866775629e+01
[root@dns1 bob]


可以看到,現在記錄兩兩之間的時間間隔變成了1200 了。輸出的行數爲 (86400/1200+1=73 72+1)。


實例五:如果指定一個不存在的 resolution 呢?

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE --start 1164467700 --end start+1day -r 1000 |more
                     eth0_in          eth0_out

1164468000: 1.7899370295e+01 3.8782610300e+00
1164469200: 2.0828335735e+01 3.4166666667e-01
。。。。。。(中間省略很多)
1164554400: 9.4367707174e+01 9.4866775629e+01
[root@dns1 bob]#


我們指定的 resolution 1000 ,但並沒有那個 RRA resolution 1000,所以 RRDtool 挑選了第一個合適的 resolution

也就是 1200 的那個 RRA 的數據作爲結果輸出。注意,RRDtool 只會挑選 resolution –r 指定的值相等或者更高的 RRA ,不會挑

選比 –r 指定的值小的 RRA
例如在該例子中,RRDtool 就不會挑選 resolution=300 的第一個 RRA 。爲什麼呢?

各位可以自己根據第三部分“fetch 如何提取數據的兩個準則考慮一下


實例六 :再來看一個 –r 的例子

如果我不想指定 –-start 或者 –end ,就想看 resolution 1200 呢?

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE -r 1200
                     eth0_in          eth0_out

1164470400: 1.4581351504e+01 3.5000000000e-02
1164471600: 1.9312781373e+01 3.5000000000e-02
。。。。。(中間省略很多)
1164555600: 8.5249300043e+01 7.0171152327e+01
1164556800: nan nan
[root@dns1 bob]#


咦?爲什麼還是使用記錄的時間間隔還是 300 秒呢?我們不是指定了 –r 1200 嗎?

老實說,這種方法 90% 以上的機率是不會成功嗎?那應該怎麼辦呢?

實例七 :正確使用 –r 的方式

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE -r 1200 --end $((($(date +%s)/1200)*1200)) |more
                     eth0_in          eth0_out

1164470400: 1.4581351504e+01 3.5000000000e-02
1164471600: 1.9312781373e+01 3.5000000000e-02
1164472800: 1.7383358822e+01 3.5000000000e-02
1164474000: 1.4781054841e+01 3.3225406191e-01
。。。。。。(中間省略很多)
1164555600: 8.5249300043e+01 7.0171152327e+01
1164556800: nan nan
[root@dns1 bob]#


現在 resolution 已經變成 1200 的了。同理,如果想看 720086400 resolution RRA,只要把 end 部分的 ( )中的數字替換爲相應的值就可以了。

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE -r 7200 --end $((($(date +%s)/7200)*7200))

[root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE -r 86400 --end $((($(date +%s)/86400)*86400))


實例八 :關於 fetch 提取數據準則1的測試

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd --start now-3day AVERAGE |more
                     eth0_in          eth0_out

1164298800: nan nan
1164300000: nan nan
。。。。。。(中間省略很多)
1164556800: 6.4118014239e+01 1.8871145267e+01
1164558000: nan nan
[root@dns1 bob]#


和第一個例子不同,這次的 resolution 1200 了?爲什麼呢?因爲我們指定的時間範圍是3天,而第一個 RRA只保存2天的數據多一點,所以 RRDtool 不會從

RRA 取數據,那麼會從那個 RRA 取數據呢?由於我們沒有指定 –r 選項,所以 RRDtool 選擇1200 的那個 RRA

實例九 :關於 fetch 提取數據準則2的測試

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool fetch eth0.rrd --start now-3day AVERAGE -r 7200 |more
                     eth0_in          eth0_out

1164304800: nan nan
1164312000: nan nan
1164319200: nan nan
。。。。。。(中間省略很多)
1164549600: 5.1899602485e+01 4.3073128067e-01
1164556800: 7.9766222122e+01 4.0644151093e+01
1164564000: nan nan
[root@dns1 bob]#


現在 resolution 不再是 1200 ,而是指定的 7200 了。

因爲雖然 resolution=1200 RRA 就可以滿足 --start --end 的需求,

但因爲 -r 指定 resolution=7200 ,所以從第3 RRA 中取數據

五)總結

從上面我們可以看出,fetch 實際上是非常複雜的一個命令,如果想要輸出你所要的數據,就必須考慮好幾個因素 :

A
第一是具體想輸出的時間範圍?

B
第二是計算好 –-start –end。建議至少給出一個,最好2個都給出

C
第三是如果有多個RRA符合條件,則使用 –r 指定具體的 resolution

使用RRDtool 進行繪圖(一)

**********************************************************************************************************************
注 :該教程參考瞭如下內容 :
A
)官方文檔 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B
abel 兄的大作 :http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
最後修改 :2006/11/17 17:35
**********************************************************************************************************************

一)前言

使用RRDtool 我們最關心什麼?當然是如何把數據畫出來了。雖然前面談了很多,但這些都是基礎來的。掌握好了,可以讓你在繪圖時更加得心應手。

本來還有 RPN (反向波蘭表達式)一節的,但考慮一下,覺得還是放到後面,先從基本的繪圖講起。

這一節的內容雖然很多,但基本都是實驗性的內容,只要多試幾次就可以了。

二、graph 操作的語法

[Copy to clipboard]

CODE:

rrdtool graph filename [option ...]
[data definition ...]
[data calculation ...]
[variable definition ...]
[graph element ...]
[print element ...]


其中的 data definitonvariable definition data calculation、分別是下面的格式

[Copy to clipboard]

CODE:

DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]
VDEF:vname=RPN expression
CDEF:vname=RPN expression


其中 filename 就是你想要生成的圖片文件的名稱,默認是 png 。你可以通過選項修改圖片的類型,可以有 PNGSVGEPSPDF四種。

A
DEF Definition (定義)的意思。定義什麼呢?你要繪圖,總要有數據源吧?DEF 就是告訴 RRDtool 從那個 RRD 中取出指定

DS
eth0_ineth0_out)的某個類型的統計值(還可以指定 resolutionstartend),並把這一切放入到一個變量 <vname>中 。

你可能會感到奇怪,爲什麼還有一個 CF 字段?因爲 RRA 有多種   CF 類型,有些 RRA 可能用來保存平均值、有些 RRA 可能用於統計最大值、

最小值等等。所以你必須同時指定使用什麼 CF 類型的 RRA的數據。至於 :start :end :reduce 則用得比較少,最常用的就是 :step 了,

它可以讓你控制 RRDtool 從那個 RRA 中取數據。

B
VDEF Variable Definition (變量定義)的意思。定義什麼呢?記得 MRTG 在圖表的下面有一個稱之爲 Legend 的部分嗎?

那裏顯示了1個或者2 DS MRTG 沒有 DS 一說,這裏是借用 RRDtool 的)的最大值平均值當前值。這些值是如何

計算的呢?

RRDtool
中用 VDEF 來定義。這個變量專門存放某個 DS 某種類型的值,例如 eth0_in 的最大值、eht0_out 的當前值等。當你需要象

    MRTG  
一樣輸出數字報表(Legend) 時,就可以在 GPRINT 子句(sub clause)中調用它。

同樣它也需要用一個變量來存放數值。要注意的是,舊版 的 RRDtool 中是用另外一種格式來達到相同的目的。新版的 RRDtool 則推薦使用

VDEF
語句。但在使用過程中,卻發現 VDEF 的使用反而造成了困擾。 例如你有5 DS 要畫,每個 DS 你都想輸出最大值、最小值、平均值

、當前值。   如果使用 VDEF ,則需要 4 * 5 = 20 VDEF 語句,這會造成極大的困擾。具體例子可以看第十一節數字報表部分。

C
CDEF Calculation Define 的意思。使用過MRTG 的都會體會到一點,MRTG 的計算能力實在太差了。例如你有兩個 Target

  
一個是 eth0_in , 一個是 eth0_out,如果要把它們相加起來,再除以8,得出 bytes 爲單位的值,如何計算呢?或者說你只想看
  
   eth0_in
中超過 10Mb/s 的那部分, 其餘的不關心,又如何實現呢?因爲 MRTG 不能對它從 log 取出來的數據進行修改,只能原
  
  
原本本的表現,所以很難滿足我們的要求。而使用 CDEF , 這一切都可以很容易的實現。CDEF 支持很多數學運算,甚至還支持簡
  
  
單的邏輯運算 if-then-else ,可以解決前面提到的第2個問題:如何只繪製你所關 心的數據。不過這一切都需要熟悉 RPN 的語法,
  
  
所以我們放到下一節介紹,這一節就介紹如何把 RRDtool 中的數據以圖表的方式顯示出來。
  
  
三)選項分類

本部分我們按照官方文檔的方式,把選項分成幾大類,分爲  

A
Time range 用於控制圖表的X軸顯示的起始/結束時間,也包括從RRA中提取指定時間的數據。

B
Labels 用於控制 X/Y 軸的說明文字。

C
Size 用於控制圖片的大小。

D
Limits 用於控制 Y 軸的上下限。

E
Grid 用於控制 X/Y 軸的刻度如何顯示。

F
Miscellaneous 其他選項。例如顯示中文、水印效果等等。

G
Report 數字報表

需要說明的是,本篇當中並不是列出了所有選項的用法,只是列出較爲常用的選項,如果想查看所有選項的的用法,可以到官方站點下載文檔,

這裏就不一一列出了,望各位見諒。


四)時間範圍控制(Time Range

[Copy to clipboard]

CODE:

[-s|--start time] [-e|--end time] [-S|--step seconds]


既然要繪圖,就應該有一個起始/結束的時間。Graph 操作中有 –s -e 選項。這兩個選項即可以用於控制圖表的 X 軸顯示的時間範圍,也可以用

於控制 RRDtool RRA 中提取對應時間的數據。如果沒有指定 –-end ,默認爲 now;如果沒有指定 –-start,則默認爲1天前。如果兩者都沒有

指定,則圖表默認顯示從當前算起1天內的。數
回頭看一下 DEF 中,也有 :start ,:end , :step ,這些和 –-start--end--step 之間有什麼關係呢?

讓我們先看 :step –step之間的關係是如何的。

下面以 eth0.rrrd 爲例,假設要繪製的時間範圍 range 等於 end -start[

A
)如果 0 <   ragne < 180000 (第一個 RRA 的時間覆蓋範圍) ,則默認從第1RRA中取數據 :

   
如果 DEF 中給出的 :step > 300 ,例如 1000 ,則從 resolution= 1000 的或者第一個高於 1000 RRA 中挑選數據,由於 eth0.rrd 中沒有

                                                    resolution = 1000
RRA,則 RRDtool 會從 resolution = 1200 的第2 RRA 中取數據。

   
如果 DEF 中給出的 :step <= 300 ,例如 200 ,則 RRDtool 會忽略該設定,還是從第一個 RRA 中取數據。

B
)如果 180000 < range < 720000   ,由於第一個RRA只能保存2天的數據,所以默認從第2RRA中取數據 :

   
如果 DEF 中給出的 :step > 1200 ,例如 1800,則 RRDtool 會從 resolution = 7200 的第3 RRA 中取數據

   
如果 DEF 中給出 :step<= 1200,例如 300 ,則 RRDtool 會忽略,還是從第2 RRA 中取數據

C
)如果 720000 < range <   4320000 ,則默認從第三個 RRA 中取數據 :

   
如果 DEF 中給出的 :step > 7200 ,例如 10000 ,則從第4 RRA中取數據

   
如果 DEF 中給出的 :step <= 7200 , 例如 1200 ,則忽略該值,並還是從第3 RRA 中取數據

D
)如果 4320000 < range < 63072000 ,則默認從第4 RRA 中取數據 :

   
如果 DEF 中給出的 :step > 86400 ,則行爲未知

   
如果 DEF 中給出的 :step <=86400 ,則從第4 RRA 中取數據

E
-S 選項可以直接控制 RRDtool 如何挑選 RRA

例如 -S 1200 ,即使DEF 中不加 :setp ,則 RRDtool 會從第2 RRA 中取數據,即使 rang < 180000

如果 -S :step 同時出現,則 :step 優先。

F
DEF 中的 :start :end 可以覆蓋 –-start –-end 的值。

   
默認情況下,如果 DEF 中不加 :start :end ,則等於 –-start –end

如果 DEF 中定義了 :start :end ,則以 :start :end 爲準。

實例1 :使用 –-start 指定 X 軸的起始時間

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool graph 1.png /
> --start now-120000 / #
表示起始時間是當前時間往前 120000 秒,也就是 33 個小時左右
> DEF:value1=eth0.rrd:eth0_in:AVERAGE /     #
eth0.rrd 中取出 eth0_in 的數據,CF 類型爲 AVERAGE
> AREA:value1#ff0000 #
方塊的形式來繪製 value1 ,注意這裏是用 value1 ,不是用 eth0_in
481x154 #
如果 RRDtool 有繪圖方面的語句,則這裏顯示圖片大小,否則爲 0x0
[root@dns1 bob]#




可以看到 X 軸的文字有些是亂碼,不過不要緊,你可以臨時已用 env LANG=C rrdtool xxxx 來解決該問題,或者在後面用

–n
來設定 RRDtool 使用中文字體,就不會出現這樣的情況了


實例2 :使用 :step 從第2RRA中取數據

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool graph 2.png /
> --start now-120000 /
> DEF:value1=eth0.rrd:eth0_in:AVERAGE:step=1000 / # :step
指定 resolution=1000
> AREA:value1#ff0000
481x154
[root@dns1 bob]#


這裏是 :step=1000,但 RRDtool 會取 :step=1200 的 第2 RRA 的數據來繪圖,可以和上面的 1.png 比較,發現比較平滑。

實例3 :使用 –S 從第2RRA中取數據

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool graph 4.png
> -S 1200 / #
使用 –S 控制 RRDtool resolution=1200 RRA 中取數據
> --start now-120000 /
> DEF:value1=eth0.rrd:eth0_in:AVERAGE /
> AREA:value1#ff0000       
481x154
[root@dns1 bob]#


可以看到和上面的圖一樣,說明 RRDtool 的確按照 -S 的設置從第2RRA 中取數據了

使用 –S 可以對 DEF 中所有的 DS 都使用相同的 resolution,等於在每個 DEF後都加上 :step=<value> value –S 的值

實例4 :同時使用 –S :step

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool graph 5.png
> -S 1200 / # -S
指定 resolution=1200
> --start now-120000 /
> DEF:value1=eth0.rrd:eth0_in:AVERAGE:step=300 / # :step
指定 resolution=300
> AREA:value1#ff0000    
481x154
[root@dns1 bob]#


可以看到 5.png 1.png 是一樣的,也就是說 –S 1200 並沒有起作用,而是 :step=300 起作用了

實例5 :使用 :start :end 只顯示指定時間內的數據

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool graph 1.png /
> --start now-1h / # X
軸顯示1個小時的長度
> DEF:value1=eth0.rrd:eth0_in:AVERAGE:start=now-600:end=now-300 / #
但只取10分鐘前到5分鐘前的這部分
> AREA:value1#00ff00:in  
475x168
[root@dns1 bob]#




如果我們不加 :start :end ,則效果如下 :



我們甚至可以讓兩個對象顯示不同的時間,例如

實例6 :讓兩個對象顯示不同時間段的數據

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool graph 1.png /
> --start now-2h / #
規定時間爲2小時內
> DEF:value1=eth0.rrd:eth0_in:AVERAGE:end=now:start=end-1h / #
規定時間爲1小時內
> DEF:value2=eth0.rrd:eth0_out:AVERAGE / #
沒有指定 :start :end,默認和 –-start 一樣也是2小時
> AREA:value1#00ff00:in /
> LINE2:value2#ff0000:out:STACK
475x168
[root@dns1 bob]#


實例7 :把一段時間分爲幾段分別顯示 :

[Copy to clipboard]

CODE:

[root@dns1 bob]# rrdtool graph 1.png /
> DEF:value1=eth0.rrd:eth0_in:AVERAGE:end=now:start=end-1h / #
當前1小時內
> DEF:value2=eth0.rrd:eth0_in:AVERAGE:end=now-1h:start=now-2h / # 2
小時前
> DEF:value3=eth0.rrd:eth0_in:AVERAGE:end=now-2h:start=now-3h / # 3
小時前
> LINE1:value1#00ff00:"1 hours ago" /
> LINE2:value2#ff0000:"2 hours ago" /
> LINE3:value3#000000:"3 hours ago"  
475x168
[root@dns1 bob]


我們把3個小時內的數據用三種不同粗細、不同顏色的曲線畫了出來。

看到了嗎,out部分(紅色)顯示了2個小時內的流量,而in部分(綠色)則只顯示了1個小時內的部分

在這裏要提一點,雖然我們指定了 –-start 或者 –-end ,或者 :start , :end,但並不意味着曲線就一定會從指定的時間點開始和結束。

例如我們上面指定了 :start=now-600:end=now-300 ,也就是隻顯示5分鐘的數據。但圖表出來的效果卻是10(10:05-10:15)分鐘

的數據,這是因爲我們挑選的時間當中不慎橫垮了兩個週期(10:05-10:10,10:10-10:15),所以 RRDtool 會把它們全部畫出來,而不是隻畫其中的5分鐘。
發佈了4 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章