作者 主題: [教學]大作 rrdtool (像 mrtg 的東東) 完全攻略  (閱讀 330520 次)

0 會員 與 1 訪客 正在閱讀本文。

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #30 於: 2004-06-02 14:51 »
補一下這個 Link For 中文化
感謝 Ada 兄提供給大家的文件
http://phorum.study-area.org/viewtopic.php?t=23822

cjp

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #31 於: 2004-09-14 16:10 »
請問一下
例如我要將GPRINT:t2:LAST:%6.0lf的值放到某一變數A中要如何做?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #32 於: 2004-09-14 16:21 »
不就
A='GPRINT:t2:LAST:%6.0lf'
即可 ?
還是您有什麼特別用意沒解釋清楚的地方 !?
太簡單我會懷疑的

cjp

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #33 於: 2004-09-14 17:06 »
RRDs::graph "c:\\inetpub\\rrdtool\\$fswrrd.gif",
"-s $start",                  
#"-e $end",               
"-t Cisco-2F-SW-Port-$interface[1]-Traffic(1 Min Average)",
"-h", "150", "-w", "760",            
"-v Bytes/sec ",               
"DEF:t2=$fswrrd.rrd:RX:AVERAGE",
"DEF:t1=$fswrrd.rrd:TX:AVERAGE",
"COMMENT:PORT-----MAX------AVG-----MIN-----NOW(Bytes)\\n",
"AREA:t2#339966:RX",
"GPRINT:t2:MAX:%7.0lf",
"GPRINT:t2:AVERAGE:%6.0lf",
"GPRINT:t2:MIN:%6.0lf",
"GPRINT:t2:LAST:%6.0lf\\n", <------例如想要將這個流量的值放到A這個變數
my $A='GPRINT:t2:LAST:%6.0lf',  <------abelyang您的意思是這樣嗎
"AREA:t1#0000ff:TX",
"GPRINT:t1:MAX:%7.0lf",
"GPRINT:t1:AVERAGE:%6.0lf",
"GPRINT:t1:MIN:%6.0lf",
"GPRINT:t1:LAST:%6.0lf\\n",
"COMMENT:\\n",
"COMMENT:Last Updated: $timenum $timenum2";

PS:我是想藉由這個值來判斷目前traffic.
     我PERL學沒多久,還請不吝指教,謝謝.

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #34 於: 2004-09-15 11:15 »
引用
"GPRINT:t2:LAST:%6.0lf\\n", <------例如想要將這個流量的值放到A這個變數
my $A='GPRINT:t2:LAST:%6.0lf', <------abelyang您的意思是這樣嗎
"AREA:t1#0000ff:TX",

my $A="GPRINT:t2:LAST:%6.0lf";

RRD:GRAPH ...
....
"$A",
....

您如此試看看,我不確定是否可以,因為我沒有用 RRDcgi 或 RRD pm,
這種功能我都是組好 command 字串 (rrdtool graph ....),
去做 system call 為主

cjp

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #35 於: 2004-09-16 15:01 »
請問abelyang
像我要將GPRINT:t2:LAST輸出的值----->"346"這個放到變數"A"裡有辦法嗎?
請幫我想像看!謝謝.


下面的做法好像只是將參數給"A"沒辦法單純取得目前流量的值.
my $A="GPRINT:t2:LAST:%6.0lf";
RRD:GRAPH ...
....
"$A",
....

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #36 於: 2004-09-16 17:43 »
果然~是你問的太簡單... :evil: ,文字寫得太簡單之故
下次記得,不然不理你了  :roll: ^^

我看你上面的例子是 --step 60
就用這個來回答好了,這個功能在我沒有說明的
rrdtool fetch 或 rrdtool xport 中
不過 rrdtool fetch 我實在沒弄明白,你想要的這個功能之前我也
做不到,所以那個時候就改了一個 for mysql 的版本,所有的資料
都存 mysql , 只可惜  ada 兄沒興趣.
PS: 存 DB 後面的處理就很好做,只是久了資料就會很多

我用 rrdtool xport 給你參考,你自己再用 perl 的 RE parser 或 XML_Parser 出來吧

