Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1794792
  • 博文数量: 184
  • 博客积分: 10122
  • 博客等级: 上将
  • 技术积分: 5566
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-08 12:32
文章存档

2011年(1)

2008年(183)

我的朋友

分类: LINUX

2008-03-03 13:19:47

一)前言

   可能你已经颇不亟待的想知道如何往 RRD 文件插入数据、如何绘图了吧?hoho,先别急,在你做这些事情之前,最好先思考以下几个问题 :

   A)如果给你一个 RRD 文件,你能知道它的第一次/最后一次 update 的时间是在什么时候吗?

   B)如果你很久之前建立了一个 RRD 文件,现在因为工作原因需要对该 RRD 文件进行一些修改。不过遗憾的是,
   
       你已经不记得得当初设置的具体选项和参数了,  这时候该怎么办呢?
      
   这两个问题就对应今天要讲的两个操作 :first/last 、info 。
   
   first 就是用于查看该 RRD 文件中某个 RRA 的第一个数据是在什么时候插入的(或者说第一次更新);
   
   last 就是查看该 RRD 文件的最近一次更新;
   
   info就是查看 rrd 文件的结构信息。
   
   下面就以实际例子来看一下该怎么用这三个命令 :
   
   
二)如何查询一个 RRD 文件的结构信息

CODE:
[root@dns1 bob]# rrdtool info eth0.rrd        (由于输出信息较多,截取了一部分)
filename = "eth0.rrd"
rrd_version = "0003"
step = 300                                        # RRDtool 希望每5分钟收到一个数据
last_update = 1163862985                # 这是最近一次更新的 timestamp 。可以用 date 转换为具体的时间
ds[eth0_in].type = "COUNTER"                # 有一个名为 eth0_in 的 DS,DST是 COUNTER
ds[eth0_in].minimal_heartbeat = 600        # hearbeat 时间是600 秒
ds[eth0_in].min = 0.0000000000e+00        # eth0_in 的最小值是 0 (bytes)
ds[eth0_in].max = 1.2500000000e+07        # eth0_in 的最大值是 1250000000 (bytes)
ds[eth0_in].last_ds = "UNKN"       
ds[eth0_in].value = 0.0000000000e+00
ds[eth0_in].unknown_sec = 85
ds[eth0_out].type = "COUNTER"
ds[eth0_out].minimal_heartbeat = 600
ds[eth0_out].min = 0.0000000000e+00
ds[eth0_out].max = 1.2500000000e+07
ds[eth0_out].last_ds = "UNKN"
ds[eth0_out].value = 0.0000000000e+00
ds[eth0_out].unknown_sec = 85
rra[0].cf = "AVERAGE"                                # 第一个 RRA 的编号是0,不是1。
rra[0].rows = 600                                        # 共保存 600 个记录
rra[0].pdp_per_row = 1                        # 每个 CDP 由一个 PDP 统计得出
rra[0].xff = 5.0000000000e-01                # 只要当前interval 的 PDP 为 unknown ,则该 CDP 的值也是unknown
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[0].cdp_prep[1].value = NaN
rra[0].cdp_prep[1].unknown_datapoints = 0
rra[1].cf = "AVERAGE"                                # 第二个 RRA 的编号是 1。同样也是 AVERAGE 型。
rra[1].rows = 600                                        # 也是保存 600 个记录
rra[1].pdp_per_row = 4                        # 每个 CDP 由4个 PDP 的求平均值得出
rra[1].xff = 5.0000000000e-01                # 每个 CDP 最多允许2个 PDP 为 unknown ,超过则该 CDP 为unknown
rra[1].cdp_prep[0].value = NaN
rra[1].cdp_prep[0].unknown_datapoints = 3
rra[1].cdp_prep[1].value = NaN
rra[1].cdp_prep[1].unknown_datapoints = 3
[root@dns1 bob]#

由于信息太长,这里截取了后面2个 RRA 的信息。


三)第一次更新/最近一次更新

如果想知道最近一次更新发生在什么时候,除了可以用上面的 info 操作,还可以用 last 操作

CODE:
[root@dns1 bob]# rrdtool last eth0.rrd
1163862985
[root@dns1 bob]#

如果转换成具体的时间就是 :

CODE:
[root@dns1 bob]# rrdtool last eth0.rrd |xargs -i date -d '1970-01-01 {} sec utc'
六 11月 18 23:16:25 CST 2006
[root@dns1 bob]#



CODE:
[root@dns1 bob]# rrdtool first eth0.rrd
1163683200
[root@dns1 bob]#

如果换成具体的时间就是 :

CODE:
[root@dns1 bob]# [root@dns1 bob]# rrdtool first eth0.rrd |xargs -i date -d '1970-01-01 {} sec utc'
四 11月 16 21:20:00 CST 2006
[root@dns1 bob]#

这三个命令的语法都非常简单,但并不可以因此小看它们的功能,尤其是 info 操作。日后如果需要对 RRD 文件进行调整,是经常需要用到的。
阅读(2889) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

sargentti2015-06-11 11:36:39