Zabbix 返回值中去除多余字符

背景分析:采用snmp方式对某设备进行监控时,内存部分(设备总内存、剩余内存)内容返回的值的类型为字符串,如下图1。
Zabbix 返回值中去除多余字符
图1
现在我还想加上一个内存的使用率,因为没有找到对应的oid,所以打算使用可计算的方式,对上述两个值进行计算得出内存使用率的值。由于现在的两个相关返回值的类型为字符串(字符串没有办法进行可计算),所以必须得去掉“MB”字符,使得返回值为数值类型。

  1. 选中需要调整的监控项,选择“进程”进行调整。如下图2
    Zabbix 返回值中去除多余字符
    图2
    (1) 修整右边:从值的末尾删除字符“MB”
    (2) 自定义倍数:该值是 1024*1024 后所得结果。

  2. 现在回到监控项,还是直接引用对应的oid,如下图3
    Zabbix 返回值中去除多余字符
    图3
    (1) 信息类型:选择浮点数,本来返回的数值是字符,选择浮点数类型时会报错,但是前面的修整步骤中已经去除了“MB”字符,剩下值的类型已经符合浮点数类型,所以可以选择“浮点数”。
    (2) 单位:原本返回的值里面包含了“MB”做单位显示,但是前面已经去除了,所以现在返回的值还得补充单位。从对应单位填写的“B”来看,B转换到MB需要乘两次1024,所以在进程处还选择了自定义倍数,对应的值填“1024*1024”的相乘结果。虽可以直接填入MB做单位,但在返回值的显示会不够规范以及美观(可能返回值会带有KMB等结果),为了统一以及展示美观,而做了该步。

  3. 最后看看数据返回结果,如图4.
    Zabbix 返回值中去除多余字符
    图4
    现在可以看到对应的监控项返回的值是1.14GB,另外设备总内存也是通过相同的配置而获得返回数值的结果,最后可通过可计算的形式得出内存使用率。

技术交流欢迎加入Q群:177428068