shell 创建rrd文件步骤:

rrdtool create interface2.rrd DS:packets:COUNTER:600:U:U RRA:AVERAGE:0.5:1:288 RRA:AVERAGE:0.5:6:336

rrdtool 创建語法 (rrdtool create)
rrdtool create filename             创建
[--start|-b start time]                1970 年至今的秒數 (預設是現在)
[--step|-s step]                          时间间隔,我們会設 300 (秒),
[DS:ds-nameST]                        Data Source DS name
packets                                     是 DSN (name) ,    
COUNTER                                 是DST(type),习惯上常用98 100 98:
                                                1.GAUGE(個別值,像CPU loading):產生圖檔時,畫 98 100 98
                                                2.COUNTER (累計值,像流量資料):產生圖檔時,畫,2 -2
                                                3.DERIVE (累計值,像流量資料),小於0畫0:產生圖檔時,畫    2   0
                                                4.ABSOLUTE 同 COUNTER,但overflow(數值過大),所以會取絕對值
600                                            有效期,如在12:00需要产生的数据未产生,前后300秒(600)
                                                 的平均值为12:00的值,如没有标记为:"UNKNOWN".
0:100000000                             DSN 數有效範圍,超出,皆視為 UN, U:U 代表不限範圍
[RRA:CF]                                    Round Robin Archive,数据处理
AVERAGE                                   CF (consolidation function),共有:AVERAGE, MIN,MAX, LAST 意  
                                                 即平均值,最大值,最小值,最後一筆.
0.5:1:603                                    11:57:30~12:02:30,若在此時間點內只有一笔记录的話,其 意即
                                                 是平均值, 603 是指要存 603 笔超過603笔,最早一笔將被移出.

0.5:6:603                                    6 笔记录(每筆為 step 值)為平均值( 30 分鐘),存 603 笔
0.5:24:603                                    24 即二小時
0.5:288:800                                 288 即一天
                                                                       
对应的python代码:

import rrdtool
rrdtool.create('interface.rrd',
                       'DS:packet:COUNTER:600:U:U',
                       'RRA:AVERAGE:0.5:1:288',
                       'RRA:AVERAGE:0.5:6:336')


数据更新shell:

rrdtool update interface.rrd 1391846135:10
rrdtool update interface.rrd 1391846435:15
 rrdtool update interface.rrd 1391846735:25
rrdtool update interface.rrd 1391847035:40 1391847335:60 1391847635:66
rrdtool update interface.rrd 1391847935:100 1391848135:160 1391848435:166

python:

for i in range(20):
    rrdtool.update('interface2.rrd',
                   '%d:%d' %(1391847516+(1+i)*300, i*10+200))

展现信息shell:

rrdtool fetch interface.rrd AVERAGE -r 1800 packets
rrdtool fetch interface.rrd AVERAGE  packets

python:

for i in rrdtool.fetch('interface.rrd','AVERAGE'): print i

绘图shell :

graph packets.png --start 1391846100 --end 1391848500 --step 300 DEF:packetrate=interface.rrd:packet:AVERAGE LINE2:packetrate#c0c0c0

python :