Rrdtool

67 %
33 %
Information about Rrdtool
Education

Published on December 4, 2008

Author: fucheng

Source: slideshare.net

RRDTOOL [email_address] Abel [email_address]

講者簡介 楊禎葆 , 在一些論壇上慣用 abel/abelyang 等 ID, 目前任職於 TWNIC 技術組工程師 , 主要負責 DNS 的日常維護 郵件 系統管理 網站開發及程式撰寫 (PERL,PHP,C) RFC 編寫 , 協議研宄 ENUM/VoIP/IP-PBX 之研究與應用 教育訓練之規劃、教材編撰、講課 客服 網路 ( 有線、無線、憑證、路由、 VPN 等相關軟硬體 ) 管理 ISO 27001 …

楊禎葆 , 在一些論壇上慣用 abel/abelyang 等 ID, 目前任職於 TWNIC 技術組工程師 , 主要負責

DNS 的日常維護

郵件

系統管理

網站開發及程式撰寫 (PERL,PHP,C)

RFC 編寫 , 協議研宄

ENUM/VoIP/IP-PBX 之研究與應用

教育訓練之規劃、教材編撰、講課

客服

網路 ( 有線、無線、憑證、路由、 VPN 等相關軟硬體 ) 管理

ISO 27001



大綱 綜觀 rrdtool 資料格式 資料更新 繪圖 相關工具 精髓 - RPN (CDEF) rrdtool/mrtg 範例

綜觀 rrdtool

資料格式

資料更新

繪圖

相關工具

精髓 - RPN (CDEF)

rrdtool/mrtg

範例

寫在一開始 學習 rrdtool 的必要預備知識 對系統需有一定的了解 系統有那些資訊 懂一 Script Language Shell Script 、 PHP 、 Perl 、 python… SNMP 了解一般主機設備的 SNMP 設定方式及取值方法 監控的意義 觀測資料 了解變異 異常通知 趨勢預測

學習 rrdtool 的必要預備知識

對系統需有一定的了解

系統有那些資訊

懂一 Script Language

Shell Script 、 PHP 、 Perl 、 python…

SNMP

了解一般主機設備的 SNMP 設定方式及取值方法

監控的意義

觀測資料

了解變異

異常通知

趨勢預測