rrdtool xport --start -60s DEF:a=dnsquery.rrd:a:AVERAGE XPORT:a:DNS_QUERY

代碼: [選擇]

<?xml version="1.0" encoding="ISO-8859-1"?>

<xport>
  <meta>
    <start>1095328500</start>
    <step>60</step>
    <end>1095328620</end>
    <rows>3</rows>
    <columns>1</columns>
    <legend>
      <entry>DNS_QUERY</entry>
    </legend>
  </meta>
  <data>
    <row><t>1095328500</t><v>1.4800000000e+02</v></row>
    <row><t>1095328560</t><v>3.3933333333e+01</v></row>
    <row><t>1095328620</t><v>NaN</v></row>
  </data>
</xport>


你打 rrdtool xport 就會有語法的解釋...

cjp

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #37 於: 2004-09-16 21:06 »
引述: "cjp"
abelyang
很感謝你的教導,跟著你的腳步真的是學了不少東西 :P

請問底下這些欄位各是代表什麼意思???

<data>
 <row><t>1095328500</t><v>1.4800000000e+02</v></row>
 <row><t>1095328560</t><v>3.3933333333e+01</v></row>
.................................................^^^^^^^^^^^^
                                    看起來好像是目前的traffic,不知道我說的對不對
    <row><t>1095328620</t><v>NaN</v></row>
  </data>

cjp

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #38 於: 2004-09-16 22:01 »
abelyang
很感謝你的教導,跟著你的腳步真的是學了不少東西 :P

請問底下這些欄位各是代表什麼意思???

<data>
 <row><t>1095328500</t><v>1.4800000000e+02</v></row>
 <row><t>1095328560</t><v>3.3933333333e+01</v></row>
.................................................^^^^^^^^^^^^
                                    看起來好像是目前的traffic,不知道我說的對不對
    <row><t>1095328620</t><v>NaN</v></row>
  </data>

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #39 於: 2004-09-17 02:22 »
你說的沒有錯呀~
至於是否有更好的方法,我只能建議你要自己去找找..

那個 xport 出來的東西,你用  perl 的 XML Parser pm
很簡單就可以解出,自己多練習囉,自己也要多驗證,
你若自己肯去看 rrdtool 官網,你的疑問上面就寫得很明白了

cjp

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #40 於: 2004-09-17 14:47 »
請問abelyang用 perl 的 XML Parser pm轉出來是像下面這樣子嗎?最後一行的錯誤訊息是什麼意思呢?
用rrdtool xport匯出來的資料存成"xxx.XML"不可以直接用網頁的方式看嗎?謝謝

 \\ ()
xport || #10;
xport ||
xport \\ ()
xport meta || #10;
xport meta ||
xport meta \\ ()
xport meta start || 1095400980
xport meta //
xport meta || #10;
xport meta ||
xport meta \\ ()
xport meta step || 60
xport meta //
xport meta || #10;
xport meta ||
xport meta \\ ()
xport meta end || 1095401100
xport meta //
xport meta || #10;
xport meta ||
xport meta \\ ()
xport meta rows || 3
xport meta //
xport meta || #10;
xport meta ||
xport meta \\ ()
xport meta columns || 1
xport meta //
xport meta || #10;
xport meta ||
xport meta \\ ()
xport meta legend || #10;
xport meta legend ||
xport meta legend \\ ()
xport meta legend entry || 111
xport meta legend //
xport meta legend || #10;
xport meta legend ||
xport meta //
xport meta || #10;
xport meta ||
xport //
xport || #10;
xport ||
xport \\ ()
xport data || #10;
xport data ||
xport data \\ ()
xport data row \\ ()
xport data row t || 1095400980
xport data row //
xport data row \\ ()
xport data row v || 1.5340000000e+004
xport data row //
xport data //
xport data || #10;
xport data ||
xport data \\ ()
xport data row \\ ()
xport data row t || 1095401040
xport data row //
xport data row \\ ()
xport data row v || 2.0116666667e+004
xport data row //
xport data //
xport data || #10;
xport data ||
xport data \\ ()
xport data row \\ ()
xport data row t || 1095401100
xport data row //
xport data row \\ ()
xport data row v || NaN
xport data row //
xport data //
xport data || #10;
xport data ||
xport //
xport || #10;
 //
 \\ (id me)
