key值计算公式?
2021-05-06

说明:

计算类型的key定义主要是根据已定义过的key值来计算的。注意是已定义过的key值。

如这里我要创建一个计算linux服务器内存实际使用大小的监控项(计算方法为:vm.memory.size[total]-vm.memory.size[buffers]-vm.memory.size[cached]-vm.memory.size[free])。

但zabbix默认的Items里并没有获取vm.memory.size[cached]这个key值。所以在查看Calculated类型的items时会出现Cannot evaluate function “last()”: item “coolnull:vm.memory.size[cached]” does not exist。

要解决的话就需要自己再定义添加coolnull:vm.memory.size[cached]这个Items。

以下这边以获取算linux服务器内存实际使用大小来举例。

具体:

1、在模板中或是主机中选择监控项—->选择Create item

2、监控的名称和key按照其功能随便起一个名字(注:名字和key的名字一定要是英文格式的,包括你名字中包含的特殊字符),如:mem.realused,key的类型选择计算,这时会出现一个Formula,里面就是你的计算公式,如:

(last(“vm.memory.size[total]”)-last(“vm.memory.size[buffers]”)-last(“vm.memory.size[cached]”)-last(“vm.memory.size[free]”))

这个计算公式就是取各个key值的最后一次值做计算,注意公式中没有空格(经测试发现有时有空格之类的话提交的时候可能报错),计算的各个key都是同一类型的。

3、其他的选项没有什么特别,参照公式中其中一个key值的设置选项设置即可。

4、最后点保存提交,完成key的定义。

这边发现如果用(last(“vm.memory.size[total]”)-last(“vm.memory.size[buffers]”)-last(“vm.memory.size[cached]”)-last(“vm.memory.size[free]”))来减的话,还需要再定义vm.memo

大家都在看
本站系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容!本站文章版权归原作者所有,内容为作者个人观点。本站只提供参考并不构成任何投资及应用建议。本站拥有对此声明的最终解释权。