Ossim下RRDTool实战
RRDtool 就是使用类似的方式来存放数据的工具,RRDtool 所使用的数据库文件的后缀名是.rrd(主要在 OSSIM系统的/var/lib/ossim/rrd/、/var/lib/munin/alienvault/目录、/var/lib/munin/localdomain和/var/lib/ntop_db_64/rrd/interface/eth0/目录中),经过SNMP抓取到的数据存储于.rrd文件中,它是数据库文件,在这个库中存储着时间序列的数据,也就是在时间的若干点上度量某些值,比如它可以通过SNMP查询设备中保持的计数器的值获取远程网络设备的流量信息。不同于其它的数据库,RRDtool除了能够存储数据,还能创建图表。
图1 Ntop下RRD设置
图2 Ntop中利用RRD显示的网络协议
在OSSIM系统中,主要使用RRDtool 绘制各类流量监控软件实时监控图表。OSSIM Framework用RRD来表示和管理资产的安全状态,存储在/usr/share/ossimframework/ossimframework/RRDUpdate.py等文件中。
下面简单介绍RRDtool相关应用。
从以上可以看出,使用方法就是:
rrdtool [options] command command_options
这里commands包括:create、update、updatev、graph、dump、restore、last、first、info、fetch、tune、resize、xport。我们将着重介绍一下creat命令的使用。我们用一个实例对整个语法进行解释(以下都用这个例子说明参数的使用):
rrdtool create target.rrd
--start 1023654125
--step 300
DS:mem:GAUGE:600:0:671744
RRA:AVERAGE:0.5:12:24
RRA:AVERAGE:0.5:288:31
解释:create 很容易理解,就是创建一个新的Round Robin Database (RRD) 数据库文件以存储信息。
filename习惯上会以 .rrd 结尾,请记住这个数据库文件的名字。
--start 这个参数可以指定 filename 的数据记录起始日期,可以指定为 1970 年至今的秒数(参数为-b `date -d "1970/01/01" +%s`),如果不指定,那么起始时间默认就为系统定义的时间。
--step 采集数据的间隔时间,习惯上我们会设 300 (秒),也可以自行调整,这也是RRD的优势所在。但是采集周期不应该过短也不应小于系统的update rrd文件周期,否则可能会造成服务器负载过重。
通过以上叙述可知RRDtool是OSSIM重要的绘图引擎Munin、Mrtg、Ossim-Framework、alienvault-dummy-framework等组件都需要从RRDtool调用绘图数据。