使用RRDTOOL进行绘图

如果您不熟悉RRDTOOL,可以先参看前面的RRDTOOL入门,简单来说,RRDTOOL不仅仅是数据库工具,它还是一种强大的前端绘图工具,可以直接根据所存的数据绘出复杂的图形。其绘图主要使用graph命令来操作。

一、graph 操作的语法

rrdtool graph filename [option ...]  
   [data definition ...] 
   [data calculation ...]	
   [variable definition ...] 
   [graph element ...] 
   [print element ...]

其中的 data definiton、variable definition 、data calculation、分别是下面的格式

DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>]
[:end=<time>][:reduce=<CF>]
VDEF:vname=RPN expression
 
CDEF:vname=RPN expression

其中 filename 就是你想要生成的图片文件的名称,默认是 png 。你可以通过选项修改图片的类型,可以有 PNG、SVG、EPS、PDF四种。

A)DEF 是 Definition (定义)的意思。定义什么呢?你要绘图,总要有数据源吧?DEF 就是告诉 RRDtool 从那个 RRD 中取出指定

你可能会感到奇怪,为什么还有一个 CF 字段?因为 RRA 有多种  CF 类型,有些 RRA 可能用来保存平均值、有些 RRA 可能用于统计最大值、最小值等等。所以你必须同时指定使用什么 CF 类型的 RRA的数据。至于 :start 和 :end 、:reduce 则用得比较少,最常用的就是 :step 了,它可以让你控制 RRDtool 从那个 RRA 中取数据。

B)VDEF 是 Variable Definition (变量定义)的意思。

C)CDEF 是 Calculation Define 的意思。CDEF 支持很多数学运算,甚至还支持简单的逻辑运算 if-then-else

二、选项分类

本部分我们按照官方文档的方式,把选项分成几大类,分为 :

A)Time range : 用于控制图表的X轴显示的起始/结束时间,也包括从RRA中提取指定时间的数据。

B)Labels :用于控制 X/Y 轴的说明文字。

C)Size :用于控制图片的大小。

D)Limits :用于控制 Y 轴的上下限。

E)Grid :用于控制 X/Y 轴的刻度如何显示。

F)Miscellaneous :其他选项。例如显示中文、水印效果等等。

G)Report :数字报表

需要说明的是,本篇当中并不是列出了所有选项的用法,只是列出较为常用的选项,如果想查看所有选项的的用法,可以到官方站点下载文档。

三、时间范围控制(Time Range)

[-s|--start time] [-e|--end time] [-S|--step seconds]

既然要绘图,就应该有一个起始/结束的时间。Graph 操作中有 –s ,-e 选项。这两个选项即可以用于控制图表的 X 轴显示的时间范围,也可以用于控制 RRDtool 从 RRA 中提取对应时间的数据。如果没有指定 –-end ,默认为 now;如果没有指定 –-start,则默认为1天前。如果两者都没有 指定,则图表默认显示从当前算起1天内的。

例如:

[root@dns1 bob]# rrdtool graph 1.png / 
> --start now-1h /	 # X 轴显示1个小时的长度 
> DEF:value1=eth0.rrd:eth0_in:AVERAGE:start=now-600:end=now-300 /	# 但只取10分钟前到5分钟前的这部分
> AREA:value1#00ff00:in   
475x168 
[root@dns1 bob]#


四、说明文字(Label)

[-t|--title string] [-v|--vertical-label string]

-t 是用于图表上方的标题,-v 是用于 Y 轴的说明文字
五、图表大小(Label)

[-w|--width pixels] [-h|--height pixels]

这里说图表大小而不是图片大小,是因为 –w ,-h 控制的是 X/Y 轴共同围起来的那部分大小,而不是整个图片的大小,这点在前面就可以看出了。

默认的图表大小是 400 (长)x 100 (高),但一般会返回497x179 这样的数字,这个才是图片的大小。

六、Y 轴上下限(Limits)

 [-u|--upper-limit value] [-l|--lower-limit value] [-r|--rigid]

默认情况下,RRDtool 会自动调整 Y 轴的数字,来配合当前的数值大小。如果想禁止该特性,可以通过 –upper-limit 和 –lower-limit 来做限制,表示Y轴显示的值从多少到多少。如果没有指定 –rigid ,则在图表的上下边界处还是会有一些延伸,但如果指定了 -–rigid ,则严格按照 –-upper-limit 和 –-lower-limit 绘制。