foo || Hello World
 //

no element found at line 1, column 0, byte -1 at C:/perl/site/lib/XML/Parser.pm line 187

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #41 於: 2004-09-17 18:01 »
你要好好自己思考吧...如果 XML 不行,沒有別的方法嗎 !?
不需要每件事情都問人,先把 perl 學好,再來想這個問題
難道還需要我教你 perl 或語言

cjp

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #42 於: 2004-09-23 11:27 »
abelyang說的很有道理
我要的需求都TRY出來了,還是很感謝你的指導.
我是用fetch的方式抓流量,然後再來發mial的告警

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #43 於: 2004-09-23 11:59 »
嗯~您的學習方式是對的...
官網上對 fetch 很清楚的解釋,
我的說明大柢上只是引領大家進入 rrdtool 的路...
(最難的是對 create 的語法理解),再來路怎麼走怎麼修就得看個
人發揮了

realhawk2004

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
[問題]请教rrdtool的问题
« 回覆 #44 於: 2004-09-27 13:12 »
请教:我在create *.rrd和update之后,create graph,为什么出现如下错误。多谢!!

2148 Segmentation fault      rrdtool graph html/example.png --title "Host Port Traffic" DEF:t1=$RRD_FILE:http:AVERAGE LINE3:t1#ff0000:"http" -h 200 -w 480 -s `date -d "-1 week" +%s` -v "Bytes per second"

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #45 於: 2004-09-27 13:22 »
Segmentation fault ,你應該是 rrdtool 沒裝好...
注意看看 make;make install 是否有什麼嚴重警告
另外,就是您的 OS 是 !?

realhawk2004

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #46 於: 2004-09-27 17:03 »
引述: "abelyang"
Segmentation fault ,你應該是 rrdtool 沒裝好...
注意看看 make;make install 是否有什麼嚴重警告
另外,就是您的 OS 是 !?

您好!!我的OS是Redhat Enterprise 3.0 我安装rrdtool没有出现错误提示。我的rrdtool版本是:1.0.40,实在不明白怎么会出现这种问题。谢谢提供帮助!!

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #47 於: 2004-09-27 17:59 »
這種狀況我只能請您多找幾個不同的 rrdtool 版本試看看了
因為我沒有你的環境,不知道你的 complier 條件等
多試試看幾個不同版本

adrianmak

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #48 於: 2004-12-06 21:58 »
看過了abelyang的rrdtool 文章,有幾點不明白
e.g.
RRA:AVERAGE:0.5:6:603 \
RRA:AVERAGE:0.5:24:603 \
RRA:AVERAGE:0.5:288:800 \
RRA:MAX:0.5:1:603 \
RRA:MAX:0.5:6:603 \
RRA:MAX:0.5:24:603 \
RRA:MAX:0.5:288:800

如abelyang 說,mrtg是每5min 有603筆資料, 所以abelyang 就用603
這數目是否隨意的? 比如我想每5min 有 400筆資料 ? 得嗎?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #49 於: 2004-12-06 23:20 »
是的,你愛多少筆就用多少筆沒關係
只是 rrd file 大小會受影響而以,
你可多觀察看看, DS 項目數,及 RRA 的定義,對檔案大小的影響
及您 step 間的關係,儘量先自己做,自己觀察,自己找答案,非到不得巳再來問就好, 因為您這個問題較小 case , 多做就知道了

adrianmak

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #50 於: 2004-12-07 10:36 »
abelyang學長,

筆數多少只對檔案size 有所影響,這點明白
還會對其他有所影響嗎? e.g. 準確度,
e.g.
RRA:AVERAGE:0.5:1:603 \ 與 RRA:AVERAGE:0.5:1:1000 \

一個每5min 603筆資料,
另一個每5min 1000筆資料

當plot圖時會否有分別?? 是否筆數越多越準確??

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #51 於: 2004-12-07 11:22 »
你再把第一篇看仔細一點...

