Привет, Экспертам!.
Понятно в общем-то как работать с обнаружениями когда у нас есть что-то вроде ifTable, в которой столбцы (ifAlias,ifDescr,IfHighSpeed,etc.) имеют общий индекс (#SNMPINDEX)
Но когда работаешь с двумя SNMP-табличками, которые индексируются разными ключами, при этом на одной из табличек есть ключ для обращения к элементам другой таблички.
Например случай
----- БЛОК А ----------------
root@zabbix:~# snmpwalk -On -v2c -c public 10.x.y.z 1.3.6.1.4.1.9.9.109.1.1.1.1
.1.3.6.1.4.1.9.9.109.1.1.1.1.2.2 = INTEGER: 52690955 # отсылка к snmp-табличке "envNames"
.1.3.6.1.4.1.9.9.109.1.1.1.1.2.2082 = INTEGER: 18788073 # отсылка к snmp-табличке "envNames"
.1.3.6.1.4.1.9.9.109.1.1.1.1.7.2 = Gauge32: 3 # какие-то значения нагрузки процессора id 2
.1.3.6.1.4.1.9.9.109.1.1.1.1.7.2082 = Gauge32: 4 # какие-то значения нагрузки процессора id 2082
.1.3.6.1.4.1.9.9.109.1.1.1.1.8.2 = Gauge32: 13
.1.3.6.1.4.1.9.9.109.1.1.1.1.8.2082 = Gauge32: 4
допустим мы делаем дискавери и затем видим появившиеся элементы
------- БЛОК Б ----------
а как насчет замены 52690955 и 18788073 на имена:
Если я делаю второе дискавери в шаблоне, то... ну я получаю в его элементе перечисление эл-тов таблицы entPhysicalName ,типа:
.1.3.6.1.2.1.47.1.1.1.1.7.18788073 = STRING: "module 0/0/CPU0"
.1.3.6.1.2.1.47.1.1.1.1.7.52690955 = STRING: "module 0/RSP0/CPU0"
---- ВОПРОС ----
но как же мне в "блоке/дискавери А" получить имена процессоров которые есть только в "блоке/дискавери" Б, что бы это выглядело лицеприятно наподобие
kCpuLoad[module 0/0/CPU0]
Понятно в общем-то как работать с обнаружениями когда у нас есть что-то вроде ifTable, в которой столбцы (ifAlias,ifDescr,IfHighSpeed,etc.) имеют общий индекс (#SNMPINDEX)
Но когда работаешь с двумя SNMP-табличками, которые индексируются разными ключами, при этом на одной из табличек есть ключ для обращения к элементам другой таблички.
Например случай
----- БЛОК А ----------------
root@zabbix:~# snmpwalk -On -v2c -c public 10.x.y.z 1.3.6.1.4.1.9.9.109.1.1.1.1
.1.3.6.1.4.1.9.9.109.1.1.1.1.2.2 = INTEGER: 52690955 # отсылка к snmp-табличке "envNames"
.1.3.6.1.4.1.9.9.109.1.1.1.1.2.2082 = INTEGER: 18788073 # отсылка к snmp-табличке "envNames"
.1.3.6.1.4.1.9.9.109.1.1.1.1.7.2 = Gauge32: 3 # какие-то значения нагрузки процессора id 2
.1.3.6.1.4.1.9.9.109.1.1.1.1.7.2082 = Gauge32: 4 # какие-то значения нагрузки процессора id 2082
.1.3.6.1.4.1.9.9.109.1.1.1.1.8.2 = Gauge32: 13
.1.3.6.1.4.1.9.9.109.1.1.1.1.8.2082 = Gauge32: 4
допустим мы делаем дискавери и затем видим появившиеся элементы
| cpmCPUTotal1minRev 2082 . 18788073 kCpuLoad[18788073] |
30 | 90 | 0 | SNMPv2 агент | 13.11.2019 16:59:53 | 4 % | |||||
| cpmCPUTotal1minRev 2 . 52690955 kCpuLoad[52690955] |
30 | 90 | 0 | SNMPv2 агент | 13.11.2019 16:59:53 | 4 % | |||||
а как насчет замены 52690955 и 18788073 на имена:
Если я делаю второе дискавери в шаблоне, то... ну я получаю в его элементе перечисление эл-тов таблицы entPhysicalName ,типа:
.1.3.6.1.2.1.47.1.1.1.1.7.18788073 = STRING: "module 0/0/CPU0"
.1.3.6.1.2.1.47.1.1.1.1.7.52690955 = STRING: "module 0/RSP0/CPU0"
---- ВОПРОС ----
но как же мне в "блоке/дискавери А" получить имена процессоров которые есть только в "блоке/дискавери" Б, что бы это выглядело лицеприятно наподобие
kCpuLoad[module 0/0/CPU0]