縮寫 / 術語 DS Data Source DST Data Source Type (gauge,counter…) RRA Round Robin Archives PDP Primary Data Point (update 的資料 CF Consolidation Function (MIN/MAX/AVERAGE…) CDP Consolidation Data Point, RRA 中合併數筆的 PDP 資料 Resolution 一個粒度的時間範圍 DEF data definiton VDEF variable definition CDEF data calculation

DS Data Source

DST Data Source Type (gauge,counter…)

RRA Round Robin Archives

PDP Primary Data Point (update 的資料

CF Consolidation Function (MIN/MAX/AVERAGE…)

CDP Consolidation Data Point, RRA 中合併數筆的 PDP 資料

Resolution 一個粒度的時間範圍

DEF data definiton

VDEF variable definition

CDEF data calculation

綜觀 rrdtool 作者 Tobi Oetiker ,同時他亦是 mrtg 的作者 描繪觀測資料的軟體 只要是帶時間性質之資料皆可借用 rrdtool 在觀測 流程 建立 rrd file - create 更新 rrd data - update 繪圖 - graph 其他工具程式

作者 Tobi Oetiker ,同時他亦是 mrtg 的作者

描繪觀測資料的軟體

只要是帶時間性質之資料皆可借用 rrdtool 在觀測

流程

建立 rrd file - create

更新 rrd data - update

繪圖 - graph

其他工具程式

綜觀 rrdtool- 常見的繪圖資料 網路流量 CPU Disk Memory 溫度 Ping Load Average 天氣 Service Status Apache 、 DNS 、 Mail 電信相關通話 交通流量 …

網路流量

CPU

Disk

Memory

溫度

Ping

Load Average

天氣

Service Status

Apache 、 DNS 、 Mail

電信相關通話

交通流量



綜觀 rrdtool- 其他工具程式 rrdtool update 更新資料 updatev 同上 , 帶執行結果 graph 繪圖 dump 輸出 XML 資料 (STDOUT) restore 將上列之 XML 資料轉成 .rrd last 查詢最後一筆資料時間 ( 少用 ) first 查詢第一筆資料時間 ( 少用 ) info 顯示 rrd 檔案的資訊 fetch 取得時間範圍內的 rrd 數值資料 tune 修改 DS 屬性 resize 修改 RRA 資料個數 xport 取得時間範圍內之 DS, 可跨多個 rrd file

rrdtool

update 更新資料

updatev 同上 , 帶執行結果

graph 繪圖

dump 輸出 XML 資料 (STDOUT)

restore 將上列之 XML 資料轉成 .rrd

last 查詢最後一筆資料時間 ( 少用 )

first 查詢第一筆資料時間 ( 少用 )

info 顯示 rrd 檔案的資訊

fetch 取得時間範圍內的 rrd 數值資料

tune 修改 DS 屬性

resize 修改 RRA 資料個數

xport 取得時間範圍內之 DS, 可跨多個 rrd file

大綱 綜觀 rrdtool 資料格式 資料更新 繪圖 相關工具 精髓 - RPN (CDEF) 相關工具 範例

綜觀 rrdtool

資料格式

資料更新

繪圖

相關工具

精髓 - RPN (CDEF)

相關工具

範例

資料格式 - 類別 COUNTER 累計值 最後以秒計算 數值為正數 為什麼 8:10 資料值為 12 ? 7200 1224548100 08:15 3600 1224547800 08:10 -1500 1224547500 08:05 -600 1224547200 08:00 -300 1224546900 07:55 4500 1224546600 07:50 4200 1224546300 07:45 3900 1224546000 07:40 3600 1224545700 07:35 3300 1224545400 07:30 3000 1224545100 07:25 2700 1224544800 07:20 2400 1224544500 07:15 2100 1224544200 07:10 1800 1224543900 07:05 1500 1224543600 07:00 1200 1224543300 06:55 900 1224543000 06:50 600 1224542700 06:45 300 1224542400 06:40 ds-counter Time Time(hh:mm)

COUNTER

累計值

最後以秒計算

數值為正數

資料格式 - 類別 DERIVE 同 COUNTER 可處理負數 7200 1224548100 08:15 3600 1224547800 08:10 -1500 1224547500 08:05 -600 1224547200 08:00 -300 1224546900 07:55 4500 1224546600 07:50 4200 1224546300 07:45 3900 1224546000 07:40 3600 1224545700 07:35 3300 1224545400 07:30 3000 1224545100 07:25 2700 1224544800 07:20 2400 1224544500 07:15 2100 1224544200 07:10 1800 1224543900 07:05 1500 1224543600 07:00 1200 1224543300 06:55 900 1224543000 06:50 600 1224542700 06:45 300 1224542400 06:40 ds-derive Time Time(hh:mm)

DERIVE

同 COUNTER

可處理負數

資料格式 - 類別 ABSOLUTE 數值為相對比值 第一筆資料為對比 7200 1224548100 08:15 3600 1224547800 08:10 -1500 1224547500 08:05 -600 1224547200 08:00 -300 1224546900 07:55 4500 1224546600 07:50 4200 1224546300 07:45 3900 1224546000 07:40 3600 1224545700 07:35 3300 1224545400 07:30 3000 1224545100 07:25 2700 1224544800 07:20 2400 1224544500 07:15 2100 1224544200 07:10 1800 1224543900 07:05 1500 1224543600 07:00 1200 1224543300 06:55 900 1224543000 06:50 600 1224542700 06:45 300 1224542400 06:40 ds-absolute Time Time(hh:mm)

ABSOLUTE

數值為相對比值

第一筆資料為對比

資料格式 - 類別 GAUGE 直接數值 , 非以秒計 7200 1224548100 08:15 3600 1224547800 08:10 -1500 1224547500 08:05 -600 1224547200 08:00 -300 1224546900 07:55 4500 1224546600 07:50 4200 1224546300 07:45 3900 1224546000 07:40 3600 1224545700 07:35 3300 1224545400 07:30 3000 1224545100 07:25 2700 1224544800 07:20 2400 1224544500 07:15 2100 1224544200 07:10 1800 1224543900 07:05 1500 1224543600 07:00 1200 1224543300 06:55 900 1224543000 06:50 600 1224542700 06:45 300 1224542400 06:40 ds-gauge Time Time(hh:mm)

GAUGE

直接數值 , 非以秒計

資料格式 - 建立檔案 建一個一個 RRD 檔案時需指定 rrd 檔名 (filename) 資料的更新頻率 , 預設為 300s (--step) 資料啟始時間 , 預設現在 , 建議此值可為 step 除盡 (-b) 建立 DS 內容 DS:ds-name:DST:Heartbeat:Min:Max , Ex: DS:ds0:GAUGE:1200:-10000:10000 DS:ds1:COUNTER:1200:0:U 宣告一個 ds0|ds1 的變數 , 資料類型為 GAUGE|COUNTER, 資料的有效範圍是 1200 ( 秒 ), 其值介於 -10000~10000|0~ 無限制 (U) rrdtool create filename [--start|-b start time] [--step|-s step] [DS:ds-name:DST:dst arguments] [RRA:CF:cf arguments]

建一個一個 RRD 檔案時需指定

rrd 檔名 (filename)

資料的更新頻率 , 預設為 300s (--step)

資料啟始時間 , 預設現在 , 建議此值可為 step 除盡 (-b)

建立 DS 內容

DS:ds-name:DST:Heartbeat:Min:Max , Ex:

DS:ds0:GAUGE:1200:-10000:10000

DS:ds1:COUNTER:1200:0:U

宣告一個 ds0|ds1 的變數 , 資料類型為 GAUGE|COUNTER, 資料的有效範圍是 1200 ( 秒 ), 其值介於 -10000~10000|0~ 無限制 (U)

資料格式 - 建立檔案 heartbeat Heartbeat ( 上頁例 DS 中的 1200), 若 PDP 未 update,1200 秒內皆以前一筆資料為數值 , 若超出 1200 秒 , 則視為未知 未知在 RRD 中以 UNKNOWN 來表示 有時會以 UNKN 來表示 在 fetch/graph 時以 Nan 表示 在 CDEF (RPN) 中則以 UN 來表示 heartbeat 通常為 step 之倍數 建議可為最大的 CDP 之 resolution, 可避免未更新時出現過多的 UNKNOWN

Heartbeat ( 上頁例 DS 中的 1200), 若 PDP 未 update,1200 秒內皆以前一筆資料為數值 , 若超出 1200 秒 , 則視為未知

未知在 RRD 中以 UNKNOWN 來表示

有時會以 UNKN 來表示

在 fetch/graph 時以 Nan 表示

在 CDEF (RPN) 中則以 UN 來表示

heartbeat 通常為 step 之倍數

建議可為最大的 CDP 之 resolution, 可避免未更新時出現過多的 UNKNOWN

資料格式 - 建立檔案 RRA 宣告資料儲存的 合併特性 (CF) 、 連續性 (xff) 、 時間特性 (steps) 、 筆數 (rows) 若 step 為 300 秒時 RRA:AVERAGE:0.5:1:60 因為 step 為 1 故即是平時更新共存 60 筆 , 合計 5 小時資料 RRA:AVERAGE:0.8:6:30 在資料超過 60 筆時 , 每 6 筆合併成一筆 , 取其平均值來儲存為一筆 此 6 筆五分鐘資料在合併時 , 需含有 0.8 (=80%) 比例 ( 6x0.8=4.8, 故指每 6 個 step 至少要有五個 step ) 有值才會為一個新的數值 (CDP), 則整個 RRA 值為未知 RRA:MAX:0.1:24:10 rrdtool create filename [--start|-b start time] [--step|-s step] [DS:ds-name:DST:dst arguments] [ RRA: AVERAGE | MIN | MAX | LAST : xff : steps : rows ]

宣告資料儲存的 合併特性 (CF) 、 連續性 (xff) 、 時間特性 (steps) 、 筆數 (rows)

若 step 為 300 秒時

RRA:AVERAGE:0.5:1:60

因為 step 為 1 故即是平時更新共存 60 筆 , 合計 5 小時資料

RRA:AVERAGE:0.8:6:30

在資料超過 60 筆時 , 每 6 筆合併成一筆 , 取其平均值來儲存為一筆

此 6 筆五分鐘資料在合併時 , 需含有 0.8 (=80%) 比例 ( 6x0.8=4.8, 故指每 6 個 step 至少要有五個 step ) 有值才會為一個新的數值 (CDP), 則整個 RRA 值為未知

RRA:MAX:0.1:24:10

資料格式 -RRA 初學時對 RRA/PDP 較不容易理解 , 為 RRD 之核心 RRA 即是設計資料之筆數 (rows) 及密度 (steps) 及總週期 RRA:AVERAGE:0.5:1:603 RRA:AVERAGE:0.5:6:603 RRA:AVERAGE:0.5:24:603 RRA:AVERAGE:0.5:288:800

初學時對 RRA/PDP 較不容易理解 , 為 RRD 之核心

RRA 即是設計資料之筆數 (rows) 及密度 (steps) 及總週期

資料格式 - 再論 RRA RRA 數值儲存皆以距現在 (NOW) 多久來進行儲存 , 顯示時再帶出真實時間 即為 Round Robin 之特性 依據 Resolution, 畫圖時取值以可以表現最細的資料為優先 畫一天資料以 5 分鐘資料 288 筆為主 , 而不會用一天 1 筆的資料來畫 若以右表計算 , 此 RRA 時間總長為 12 天 , 而非 5m X 12 + 30m X 12 + …

RRA 數值儲存皆以距現在 (NOW) 多久來進行儲存 , 顯示時再帶出真實時間

即為 Round Robin 之特性

依據 Resolution, 畫圖時取值以可以表現最細的資料為優先

畫一天資料以 5 分鐘資料 288 筆為主 , 而不會用一天 1 筆的資料來畫

若以右表計算 , 此 RRA 時間總長為 12 天 , 而非 5m X 12 + 30m X 12 + …

資料格式 - 再論 RRA

資料格式 - 再論 RRA PDP 經過 CDP 後的資料變化

PDP 經過 CDP 後的資料變化

資料格式 - 建立檔案小結 了解資料的特性 , 以建立對應的 DST 累計的數值資料或是獨立的數值 數值的有效範圍 step 雖最小可至 1 秒 , 但適當的間隔還是需要的 300s/60s 最常用到 --start 最好對齊日期 , 也就是被 86400 除盡 若精於 PDP/CDP 算計 , 任何時間皆可 rrd 檔案建立後 size 即不會變化 基本大小 344 bytes 一個 DS 宣告佔 200 bytes 一個 PDP/CDP 佔 8 bytes (64bits)

了解資料的特性 , 以建立對應的 DST

累計的數值資料或是獨立的數值

數值的有效範圍

step 雖最小可至 1 秒 , 但適當的間隔還是需要的

300s/60s 最常用到

--start 最好對齊日期 , 也就是被 86400 除盡

若精於 PDP/CDP 算計 , 任何時間皆可

rrd 檔案建立後 size 即不會變化

基本大小 344 bytes

一個 DS 宣告佔 200 bytes

一個 PDP/CDP 佔 8 bytes (64bits)

大綱 綜觀 rrdtool 資料格式 資料更新 繪圖 相關工具 精髓 - RPN (CDEF) rrdtool/mrtg 範例

綜觀 rrdtool

資料格式

資料更新

繪圖

相關工具

精髓 - RPN (CDEF)

rrdtool/mrtg

範例

資料更新 rrdtool 的資料以 update 的指令來進行資料的更新 資料更新時指定檔名 (filename) rrdtool update ex1.rrd -t ds0:ds1 1227628800:99:100 rrdtool update ex1.rrd 1227628800:99:100 rrdtool update ex1.rrd 1227628800@99:100 時間欄位可以 N 表示現在 rrdtool update ex1.rrd N:99:100 rrdtool update filename --template|-t ds-name:ds-name:... time|N:value[:value...] at-time@value[:value...] [ time:value[:value...] ..]

rrdtool 的資料以 update 的指令來進行資料的更新

資料更新時指定檔名 (filename)

rrdtool update ex1.rrd -t ds0:ds1 1227628800:99:100

rrdtool update ex1.rrd 1227628800:99:100

rrdtool update ex1.rrd 1227628800@99:100

時間欄位可以 N 表示現在

rrdtool update ex1.rrd N:99:100

資料更新 - 資料來源 SNMP 取得 需自己寫對應的程式 snmpget/snmpwalk 是取值的 command Script/Program 等取得 讀取系統的資訊

SNMP 取得

需自己寫對應的程式

snmpget/snmpwalk 是取值的 command

Script/Program 等取得

讀取系統的資訊

資料更新 - 範例 IF-MIB::ifInOctets.1 = Counter32: 4161700199

資料更新 - 範例執行結果 由上例可知 ,Script 需對字串處理有一定認識 不同的程式有不同的處理方法 此更新程式可借由 crontab 根據其 step 來進行更新

由上例可知 ,Script 需對字串處理有一定認識

不同的程式有不同的處理方法

此更新程式可借由 crontab 根據其 step 來進行更新

資料更新 -updatev [root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:0 return_value = 0 create 後第一次更新 , 因 Counter 故仍無值 [root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:1 return_value = 0 10 秒內又做了更新 , 因在同一 step 內 , 且為 PDP 故僅回應成功 (0) [root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:10 return_value = 0 [1227772700]RRA[AVERAGE][1]DS[ds0] = 1.0000000000e+01 10 秒時 , 做了數值 10 的更新 , 故每秒為 1 [root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:10 return_value = 0 處在 10~20 之間 [root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:30 return_value = 0 [1227772710]RRA[AVERAGE][1]DS[ds0] = 2.0000000000e+00 第 20 秒時更新為 10, 故實際數值為 0 rrdtool create rrd/ex5.rrd -s 10 DS:ds0:COUNTER:20:0:10000 RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:1:6:600 RRA:AVERAGE:0.5:12:600

[root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:0

return_value = 0

create 後第一次更新 , 因 Counter 故仍無值

[root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:1

return_value = 0

10 秒內又做了更新 , 因在同一 step 內 , 且為 PDP 故僅回應成功 (0)

[root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:10

return_value = 0

[1227772700]RRA[AVERAGE][1]DS[ds0] = 1.0000000000e+01

10 秒時 , 做了數值 10 的更新 , 故每秒為 1

[root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:10

return_value = 0

處在 10~20 之間

[root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:30

return_value = 0

[1227772710]RRA[AVERAGE][1]DS[ds0] = 2.0000000000e+00

第 20 秒時更新為 10, 故實際數值為 0

[root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:60 return_value = 0 [1227772720]RRA[AVERAGE][1]DS[ds0] = 3.0000000000e+00 30 秒 , 前數為 10, 故 (60-10)/10=5 [root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:100 return_value = 0 [1227772730]RRA[AVERAGE][1]DS[ds0] = NaN [1227772740]RRA[AVERAGE][1]DS[ds0] = NaN [1227772750]RRA[AVERAGE][1]DS[ds0] = 2.0000000000e+01 [1227772760]RRA[AVERAGE][1]DS[ds0] = 2.0000000000e+01 [1227772740]RRA[AVERAGE][6]DS[ds0] = ??? 60 秒時更新 , 前兩次未更新 , 故值皆視為 0.39… 集滿 6 次 , 依 RRA 設定計算 6 次之總合平均 其 CDP 秒數定位為該 6 筆之最後一筆

[root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:60

return_value = 0

[1227772720]RRA[AVERAGE][1]DS[ds0] = 3.0000000000e+00

30 秒 , 前數為 10, 故 (60-10)/10=5

[root@twnic rrd]# rrdtool updatev rrd/ex5.rrd N:100

return_value = 0

[1227772730]RRA[AVERAGE][1]DS[ds0] = NaN

[1227772740]RRA[AVERAGE][1]DS[ds0] = NaN

[1227772750]RRA[AVERAGE][1]DS[ds0] = 2.0000000000e+01

[1227772760]RRA[AVERAGE][1]DS[ds0] = 2.0000000000e+01

[1227772740]RRA[AVERAGE][6]DS[ds0] = ???

60 秒時更新 , 前兩次未更新 , 故值皆視為 0.39…

集滿 6 次 , 依 RRA 設定計算 6 次之總合平均

其 CDP 秒數定位為該 6 筆之最後一筆

rrdtool 在安裝同時會裝 perl 、 python 、 tcl 相關模組 Perl python,tcl ? 資料更新 - 其他語言 RRDs::update ($rrd,"$time:$value"); RRDs::create($rrd,"–start", time()-1,"–step", 300, "DS:index:GAUGE:900:U:U", "RRA:AVERAGE:0.5:1:600" );

rrdtool 在安裝同時會裝 perl 、 python 、 tcl 相關模組

Perl

python,tcl ?

大綱 綜觀 rrdtool 資料格式 資料更新 繪圖 相關工具 精髓 - RPN (CDEF) rrdtool/mrtg 範例

綜觀 rrdtool

資料格式

資料更新

繪圖

相關工具

精髓 - RPN (CDEF)

rrdtool/mrtg

範例

繪圖 繪圖是 rrdtool 最引人入勝的地方 至少表面上是這樣 個人覺得 繪圖 +CDEF 才是最大的亮點 以 rrdtool graph 的指令開始作圖 , 大致可區分為 圖表的控制 繪圖的時間區磈 (-s –e …) 圖表描述 (-t –v ) 長寛及區磈控制 X/Y 軸的刻度及高度 (-u –l –x –y …) 資料取值 DEF 來源 CDEF 運算 VDEF 常數 作圖的控制 資料描繪的類型 資料的註記

繪圖是 rrdtool 最引人入勝的地方

至少表面上是這樣

個人覺得 繪圖 +CDEF 才是最大的亮點

以 rrdtool graph 的指令開始作圖 , 大致可區分為

圖表的控制

繪圖的時間區磈 (-s –e …)

圖表描述 (-t –v )

長寛及區磈控制

X/Y 軸的刻度及高度 (-u –l –x –y …)

資料取值

DEF 來源

CDEF 運算

VDEF 常數

作圖的控制

資料描繪的類型

資料的註記

繪圖 - 時間控制 在繪圖時以 -s timestamp|now-{N{d|w|m|y}} 啟始時間 -e 同上 結束時間 預設為現在過去一天 一小時的圖 一年的圖

在繪圖時以

-s timestamp|now-{N{d|w|m|y}} 啟始時間

-e 同上 結束時間

預設為現在過去一天

一小時的圖

一年的圖

繪圖 - 時間控制 依不同的時間長度 , rrdtool 在繪圖取值時 , 以能夠取得完整的 RRA 時間為主 (resolution) step=300, 若畫一天資料之 5 分之資料不足一天 , 但 30 分資料有則就用 30 分鐘資料來繪制 可以 – S (--step) 來控制想要的 resolution, 但若資料量不能滿足該時段 , 則仍為回到上點來處理 也可以用 DEF 的宣告來控制 resolution, 此做法後面會有較詳細的描述 -S 1800 結果 :

依不同的時間長度 , rrdtool 在繪圖取值時 , 以能夠取得完整的 RRA 時間為主 (resolution)

step=300, 若畫一天資料之 5 分之資料不足一天 , 但 30 分資料有則就用 30 分鐘資料來繪制

可以 – S (--step) 來控制想要的 resolution, 但若資料量不能滿足該時段 , 則仍為回到上點來處理

也可以用 DEF 的宣告來控制 resolution, 此做法後面會有較詳細的描述

-S 1800 結果 :

繪圖 - 圖表描述 -t title 描述 -v Y 軸描述 (X 軸為時間 )

-t title 描述

-v Y 軸描述 (X 軸為時間 )

繪圖 - 長寛及區磈控制 -w width 寛度 -h height 高度 注意此長寛通常指圖區 , 也就是畫圖的那個部份 [ -c | --color COLORTAG#rrggbb[aa]] 控制圖表中的 -c "BACK#000000" -c "SHADEA#000000" -c "SHADEB#000000" -c "FONT#DDDDDD" -c "CANVAS#202020" -c "GRID#666666" -c "MGRID#AAAAAA" -c "FRAME#202020" -c "ARROW#FFFFFF"

-w width 寛度

-h height 高度

注意此長寛通常指圖區 , 也就是畫圖的那個部份

[ -c | --color COLORTAG#rrggbb[aa]] 控制圖表中的

繪圖 - 長寛及區磈控制 COLORTAG BACK, 背景色 SHADEA , 上左的邊線 SHADEB , 下右的邊線 CANVAS, 圖區的背景色 M GRID , 主格線 GRID , 副格線 ARROW , 箭頭 FRAME ??? FRAME for the line around the color spots

繪圖 - X/Y 軸的刻度及高度 數值高度 -u 控制繪圖時的正數高度 -l 負數高度 一般而言不需要特別指定數值高度 , rrd 會自己調整區問

數值高度

-u 控制繪圖時的正數高度

-l 負數高度

一般而言不需要特別指定數值高度 , rrd 會自己調整區問

繪圖 - X/Y 軸的刻度及高度 刻度 在 rrd 中是一個較不容易了解的問題 實際中不需要特別去定義自己所有的刻度 ( 時間或數值 ), rrd 會自己幫你計算 若不要刻度值只要使用 --x-grid none --y-grid none

刻度

在 rrd 中是一個較不容易了解的問題

實際中不需要特別去定義自己所有的刻度 ( 時間或數值 ), rrd 會自己幫你計算

若不要刻度值只要使用

--x-grid none

--y-grid none

繪圖 - X 軸的刻度 [ -x | --x-grid GTM : GST : MTM : MST : LTM : LST : LPR : LFM ] 看不懂 ? -x HOUR:8:DAY:2:DAY:2:86400:%Y/%m/%d GTM:GST Grid Time 小格線一格多久時間 MTM:MST Major Grid Time 小格線一格多久時間 LTM:LST 每格多久放時間標記 LPR 標記要偏移多少時間 LFM strftime (date) 時間格式

[ -x | --x-grid GTM : GST : MTM : MST : LTM : LST : LPR : LFM ]

看不懂 ?

-x HOUR:8:DAY:2:DAY:2:86400:%Y/%m/%d 主要格線一格為二天 次要格線 8 小時故共 6 小格 隔兩天輸出日期並日期移到 86400 秒 時間格式 %Y/%m/%d

繪圖 - Y 軸的刻度 Y 軸的處理建議您完全交給 rrd 即可 -X value 可控資料以 10^N 次方出現 (N=-18 、 -15 、 -12 、 -9 、 -6 、 -3 、 0 、 3 、 6 、 9 、 12 、 15 、 18)

Y 軸的處理建議您完全交給 rrd 即可

-X value 可控資料以 10^N 次方出現 (N=-18 、 -15 、 -12 、 -9 、 -6 、 -3 、 0 、 3 、 6 、 9 、 12 、 15 、 18)

繪圖 繪圖參數何其多 但常用的不多 -s start -e end -X 3 6 9 …for K M G -w width -h height -u upper -l lower -t title -S step -n FONTTAG -c COLORTAG 但最重要的在 資料定義 (DEF,VDEF,CDEF, 及計算 (RPN) 以及 畫圖時的藝術細胞

繪圖參數何其多

但常用的不多

-s start

-e end

-X 3 6 9 …for K M G

-w width

-h height

-u upper

-l lower

-t title

-S step

-n FONTTAG

-c COLORTAG

但最重要的在 資料定義 (DEF,VDEF,CDEF, 及計算 (RPN) 以及 畫圖時的藝術細胞

繪圖 - DEF DEF 定義了要從什麼檔案取什麼值 一個 graph 可以定義許多 DEF vname 變數名稱 rrdfile 那個檔案 ds-name 那個 DS CF 因為一個 DS 可能有多個 CF 故要指出什麼 CF step 一個 DS 可能有多個 RRA, 要告知要什麼 resolution start 取這個 DS 中何時開始的值 end 同上理 , 結束 reduce 減少資料密度 DEF: <vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>] [:start=<time>][:end=<time>][:reduce=< CF >]

DEF 定義了要從什麼檔案取什麼值

一個 graph 可以定義許多 DEF

vname 變數名稱

rrdfile 那個檔案

ds-name 那個 DS

CF 因為一個 DS 可能有多個 CF 故要指出什麼 CF

step 一個 DS 可能有多個 RRA, 要告知要什麼 resolution

start 取這個 DS 中何時開始的值

end 同上理 , 結束

reduce 減少資料密度

繪圖 - DEF DEF 最短的宣告只需 DEF: <vname>=<rrdfile>:<ds-name>:<CF> 接下來的參數 (Ex: step/start/end) 不一定用到 step 會影響取用那個 RRA start/end start=timestamp/now-3w end 和 start 相同表示法

DEF 最短的宣告只需

DEF: <vname>=<rrdfile>:<ds-name>:<CF>

接下來的參數 (Ex: step/start/end) 不一定用到

step 會影響取用那個 RRA

start/end

start=timestamp/now-3w

end 和 start 相同表示法

繪圖 - DEF 承前例 , q2 之 DEF 加入 start/end DEF:q2=rrd/ex6.rrd:q:AVERAGE:step=86400:start=now-8d:end=now-4d

承前例 , q2 之 DEF 加入 start/end

繪圖 - VDEF 意即一個常數 RPN 可視為一種運算式 VDEF : vname = RPN expression

意即一個常數

RPN 可視為一種運算式

繪圖 - CDEF VDEF 是 graph 中最重要的部份 , 其利用 RPN 方法 , 將一個表達式轉化的方法 a*-1 => a,-1,* a+b => a,b,+ a+b*c => a,b,c,*,+ (a+b)*(c-d)=> a,b,+,c,d,-,* a+b/c+d => a,b,c,/,+,d,+ => d,a,b,c,/,+,+ x*(y+z*(a+b*(c-d))/e) => xyzabcd-*+*e/+* ( 本例于不寫逗號 ) √ (a*b) /3 => a,b,*,SQRT,/ if a = UN then a=0 => a,UN,0,a,IF 掌握 RPN, 才能畫好圖

VDEF 是 graph 中最重要的部份 , 其利用 RPN 方法 , 將一個表達式轉化的方法

a*-1 => a,-1,*

a+b => a,b,+

a+b*c => a,b,c,*,+

(a+b)*(c-d)=> a,b,+,c,d,-,*

a+b/c+d => a,b,c,/,+,d,+ => d,a,b,c,/,+,+

x*(y+z*(a+b*(c-d))/e) => xyzabcd-*+*e/+* ( 本例于不寫逗號 )

√ (a*b) /3 => a,b,*,SQRT,/

if a = UN then a=0 => a,UN,0,a,IF

掌握 RPN, 才能畫好圖

繪圖 - CDEF 概念說明 : 正數 : 劃數值 負數 : 畫佔比 佔比有 CDEF 計算而來

繪圖 - CDEF 左邊為計數 , 為 AREA+STACK, 右圖為佔比 , 為 CDEF, 可以觀察出分布情形

左邊為計數 , 為 AREA+STACK,

右圖為佔比 , 為 CDEF, 可以觀察出分布情形

繪圖 - 圖磈 繪圖主要處理 CANVAS 及 legend

繪圖主要處理 CANVAS 及 legend

繪圖 - 圖區的描繪 VRULE:time#color 以某一時間點劃一垂直線 , 通常用在跨天跨月時月 HRULE:value#color 以某一值劃一水平線 , 通常用在標示資料特性 , 如該線之上為 brust 之類等 TICK:vname#rrggbb[aa][:fraction[:legend]] 可以在圖的資料區 , 畫上一個顏色 . 有點類似底色 , 但會更據 DSN 來晝 , 而不畫 0 值或是 UNKNOWN 值 aa 是透明度 , 數值介於 ( 最透明 )00~ff( 最不透明 ) fraction        佔資料區的比例 , 以 0.0~1.0 表示 , 0.5 表示佔一半 legend                圖例名稱

VRULE:time#color

以某一時間點劃一垂直線 , 通常用在跨天跨月時月

HRULE:value#color

以某一值劃一水平線 , 通常用在標示資料特性 , 如該線之上為 brust 之類等

TICK:vname#rrggbb[aa][:fraction[:legend]]

可以在圖的資料區 , 畫上一個顏色 . 有點類似底色 , 但會更據 DSN 來晝 , 而不畫 0 值或是 UNKNOWN 值

aa 是透明度 , 數值介於 ( 最透明 )00~ff( 最不透明 ) fraction        佔資料區的比例 , 以 0.0~1.0 表示 , 0.5 表示佔一半 legend                圖例名稱

繪圖 - 圖區的描繪 AREA:value[#color][:[legend] 在圖區中將數值至 0 間填滿對應顏色 負值亦同 AREA 在畫圖時存在覆蓋狀況 , 故對資料大小及處理需留意 STACK:vname#color[:legend] (deprecated) 在 AREA 的基礎上堆疊上數值 最下面為 AREA 其上可多個 STACK LINE[1|2|3]:value[#color][:[legend]] 在圖區中依資料畫線 ,[1|2|3] 中的數字愈大表線愈粗

AREA:value[#color][:[legend]

在圖區中將數值至 0 間填滿對應顏色

負值亦同

AREA 在畫圖時存在覆蓋狀況 , 故對資料大小及處理需留意

STACK:vname#color[:legend] (deprecated)

在 AREA 的基礎上堆疊上數值

最下面為 AREA 其上可多個 STACK

LINE[1|2|3]:value[#color][:[legend]]

在圖區中依資料畫線 ,[1|2|3] 中的數字愈大表線愈粗

繪圖 - 圖區的描繪 範例

繪圖 - 圖例 / 說明 PRINT:vname:format 直接輸出至 shell 下 格式同 GPRINT GPRINT:vname:format 寫在圖上 GPRINT 的對齊需經由不斷的微調 ,rrd 不會主動對齊 %N.Nle 科學記號 %N.Nlf 純數字 %s 依數字換算單位 1000k->1M %S 同上 , 但統一度量 COMMENT:text 一段文字 , 如右側之主機 , 最大 , 最小… STACK:q2#FF00FF:&quot;DNS-B &quot; GPRINT:q2:MAX:&quot;%6.0lf&quot; GPRINT:q2:MIN:&quot;%6.0lf&quot; GPRINT:q2:AVERAGE:&quot;%6.0lf&quot; GPRINT:q2:LAST:&quot;%6.0lf &quot; COMMENT:&quot; 主機 最大 最小 平均 現在 &quot;

PRINT:vname:format

直接輸出至 shell 下

格式同 GPRINT

GPRINT:vname:format

寫在圖上

GPRINT 的對齊需經由不斷的微調 ,rrd 不會主動對齊

%N.Nle 科學記號

%N.Nlf 純數字

%s 依數字換算單位 1000k->1M

%S 同上 , 但統一度量

COMMENT:text

一段文字 , 如右側之主機 , 最大 , 最小…

繪圖 - SHIFT SHIFT:vname:offset 要將一段資料 (vname) 平移一段時間 (offset)

SHIFT:vname:offset

要將一段資料 (vname) 平移一段時間 (offset)

繪圖 - SHIFT 看得出一點東西但波動好像太大了 因為依據 resolution 來畫 , 故高低變化大

看得出一點東西但波動好像太大了

因為依據 resolution 來畫 , 故高低變化大

繪圖 - SHIFT 利用 CDEF 之 TREND 功能 , 計算月線 t1=q1,2592000,TREND

利用 CDEF 之 TREND 功能 , 計算月線

t1=q1,2592000,TREND

繪圖 - 漸層效果 沒有任何 function 可達到 需重覆許多差一點點的 CDEF/ 顏色 以達到漸進效果

沒有任何 function 可達到

需重覆許多差一點點的 CDEF/ 顏色 以達到漸進效果

繪圖 - 結語 繪圖功能雖然龐大 , 但其實常用的就那幾個 要畫漂亮的圖 , 不是資料很完美就是 graph 龐大 畫圖時的配色好 , 更容易顯示一些質感 X 軸資料在時間而長時易有問題 (P.49), 此時需使用 – x 參數來調整

繪圖功能雖然龐大 , 但其實常用的就那幾個

要畫漂亮的圖 , 不是資料很完美就是 graph 龐大

畫圖時的配色好 , 更容易顯示一些質感

X 軸資料在時間而長時易有問題 (P.49), 此時需使用 – x 參數來調整

大綱 綜觀 rrdtool 資料格式 資料更新 繪圖 相關工具 精髓 - RPN (CDEF) rrdtool/mrtg 範例

綜觀 rrdtool

資料格式

資料更新

繪圖

相關工具

精髓 - RPN (CDEF)

rrdtool/mrtg

範例

相關工具 rrdtool tune 調整 DS rrdtoo resize 調整 RRA 數量 rrdtool fetch 抓取 RRA 的數值 rrdtool info 查看 rrd 檔案資訊

rrdtool tune 調整 DS

rrdtoo resize 調整 RRA 數量

rrdtool fetch 抓取 RRA 的數值

rrdtool info 查看 rrd 檔案資訊

相關工具 - tune rrdtool tune filename [--heartbeat|-h ds-name:heartbeat] [--data-source-type|-d ds-name:DST] [--data-source-rename|-r old-name:new-name] [--minimum|-i ds-name:min] [--maximum|-a ds-name:max] [ … 其他略 ] [root@twnic rrd]# rrdtool tune example.rrd DS[q] typ: GAUGE hbt: 86400 min: 0.0000 max: 1000 .0000 DS[r] typ: GAUGE hbt: 86400 min: 0.0000 max: 1000 .0000 [root@twnic rrd]# rrdtool tune example.rrd -h q:3 [root@twnic rrd]# rrdtool tune example.rrd DS[q] typ: GAUGE hbt: 3 min: 0.0000 max: 1000.0000 DS[r] typ: GAUGE hbt: 86400 min: 0.0000 max: 1000 .0000

相關工具 - resize rrdtool resize filename rranum GROW|SHRINK rows [root@twnic rrd]# rrdtool info example.rrd |grep row # 查看 rra 檔案的訊息 rra[0].rows = 644000 # 0 為 rranum, 可知有 644000 筆 rra[0].pdp_per_row = 1 rra[1].rows = 72000 rra[1].pdp_per_row = 30 rra[2].rows = 36000 rra[2].pdp_per_row = 120 rra[3].rows = 18000 rra[3].pdp_per_row = 1440 [root@twnic rrd]# rrdtool resize example.rrd 0 SHRINK 604000 # SHRINK 意為縮減 You have new mail in /var/spool/mail/root [root@twnic rrd]# rrdtool info resize.rrd |grep row # 調整過後的檔案會另存 rra[0].rows = 40000 rra[0].pdp_per_row = 1 rra[1].rows = 72000 rra[1].pdp_per_row = 30 rra[2].rows = 36000 rra[2].pdp_per_row = 120 rra[3].rows = 18000 rra[3].pdp_per_row = 1440

相關工具 - fetch rrdtool fetch filename.rrd CF [-r|--resolution resolution] [-s|--start start] [-e|--end end] [root@twnic rrd]# rrdtool fetch example.rrd AVERAGE -s -33d -e -32d -r 300 q r 1225048500: 2.6199000000e+02 2.6199000000e+02 1225051500: 2.4797333333e+02 2.4797333333e+02 1225051800: 2.6394666667e+02 2.6394666667e+02 1225052100: 2.4705666667e+02 2.4705666667e+02 # 以下略 # 這個內容經過一點字串處理後即可再形成 rrdtoo; update 指令

相關工具 - info [root@twnic rrd]# rrdtool info example.rrd # 因篇幅關係 , 不重要的這裏不列進來 rrd_version = “0003” # 版本 ,rrdtool 1.0.X 此欄位 0001, 舊不容新 step = 300 last_update = 1227827402 ds[q].type = &quot;GAUGE&quot; ds[q].minimal_heartbeat = 86400 ds[q].min = 0.0000000000e+00 ds[q].max = 1.0000000000e+03 ds[q].last_ds = “UNKN” # GAUGE 不需知道最後一次的值是什麼 ds[q].value = 7.2200000000e+02 # COUNTER 等 last_ds 就會有值 ds[q].unknown_sec = 0 rra[3].cf = &quot;AVERAGE&quot; rra[3].rows = 6 000 rra[3].pdp_per_row = 288 rra[3].xff = 5.0000000000e-01 rra[3].cdp_prep[0].value = 1.5240152333e+05 rra[3].cdp_prep[0].unknown_datapoints = 0 rra[3].cdp_prep[1].value = 1.5240152333e+05 rra[3].cdp_prep[1].unknown_datapoints = 0

大綱 綜觀 rrdtool 資料格式 資料更新 繪圖 相關工具 精髓 - RPN (CDEF) rrdtool/mrtg 範例

綜觀 rrdtool

資料格式

資料更新

繪圖

相關工具

精髓 - RPN (CDEF)

rrdtool/mrtg

範例

精髓 - RPN Reverse Polish Notation 一個表達式 , 避免使用括號 數字在前 , 運算元在後 CDEF 的計算皆使用 RPN 概念 RPN (CDEF) 運算元字串需以大寫型式出現

Reverse Polish Notation

一個表達式 ,

避免使用括號

數字在前 , 運算元在後

CDEF 的計算皆使用 RPN 概念

RPN (CDEF) 運算元字串需以大寫型式出現

精髓 - RPN a*-1 => a,-1,* a+b => a,b,+ a+b*c => a,b,c,*,+ (a+b)*(c-d)=> a,b,+,c,d,-,* a+b/c+d => a,b,c,/,+,d,+ => d,a,b,c,/,+,+ x*(y+z*(a+b*(c-d))/e) => xyzabcd-*+*e/+* ( 本例于不寫逗號 ) √ (a*b) /3 => a,b,*,SQRT,/ if a = UN then a=0 or a => a,UN,0,a,IF F=9/5*C+32 =>CDEF:far=9,5,/,cel,*,32,+ N 開根號 *10 =>N,SQRT,10

a*-1 => a,-1,*

a+b => a,b,+

a+b*c => a,b,c,*,+

(a+b)*(c-d)=> a,b,+,c,d,-,*

a+b/c+d => a,b,c,/,+,d,+ => d,a,b,c,/,+,+

x*(y+z*(a+b*(c-d))/e) => xyzabcd-*+*e/+* ( 本例于不寫逗號 )

√ (a*b) /3 => a,b,*,SQRT,/

if a = UN then a=0 or a => a,UN,0,a,IF

F=9/5*C+32 =>CDEF:far=9,5,/,cel,*,32,+

N 開根號 *10 =>N,SQRT,10

精髓 - RPN &quot;CDEF:tt1_10=t1,0.90,*&quot; &quot;AREA:tt1_10#E10000&quot; &quot;CDEF:tt1_15=t1,0.85,*&quot; &quot;AREA:tt1_15#D20000&quot; &quot;CDEF:tt1_20=t1,0.80,*&quot; &quot;AREA:tt1_20#C30000&quot; &quot;CDEF:tt1_25=t1,0.75,*&quot; &quot;AREA:tt1_25#B40000&quot; &quot;CDEF:tt1_30=t1,0.70,*&quot; &quot;AREA:tt1_30#A50000&quot; &quot;CDEF:tt1_35=t1,0.65,*&quot; &quot;AREA:tt1_35#960000&quot; &quot;CDEF:tt1_40=t1,0.60,*&quot; &quot;AREA:tt1_40#870000&quot; &quot;CDEF:tt1_45=t1,0.55,*&quot; &quot;AREA:tt1_45#780000&quot; &quot;CDEF:tt1_50=t1,0.50,*&quot; &quot;AREA:tt1_50#690000&quot; &quot;CDEF:tt1_55=t1,0.45,*&quot; &quot;AREA:tt1_55#5A0000&quot; &quot;CDEF:tt1_60=t1,0.40,*&quot; &quot;AREA:tt1_60#4B0000&quot; &quot;CDEF:tt1_65=t1,0.35,*&quot; &quot;AREA:tt1_65#3C0000&quot; &quot;CDEF:tt1_70=t1,0.30,*&quot; &quot;AREA:tt1_70#2D0000&quot; &quot;CDEF:tt1_75=t1,0.25,*&quot; &quot;AREA:tt1_75#180000&quot; &quot;CDEF:tt1_80=t1,0.20,*&quot; &quot;AREA:tt1_80#0F0000&quot; &quot;CDEF:tt1_85=t1,0.15,*&quot; &quot;AREA:tt1_85#000000&quot;

&quot;CDEF:tt1_10=t1,0.90,*&quot; &quot;AREA:tt1_10#E10000&quot;

&quot;CDEF:tt1_15=t1,0.85,*&quot; &quot;AREA:tt1_15#D20000&quot;

&quot;CDEF:tt1_20=t1,0.80,*&quot; &quot;AREA:tt1_20#C30000&quot;

&quot;CDEF:tt1_25=t1,0.75,*&quot; &quot;AREA:tt1_25#B40000&quot;

&quot;CDEF:tt1_30=t1,0.70,*&quot; &quot;AREA:tt1_30#A50000&quot;

&quot;CDEF:tt1_35=t1,0.65,*&quot; &quot;AREA:tt1_35#960000&quot;

&quot;CDEF:tt1_40=t1,0.60,*&quot; &quot;AREA:tt1_40#870000&quot;

&quot;CDEF:tt1_45=t1,0.55,*&quot; &quot;AREA:tt1_45#780000&quot;

&quot;CDEF:tt1_50=t1,0.50,*&quot; &quot;AREA:tt1_50#690000&quot;

&quot;CDEF:tt1_55=t1,0.45,*&quot; &quot;AREA:tt1_55#5A0000&quot;

&quot;CDEF:tt1_60=t1,0.40,*&quot; &quot;AREA:tt1_60#4B0000&quot;

&quot;CDEF:tt1_65=t1,0.35,*&quot; &quot;AREA:tt1_65#3C0000&quot;

&quot;CDEF:tt1_70=t1,0.30,*&quot; &quot;AREA:tt1_70#2D0000&quot;

&quot;CDEF:tt1_75=t1,0.25,*&quot; &quot;AREA:tt1_75#180000&quot;

&quot;CDEF:tt1_80=t1,0.20,*&quot; &quot;AREA:tt1_80#0F0000&quot;

&quot;CDEF:tt1_85=t1,0.15,*&quot; &quot;AREA:tt1_85#000000&quot;

精髓 - RPN CDEF:workhour=LTIME,86400,%,32401,64800,LIMIT,UN,0,q,IF IF 資料時間 (LTIME) % 86400 餘數介於 (LIMIT) 32401~64800 間 , 若資料會 UNKNOWN 則數值設為 0, 不然就維持 那週一 ~ 週五如何計算 ?

CDEF:workhour=LTIME,86400,%,32401,64800,LIMIT,UN,0,q,IF

IF 資料時間 (LTIME) % 86400 餘數介於 (LIMIT) 32401~64800 間 , 若資料會 UNKNOWN 則數值設為 0, 不然就維持

那週一 ~ 週五如何計算 ?

布林運算元 : GT 、 GE 、 LT 、 LE 、 EQ 、 NE 、 特殊值 : UN 條件運算元 : IF 數學運算元 : + 、 - 、 * 、 / 、 % 、 SIN, COS, LOG, EXP, SQRT 、 FLOOR, CEIL 、 ATAN 、 ATAN2 、 DEG2RAD, RAD2DEG 資料集運算元 , 所謂資料集( sets ) , 就是指多個資料。 SORT 、 REV 、 AVG 、 TREND 時間 NOW 、 TIME 、 LTIME 堆疊操作符 : POP 、 DUP 、 EXC 如果你真得無法體會 RPN, 網路上有自動轉換的 Tool

布林運算元 : GT 、 GE 、 LT 、 LE 、 EQ 、 NE 、

特殊值 : UN

條件運算元 : IF

數學運算元 : + 、 - 、 * 、 / 、 % 、 SIN, COS, LOG, EXP, SQRT 、 FLOOR, CEIL 、 ATAN 、 ATAN2 、 DEG2RAD, RAD2DEG

資料集運算元 , 所謂資料集( sets ) , 就是指多個資料。 SORT 、 REV 、 AVG 、 TREND

時間 NOW 、 TIME 、 LTIME

堆疊操作符 : POP 、 DUP 、 EXC

如果你真得無法體會 RPN, 網路上有自動轉換的 Tool

大綱 綜觀 rrdtool 資料格式 資料更新 繪圖 相關工具 精髓 - RPN (CDEF) rrdtool/mrtg 範例

綜觀 rrdtool

資料格式

資料更新

繪圖

相關工具

精髓 - RPN (CDEF)

rrdtool/mrtg

範例

rrdtool/mrtg mrtg 資料和 rrd 差別 mrtg 有配置但 rrd 沒有 ,cfg 檔較容易了解 mrtg 能根據設定進行資料採集 , 但 rrd 需寫程式 mrtg 每次運行後更新圖檔及資料 三個 log 檔 , 這三個 log 不是改變一個數字而以 , 而是許多 一至四張圖 mrtg 有固定的資料模式 mrtg 僅有兩種數據且時間模式固定 mrtg 作圖較簡單 mrtg 最短僅能進行五分鐘的更新頻率

mrtg 資料和 rrd 差別

mrtg 有配置但 rrd 沒有 ,cfg 檔較容易了解

mrtg 能根據設定進行資料採集 , 但 rrd 需寫程式

mrtg 每次運行後更新圖檔及資料

三個 log 檔 , 這三個 log 不是改變一個數字而以 , 而是許多

一至四張圖

mrtg 有固定的資料模式

mrtg 僅有兩種數據且時間模式固定

mrtg 作圖較簡單

mrtg 最短僅能進行五分鐘的更新頻率

rrdtool/mrtg mrtg2rrd ? 如果你的 mrtg 運行的很好 , 也符合需求 , 不一定要昇級 若要升級 , 修改 / 增加 mrtg 的 cfg 設定 再運行 mrtg 後它即會將原來的 log 資料轉成 rrd 可用 rrdtool info 查看 rrd file 的結構 Google search log2rrd 可以找到手動的轉檔程式 LogFormat: rrdtool 告訴 mrtg 資料要改用 rrd LibAdd: /usr/lib/perl5/site_perl/5.8.8/i686-linux 要讓 mrtg 知道 RRDs.pm 在哪

如果你的 mrtg 運行的很好 , 也符合需求 , 不一定要昇級

若要升級 , 修改 / 增加 mrtg 的 cfg 設定

再運行 mrtg 後它即會將原來的 log 資料轉成 rrd

可用 rrdtool info 查看 rrd file 的結構

Google search log2rrd 可以找到手動的轉檔程式

大綱 綜觀 rrdtool 資料格式 資料更新 繪圖 相關工具 精髓 - RPN (CDEF) rrdtool/mrtg 範例

綜觀 rrdtool

資料格式

資料更新

繪圖

相關工具

精髓 - RPN (CDEF)

rrdtool/mrtg

範例

範例 今日課程資料 http://rrd.twnic.tw 範例程式同上 http://rrd.twnic.tw/images/list.cgi

今日課程資料 http://rrd.twnic.tw

範例程式同上

http://rrd.twnic.tw/images/list.cgi

謝謝 問題與討論

謝謝

問題與討論

Add a comment

Related presentations

Related pages

RRDtool - About RRDtool - O+P OSS projects » OETIKER+PARTNER

What RRDtool does. RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. RRDtool can be ...
Read more

RRDtool – Wikipedia

RRDtool ist ein Programm, mit dem zeitbezogene Messdaten gespeichert, zusammengefasst und visualisiert werden können. Das Programm wurde ursprünglich von ...
Read more

Network Admins' favorite free tools - Scrutinizer and RRDtool

RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. Use it to write your custom monitoring ...
Read more

RRDtool - Wikipedia, the free encyclopedia

RRDtool (acronym for round-robin database tool) aims to handle time-series data like network bandwidth, temperatures, CPU load, etc. The data are stored in ...
Read more

RRDtool 1.4.9 - RRDtool - Download - heise online

Download: RRDtool 1.4.9, kostenlos. Über RRDtool: Tool zum Aufnehmen und Darstellen von Zeitreihen-Daten; andere Programme wie Cacti setzen darauf auf
Read more

RRDtool - RRDtool Download - O+P OSS projects » OETIKER ...

RRDtool Download. You can download RRD tool from several places: ... RRDtool source is stored on GitHub and this is also where development happens.
Read more

MSXFAQ.DE:RRDTool

Auf der Seite MRTG Monitoring wurde schon mehrfach das Programm RRDTOOL aufgeführt worden. Auch andere Programme wie z.B. NTOP, und viele ...
Read more

RRDTool Temperatur loggen und als Diagramm anzeigen

Temperatur und Luftfeuchte mit RRDTool loggen und als Diagramm anzeigen
Read more

www.marty44.net - Systemstatus mit RRDTool anzeigen

Systemstatus mit RRDTool anzeigen Mit RRDTool lassen sich Grafiken erstellen, die einen alles mögliche visualisieren lassen. Dazu benötigt RRDTool den ...
Read more

Daten mit RRDtool speichern und visualisieren Viele bunte ...

Daten mit RRDtool speichern und visualisieren Viele bunte Graphen Sebastian " tokkee Harl Debian RRDtool Team Grazer Linuxtage 2010
Read more