Sidebar

ru:manual:discovery:low_level_discovery:snmp_oids

3 Обнаружение SNMP OID'ов

Обзор

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

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

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

Обнаружение SNMP OID'ов поддерживается начиная с Zabbix сервера/прокси 2.0.

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

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

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

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

OID'ы для обнаружения добавляются в поле SNMP OID в следующем формате: discovery[{#МАКРОС1}, oid1, {#МАКРОС2}, oid2, …,]

где {#МАКРОС1}, {#МАКРОС2} … допустимые имена низкоуровневых макросов и 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. В настройках узла сети эти объекты будут иметь префикс с оранжевой ссылкой на правило обнаружения, с которого пришли эти объекты.