最近有童鞋提问说怎么用Cacti监控磁盘的百分比使用率,我看了下Cacti的磁盘监控模版里也没有一个关于百分比的监控,这当然得结合Thresholds插件来实现该功能。这也涉及到了一个RPN表达式的的简单应用,一起来看下它的简单应用。
什么是 RPN
RPN 代表逆波兰式(Reverse Polish Notation)。
A)RPN 是 Reverse Polish Notation 的缩写,是用于表示算术运算和逻辑运算的一种语法格式。
B)RRDtool 的 CDEF 语句中就经常使用 RPN 来对 DEF 取出来的数据进行运算。
C)RPN 的特点是操作数和操作符出现的顺序和运算的顺序一致,这样就不需要使
用括号了
D)RPN 的格式是 <value1>,<value2>,<operator>,[<value1>,<value2>,<operator>]…
可以看出是操作数在前,操作符在后的格式
最神奇的地方是用它来表示数学表达式,完全不需要括号。而且 RPN 不像普通的数学表达式那样,操作符在操作数的中间,而是在操作数的右边。
例如
3+2 用 RPN 表示就是 3,2,+
3+2x5 用 RPN 表示就是 3,2,5,x,+
最后运算的部分(加法部分)的操作符放在最后,乘号放在前面,表示先执行 2 x 5 ,在把结果和3相加。
再来看看(3+2)x5怎么表示呢:
3,2,+,5,*
或者 3,2,5,+,* 也行
复杂的表达式就不说了,RPN也比较深奥,来看看在Cacti中的实体应用。
在这里以监控Linux的磁盘使用为例。在Cacti中,监控磁盘有两种模版:
Host MIB - Available Disk Space
ucd/net - Available Disk Space
第一种在Linux里还可以监控到内存呀,虚拟内存的使用,如果监控硬盘的使用百分比会出现意外的数据(即同时会监控到内存的使用率,有时候会影响到报警效果,一般内存的使用率可能都比磁盘使用率高很多,这不用多解释了)。
第二种就只会监控到根分区,可能有时候需要在snmp.conf配置文件中添加"disk /",才会获取到磁盘数据。
说说RPN的应用吧。原理很简单,都是已用空间除以总容量就得出使用率了。
Host MIB - Available Disk Space
代码:
- |ds:hdd_used|,|ds:hdd_total|,/
在Thresholds模版里按上面的设置即可(我这里的Cacti版本是0.8.8a官方英文原版)
ucd/net - Available Disk Space
代码:
- |ds:hdd_used|,100,*,|ds:hdd_free|,|ds:hdd_used|,+,/
这里稍微复杂了点,因为在ucd/net - Available Disk Space的模版里只提供了free和used两个数据源,所以求总容量先要相加。这里其实也进行了下转换,把百分比数乘了个100,就不是小数了,也可以去掉。
学会了吗,就这么简单。
转载于:https://blog.51cto.com/luxiaok/1144578