在使用 –lower-limit 时要注意,如果数据中有负数,如果 -–lower-limit 为 0,则负数部分是显示不出来的。

七、数字报表

这就需要用到 GRPINT 和 COMMENT 语句了。
GPRINT 就是在图表的下方(仍然属于图片的内部)输出最大值、最小值、平均值这些东东;COMMENT 就是用来输出一些字符串,例如报表的表头。
A)GPRINT的格式是GPRINT:vname:CF:format 。由于 format 部分太多参数了,我这里就用最常用的那个 : %x.ylf 。
B)COMMENT 的格式是COMMENT:text 。要注意 COMMENT 默认是不输出换行的,如果要输出换行,必须用 “/n” 。
下面就以一个实例来说明如何打印报表 : 绘制1小时前的流量图,并打印数字报表(参照 abel 兄给出的例子)

[root@dns1 bob]# rrdtool graph 1.png / 
> --start now-1h -w 600 -n DEFAULT:8 / 
> DEF:value1=eth0.rrd:eth0_in:AVERAGE / 
> DEF:value2=eth0.rrd:eth0_out:AVERAGE / 
> COMMENT:" /n" / 
> COMMENT:" 当前值----------平均值----------最大值------最小值----/n" 	    > COMMENT:" /n"  
> AREA:value1#00FF00:"流入" / 
> GPRINT:value1:LAST:'%13.2lf'  / 
> GPRINT:value1:AVERAGE:%13.2lf  / 
> GPRINT:value1:MAX:%13.2lf  / 
> GPRINT:value1:MIN:%13.2lf  / 
> COMMENT:" /n" / 
> LINE2:value2#ff0000:"流出":STACK /	# 注意这里是 STACK 方式 
> GPRINT:value2:LAST:%13.2lf  / 
> GPRINT:value2:AVERAGE:%13.2lf  / 
> GPRINT:value2:MAX:%13.2lf  / 
> GPRINT:value2:MIN:%13.2lf  / 
> COMMENT:" /n" / 
> COMMENT:” /n” / 
> COMMENT:"LAST UPDATED /:$(date '+%Y-%m-%d %H/:%M')/n" -Y 
687x270 
[root@dns1 bob]#


注意比较 Y 轴刻度值和“流出”部分的值的关系, Y 轴刻度值 —“流入” =“流出”

上面的  COMMENT 一是输出表头,二是输出空行。注意,要用 COMMENT 输出空行,必须用 COMMENT:’ /n’ 。

注意到 ‘/’ 前面的空格吗?这个是不可以漏的,否则就不会有空行的效果了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MRTG是一款用于监控网络流量,带宽利用率等的开源软件。在应用MRTG之前,需要对环境进行假设和分析,以确保软件的可用性和稳定性。以下是一些可能需要考虑的因素: 1. 网络设备:MRTG需要监视的网络设备包括路由器、交换机、防火墙等。需要考虑这些设备的型号、厂商、操作系统等因素。 2. 网络拓扑:需要了解网络的拓扑结构,包括设备的位置、连接方式等。这有助于确定监视哪些设备以及如何配置MRTG。 3. 网络带宽:需要知道网络的带宽容量,以便确定监视的流量范围。此外,还需要考虑网络中的瓶颈点和高流量区域,以便进行更精细的监测。 4. 硬件要求:MRTG需要运行在一台服务器上,需要考虑服务器的硬件配置,包括CPU、内存、磁盘空间等。 5. 操作系统:MRTG可以运行在多种操作系统上,包括Windows、Linux、Unix等。需要考虑选择哪种操作系统,以及是否需要进行特定的配置。 6. 数据库:MRTG需要存储监测数据,需要选择合适的数据库,包括MySQL、PostgreSQL、RRDtool等。需要考虑数据库的性能和可靠性。 7. 安全性:MRTG需要访问网络设备的SNMP协议,需要考虑安全性问题,包括防火墙设置、SNMP安全配置等。 综上所述,对于MRTG的应用环境,需要考虑多个因素,包括网络设备、拓扑结构、带宽、硬件要求、操作系统、数据库和安全性等。只有综合考虑这些因素,才能确保MRTG的稳定运行和准确监测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

day walker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值