5. Обнаружение SNMP OID'ов (прежнее)

Обзор

В этом разделе мы будем выполнять SNMP обнаружение на свитче.

Ключ элемента данных

В отличие от обнаружения файловой системы и сетевого интерфейса, элемент данных не обязательно должен иметь ключ "snmp.discovery" - достаточно типа элемента данных SNMP agent.

Чтобы настроить правило обнаружения, выполните следующие действия:

  • Перейдите в: Сбор данныхШаблоны
  • Нажмите Обнаружение в строке нужного шаблона

  • Нажмите Создать правило обнаружения в правом верхнем углу экрана
  • Заполните форму правила обнаружения, указав необходимые сведения, как показано на снимке экрана ниже

Все обязательные поля ввода отмечены красной звездочкой.

OID, которые нужно обнаружить, задаются в поле SNMP OID в следующем формате: discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]

где {#MACRO1}, {#MACRO2} … — допустимые имена lld macro, а 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 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 обнаружения. В настройках узла сети они будут снабжены префиксом золотистого цвета, который является ссылкой на породившее их правило обнаружения.