5 Обнаружение OID SNMP (устаревшее)
Обзор
В этом разделе мы выполним SNMP-обнаружение на коммутаторе.
Ключ элемента данных
В отличие от обнаружения файловых систем и сетевых интерфейсов, элементу данных необязательно иметь ключ "snmp.discovery" — достаточно, чтобы типом элемента данных был SNMP агент.
Чтобы настроить правило обнаружения, выполните следующие действия:
- Перейдите в: Data collection → Templates
- Нажмите Discovery в строке соответствующего шаблона

- Нажмите Create discovery rule в правом верхнем углу экрана
- Заполните форму правила обнаружения необходимыми данными, как показано на снимке экрана ниже

Все обязательные поля ввода отмечены красной звездочкой.
OID для обнаружения задаются в поле SNMP OID в следующем
формате: discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]
где {#MACRO1}, {#MACRO2} … — это допустимые имена lld-макросов, а oid1, oid2... — OID, способные возвращать осмысленные значения для этих макросов. Ко всем обнаруженным сущностям применяется встроенный макрос {#SNMPINDEX}, содержащий индекс обнаруженного OID. Обнаруженные сущности группируются по значению макроса {#SNMPINDEX}.
Ниже приведен пример, в котором на коммутаторе выполняется несколько snmpwalk:
$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: WAN
IF-MIB::ifDescr.2 = STRING: LAN1
IF-MIB::ifDescr.3 = STRING: LAN2
$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifPhysAddress
IF-MIB::ifPhysAddress.1 = STRING: 8:0:27:90:7a:75
IF-MIB::ifPhysAddress.2 = STRING: 8:0:27:90:7a:76
IF-MIB::ifPhysAddress.3 = STRING: 8:0:27:2b:af:9e
И SNMP OID задан как:
discovery[{#IFDESCR}, ifDescr, {#IFPHYSADDRESS}, ifPhysAddress]
Теперь это правило обнаружит сущности, у которых макросы {#IFDESCR} установлены в WAN, LAN1 и LAN2, макросы {#IFPHYSADDRESS} установлены в 8:0:27:90:7a:75, 8:0:27:90:7a:76 и 8:0:27:2b:af:9e, а макросы {#SNMPINDEX} установлены в индексы обнаруженных OID 1, 2 и 3:
[
{
"{#SNMPINDEX}": "1",
"{#IFDESCR}": "WAN",
"{#IFPHYSADDRESS}": "8:0:27:90:7a:75"
},
{
"{#SNMPINDEX}": "2",
"{#IFDESCR}": "LAN1",
"{#IFPHYSADDRESS}": "8:0:27:90:7a:76"
},
{
"{#SNMPINDEX}": "3",
"{#IFDESCR}": "LAN2",
"{#IFPHYSADDRESS}": "8:0:27:2b:af:9e"
}
]
Если у сущности нет указанного OID, то соответствующий макрос для этой сущности будет пропущен. Например, если имеются следующие данные:
ifDescr.1 "Interface #1"
ifDescr.2 "Interface #2"
ifDescr.4 "Interface #4"
ifAlias.1 "eth0"
ifAlias.2 "eth1"
ifAlias.3 "eth2"
ifAlias.5 "eth4"
Тогда в этом случае SNMP-обнаружение
discovery[{#IFDESCR}, ifDescr, {#IFALIAS}, ifAlias] вернет
следующую структуру:
[
{
"{#SNMPINDEX}": 1,
"{#IFDESCR}": "Interface #1",
"{#IFALIAS}": "eth0"
},
{
"{#SNMPINDEX}": 2,
"{#IFDESCR}": "Interface #2",
"{#IFALIAS}": "eth1"
},
{
"{#SNMPINDEX}": 3,
"{#IFALIAS}": "eth2"
},
{
"{#SNMPINDEX}": 4,
"{#IFDESCR}": "Interface #4"
},
{
"{#SNMPINDEX}": 5,
"{#IFALIAS}": "eth4"
}
]
Прототипы элементов данных
Следующий снимок экрана показывает, как можно использовать эти макросы в прототипах элементов данных:

Вы можете создать столько прототипов элементов данных, сколько необходимо:

Прототипы триггеров
Следующий снимок экрана иллюстрирует, как можно использовать эти макросы в прототипах триггеров:


Прототипы графиков
Следующий снимок экрана иллюстрирует, как мы можем использовать эти макросы в прототипах графиков:


Сводка по нашему правилу обнаружения:

Обнаруженные сущности
Когда сервер запущен, он создаёт реальные элементы данных, триггеры и графики на основе значений, которые возвращает правило обнаружения SNMP. В конфигурации узла сети они помечены оранжевой ссылкой на правило обнаружения, из которого они были созданы.


