sqtsqt 发表于 2019-1-11 06:43:37

RPN表达式在Cacti监控中的应用(监控磁盘使用率)

  最近有童鞋提问说怎么用Cacti监控磁盘的百分比使用率,我看了下Cacti的磁盘监控模版里也没有一个关于百分比的监控,这当然得结合Thresholds插件来实现该功能。这也涉及到了一个RPN表达式的的简单应用,一起来看下它的简单应用。
  什么是 RPN
  RPN 代表逆波兰式(Reverse Polish Notation)。
A)RPN 是 Reverse Polish Notation 的缩写,是用于表示算术运算和逻辑运算的一种语法格式。
B)RRDtool 的 CDEF 语句中就经常使用 RPN 来对 DEF 取出来的数据进行运算。
C)RPN 的特点是操作数和操作符出现的顺序和运算的顺序一致,这样就不需要使
用括号了
D)RPN 的格式是 ,,,[,,]…
  可以看出是操作数在前,操作符在后的格式
  最神奇的地方是用它来表示数学表达式,完全不需要括号。而且 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
http://blog.运维网.com/attachment/201303/171007839.png
  代码:


[*]|ds:hdd_used|,|ds:hdd_total|,/

  在Thresholds模版里按上面的设置即可(我这里的Cacti版本是0.8.8a官方英文原版)
  ucd/net - Available Disk Space
http://blog.运维网.com/attachment/201303/171341924.png
  代码:


[*]|ds:hdd_used|,100,*,|ds:hdd_free|,|ds:hdd_used|,+,/

  这里稍微复杂了点,因为在ucd/net - Available Disk Space的模版里只提供了free和used两个数据源,所以求总容量先要相加。这里其实也进行了下转换,把百分比数乘了个100,就不是小数了,也可以去掉。
  学会了吗,就这么简单。



页: [1]
查看完整版本: RPN表达式在Cacti监控中的应用(监控磁盘使用率)