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 namepackets
是 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 :