自动发现中监控项原型使用多个值组合成一个新的键值。
这里我们以华为RH5885V3的内存为例:
[技术干货] zabbix监控项原型组合键值_第1张图片
[技术干货] zabbix监控项原型组合键值_第2张图片

我们先walk出要用来作为组合键值的值,我们称之为VALUE。而OID节点后面延伸出来的数值,例如.1、.2、.3这种,我们称之为INDEX。组合键值的关键点就在INDEX上,只有INDEX的值一样,才可以进行键值的组合。
下图是memoryLocation这个节点walk出来的结果。
[技术干货] zabbix监控项原型组合键值_第3张图片
下图为memoryDevicename这个节点walk出来的结果。
[技术干货] zabbix监控项原型组合键值_第4张图片
接下来是在内存的自动发现添加上这两个节点,表达式如下:
[技术干货] zabbix监控项原型组合键值_第5张图片
表达式:
discovery[{#SNMPVALUE},.1.3.6.1.4.1.2011.2.235.1.1.16.50.1.8,{#MEMORY},.1.3.6.1.4.1.2011.2.235.1.1.16.50.1.10]
这里将1.3.6.1.4.1.2011.2.235.1.1.16.50.1.8这个节点walk的结果赋值给{#SNMPVALUE}这个宏,将.1.3.6.1.4.1.2011.2.235.1.1.16.50.1.10这个节点walk的结果赋值给{#MEMORY}这个宏。宏是可以自定义的,我这里叫{#MEMORY},也可以叫做{#NAME}或者其他。
然后我们添加监控项原型,Name这里可以直接写$1引用key里面的{#SNMPVALUE}跟{#MEMORY},也可以像我这样写上去。zabbix在4.0以下版本支持$1这个参数,4.0开始就不支持这么写了。
[技术干货] zabbix监控项原型组合键值_第6张图片
查看最新数据出来的结果:
[技术干货] zabbix监控项原型组合键值_第7张图片