RRA 控制筆數,603 只有 603x5=3015 分鐘
也就是你的五分鐘資料只有最近30小時的而以
超過30小時的就看有沒有其他 RRA 項目支援了

你在另一個主題中的問題:
引用

我想問這修改以rrdtool 支持出中文,
但好像修改的部份是hard code的,e.g. font, char coding

我做的修改只 for 我自己的環境在用,你若有興趣,
自可自己改, 在我改的部份中有一行:
setlocale 我註解掉了,有心您可自己研究
至於 font path 問題,
您可 man mkfontdir 去看看結構問題

adrianmak

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #52 於: 2004-12-07 15:00 »
mrtg 每筆資料最少要5min
rrdtool有沒有這限制,e.g.我想每1min

adrianmak

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #53 於: 2004-12-07 15:57 »
引述: "abelyang"
你再把第一篇看仔細一點...
RRA 控制筆數,603 只有 603x5=3015 分鐘
也就是你的五分鐘資料只有最近30小時的而以
超過30小時的就看有沒有其他 RRA 項目支援了
引用


3015 mins為什麼你說只有最近30小時 ??
我的理解是 3015/60 = 50.25小時

adrianmak

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #54 於: 2004-12-07 15:58 »
50.25小時 即有最近2天資料

是嗎?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #55 於: 2004-12-07 17:23 »
是的,是50 小時,筆誤
1min 問題, 您何不自己試就好呢 ?
自己做實驗就知道了吧

adrianmak

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #56 於: 2004-12-07 18:07 »
我看了一篇官方英文文件與abelyang的中文教學,
大致上都已明白怎樣用rrdtool 來create, update 資料
不過還有一點是mrtg 以
5min for a day graph
30min for a week graph
2hr for a month graph
1day for a year graph
我想知那些, 5min, 30min, 2hr, 1day 是否一定要用這些數字?
換句話說,可否
10min for a day graph
1hr for a week graph
1day for a month graph
1month for a year graph

?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #57 於: 2004-12-07 18:32 »
這個問題巳沒什麼好回答的,留給你自己去試吧

adrianmak

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #58 於: 2004-12-07 22:38 »
麻煩abelyang學長給我一看以下是我的rrdtool 配置
用來plot eth1 in & out 流量,但plot 出來的圖沒有數據

不知是那方面出錯

rrdtool create eth1.rrd \
--start `date +%s` \
--step 300 \
DS:eth1_in:COUNTER:600:0:12500000 \
DS:eth1_out:COUNTER:600:0:1250000 \
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:MAX:0.5:1:603 \
RRA:MAX:0.5:6:603 \
RRA:MAX:0.5:24:603 \
RRA:MAX:0.5:288:800 \
RRA:MIN:0.5:1:603 \
RRA:MIN:0.5:6:603 \
RRA:MIN:0.5:24:603 \
RRA:MIN:0.5:288:800 \
RRA:LAST:0.5:1:603 \
RRA:LAST:0.5:6:603 \
RRA:LAST:0.5:24:603 \
RRA:LAST:0.5:288:800


以下shell script 是放在cron 每5min執行一次
#!/bin/bash
now=`date +%s`

in=eval snmpwalk -c public -v 1 localhost ifInOctets.3 | gawk '{ print $4 }'
out=eval snmpwalk -c public -v 1 localhost ifOutOctets.3 | gawk '{ print $4 }'

/usr/local/rrdtool/bin/rrdtool update /usr/local/rrdtool/db/eth1.rrd $now:$in:$out

/usr/local/rrdtool/bin/rrdtool graph /usr/local/httpd/htdocs/mrtg/test.png \
--title "eth1 testing" \
DEF:in=/usr/local/rrdtool/db/eth1.rrd:eth1_in:AVERAGE \
DEF:out=/usr/local/rrdtool/db/eth1.rrd:eth1_out:AVERAGE \
LINE2:in#000080:"incoming" \
LINE2:out#0000FF:"outgoing" \
-v "bytes" -M

但出來的圖沒有數據

adrianmak

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #59 於: 2004-12-08 17:47 »
解決了!! 是個shell script 問題!!