rrdtool 实践

rrdtool 实践

 

rrdtool 参数比较多,如果直接看文档,不知从何入手,直接从例子入手这样容易理解,模拟网卡流量

1. 创建数据库

rrdtool create Flow.rrd --start $(date +%s) --step 1 \
DS:eth0_in:GAUGE:1:0:U \
DS:eth0_out:GAUGE:1:0:U \
RRA:LAST:0.5:1:2 \
RRA:LAST:0.5:1:4 \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:444:797

 

2. 更新数据(模拟流量数据)

import sys,os
import time
import random
import rrdtool
 
total_input_traffic = 0
total_output_traffic = 0
starttime=int(time.time())
for i in range(100000):
    total_input_traffic = random.randrange(0, 5000)
    total_output_traffic = random.randrange(0, 5000)
    os.system("rrdtool updatev Flow.rrd"+str(starttime)+":"+str(total_input_traffic)+":"+str(total_output_traffic))
    starttime += 1
    time.sleep(1)

 

3.绘图(参考cacti的绘制)

rrdtool graph Flow.png \
--imgformat=PNG \
--start -1h \
--title='Localhost - Traffic - eth0' \
--rigid \
--base='1000' \
--height='120' \
--width='500' \
--alt-autoscale-max \
--lower-limit='0' \
DEF:a=Flow.rrd:eth0_in:AVERAGE \
DEF:b=Flow.rrd:eth0_out:AVERAGE \
--vertical-label='bits per second' \
--slope-mode \
--font TITLE:10: \
--font AXIS:7: \
--font LEGEND:8: \
--font UNIT:7: \
CDEF:cdefa='a,8,*' \
CDEF:cdefe='b,8,*' \
AREA:cdefa#00CF00FF:'Inbound'  \
GPRINT:cdefa:LAST:' Current\:%8.2lf %s'  \
GPRINT:cdefa:AVERAGE:'Average\:%8.2lf %s'  \
GPRINT:cdefa:MAX:'Maximum\:%8.2lf %s\n'  \
LINE1:cdefe#002A97FF:'Outbound'  \
GPRINT:cdefe:LAST:'Current\:%8.2lf %s'  \
GPRINT:cdefe:AVERAGE:'Average\:%8.2lf %s'  \
GPRINT:cdefe:MAX:'Maximum\:%8.2lf %s\n'

 

 

 

绘制是参考cacti的绘制的,基本未做修改:

参考:http://book.51cto.com/art/201411/456743.htm

参考:http://im.nuk.edu.tw/~lee/rrdtool/index.htm

参考:http://blog.liuts.com/post/215/

参考:http://www.cnblogs.com/coldplayerest/archive/2010/02/09/1666413.html

参考:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=864861&page=1

posted @ 2015-11-22 21:25  ca0guo  阅读(546)  评论(0编辑  收藏  举报