绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
rrdtool的完整例子
2022-04-26 10:54:53

RRDtool是一种环形数据库工具,我们可以将数据存入该数据库中,而不用担心数据太多,因为这个数据库是环形的,新的数据会覆盖老的数据。

这与Windows上的taskman类似。RRDtool主要由Tobias Oetiker 编写,这哥们还写了MRTG。RRDtool主要是为了替代MRTG的。

网上有很多RRDtool的介绍和教程,例如:RRDtool主页上的ChinaUnix上的这一篇。不过这些文章上给出的例子程序基本不能直接运行,都

存在着若干小错误,就连RRDtoo Tutorial上给出的例子都不能直接运行。 我在学习RRDtool时被弄得很郁闷。本文给出了一个完整的用Shell写的Demol程序,

大家可以参考一下。

通常来说,一个RRDtool的程序基本可以分成两部分:

  1. 用rrdtool create命令创建一个rrdtool的数据库,并且有rrdtool update命令更新它;
  2. 用rrdtool graph命令画图。

我的Demo程序不能取得系统Load average(5分钟,10分钟,15分钟),把这个三个数据插入数据库中,然后画图。

1. 创建数据库及更新数据库:


 1  # !/ bin / bash
 2  
 3  # create a rrd file
 4  
 5  rrdfile = loadavg.rrd
 6  STEP = 2 
 7  HEARTBEAT = 4 
 8  now = `date  +% s`
 9  
10    if  [  !   - f $rrdfile ]
11  then
12      rrdtool create $rrdfile  -- start $now  -- step $STEP \
13          DS:loadavg5:GAUGE:$HEARTBEAT:U:U              \
14          DS:loadavg10:GAUGE:$HEARTBEAT:U:U             \
15          DS:loadavg15:GAUGE:$HEARTBEAT:U:U             \
16          RRA:MAX: 0.5 : 3 : 3600 
17    else 
18      echo  " $rrdfile already exists, remove it " 
19  fi
20  
21  TEMPLATE_STR = " loadavg5:loadavg10:loadavg15 " 
22  
23    while  :
24    do 
25      loadavg5 = `cat  / proc / loadavg   |  awk  ' {print $1} ' `
26      loadavg10 = `cat  / proc / loadavg  |  awk  ' {print $2} ' `
27      loadavg15 = `cat  / proc / loadavg  |  awk  ' {print $3} ' `
28      rrdtool update $rrdfile                           \
29           -- template $TEMPLATE_STR                      \
30          N:$loadavg5:$loadavg10:$loadavg15
31  
32      sleep $STEP
33  done
34  
复制代码

 

2. 画图

复制代码
 1  # !/ bin / bash
 2  
 3  rrdfile = loadavg.rrd
 4  PIC = loadavg.png
 5  
 6  rrdtool graph $PIC                    \
 7       -- title  " System Load Average "      \
 8       -- vertical - label  " Load Average "    \
 9       -- color  " BACK#CCCCCC "              \
10       -- color  " CANVAS#CCFFFF "            \
11       -- color  " SHADEB#9999CC "            \
12       -- height  200                       \
13       -- width   400                       \
14       -- slope - mode                      \
15       -- alt - autoscale                   \
16       -- lower - limit                      \
17      DEF:max_loadavg5 = $rrdfile:loadavg5:MAX      \
18      DEF:max_loadavg10 = $rrdfile:loadavg10:MAX    \
19      DEF:max_loadavg15 = $rrdfile:loadavg15:MAX    \
20      LINE1:max_loadavg5#0000FF:loadavg5          \
21      LINE1:max_loadavg10#00FF00:loadavg10        \
22      LINE1:max_loadavg15#FF0000:loadavg15        \
23      COMMENT: " Last update\: $(date '+%Y-%m-%d %H\:%M\:%S' -r $rrdfile) " 
24  

 


出处:https://www.cnblogs.com/coldplayerest/archive/2010/02/09/1666413.html

分享好友

分享这个小栈给你的朋友们,一起进步吧。

RRDtool
创建时间:2022-04-26 10:31:50
RRDtool
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • gaokeke123
    专家
戳我,来吐槽~