Перейти к содержимому
Калькуляторы

SNMP и проблема с "плавующими" OID'ами

Рисую графики vlan-ов с помощью mrtg, статистику снимаю по snmp. ОС FreeBSD.

Проблема следующая. В процессе настройки vlan'ов (destroy,create) имеем следующее:

# snmpwalk -v 2c -c public 192.168.0.1|grep ifDesc
IF-MIB::ifDescr.1 = STRING: em0
IF-MIB::ifDescr.2 = STRING: em1
IF-MIB::ifDescr.3 = STRING: em2
IF-MIB::ifDescr.4 = STRING: re0
IF-MIB::ifDescr.5 = STRING: plip0
IF-MIB::ifDescr.6 = STRING: lo0
IF-MIB::ifDescr.7 = STRING: vlan26
IF-MIB::ifDescr.8 = STRING: vlan27
IF-MIB::ifDescr.9 = STRING: vlan28
IF-MIB::ifDescr.10 = STRING: vlan29
IF-MIB::ifDescr.11 = STRING: vlan4
IF-MIB::ifDescr.12 = STRING: vlan5
IF-MIB::ifDescr.13 = STRING: vlan6
IF-MIB::ifDescr.14 = STRING: vlan7
IF-MIB::ifDescr.15 = STRING: vlan8
IF-MIB::ifDescr.16 = STRING: vlan9
IF-MIB::ifDescr.17 = STRING: vlan10
IF-MIB::ifDescr.18 = STRING: vlan30
IF-MIB::ifDescr.20 = STRING: vlan13
IF-MIB::ifDescr.21 = STRING: vlan14
IF-MIB::ifDescr.22 = STRING: vlan15
IF-MIB::ifDescr.23 = STRING: vlan16
IF-MIB::ifDescr.24 = STRING: vlan17
IF-MIB::ifDescr.25 = STRING: vlan18
IF-MIB::ifDescr.26 = STRING: vlan19
IF-MIB::ifDescr.27 = STRING: vlan20
IF-MIB::ifDescr.28 = STRING: vlan21
IF-MIB::ifDescr.29 = STRING: vlan22
IF-MIB::ifDescr.30 = STRING: vlan23
IF-MIB::ifDescr.31 = STRING: vlan24

перегружаем сервер и смотрим:

# snmpwalk -v 2c -c public 192.168.0.1|grep ifDesc
IF-MIB::ifDescr.1 = STRING: em0
IF-MIB::ifDescr.2 = STRING: em1
IF-MIB::ifDescr.3 = STRING: em2
IF-MIB::ifDescr.4 = STRING: re0
IF-MIB::ifDescr.5 = STRING: plip0
IF-MIB::ifDescr.6 = STRING: lo0
IF-MIB::ifDescr.7 = STRING: vlan0
IF-MIB::ifDescr.8 = STRING: vlan1
IF-MIB::ifDescr.9 = STRING: vlan2
IF-MIB::ifDescr.10 = STRING: vlan3
IF-MIB::ifDescr.11 = STRING: vlan4
IF-MIB::ifDescr.12 = STRING: vlan5
IF-MIB::ifDescr.13 = STRING: vlan6
IF-MIB::ifDescr.14 = STRING: vlan7
IF-MIB::ifDescr.15 = STRING: vlan8
IF-MIB::ifDescr.16 = STRING: vlan9
IF-MIB::ifDescr.17 = STRING: vlan10
IF-MIB::ifDescr.18 = STRING: vlan11
IF-MIB::ifDescr.19 = STRING: vlan12
IF-MIB::ifDescr.20 = STRING: vlan13
IF-MIB::ifDescr.21 = STRING: vlan14
IF-MIB::ifDescr.22 = STRING: vlan15
IF-MIB::ifDescr.23 = STRING: vlan16
IF-MIB::ifDescr.24 = STRING: vlan17
IF-MIB::ifDescr.25 = STRING: vlan18
IF-MIB::ifDescr.26 = STRING: vlan19
IF-MIB::ifDescr.27 = STRING: vlan20
IF-MIB::ifDescr.28 = STRING: vlan21
IF-MIB::ifDescr.29 = STRING: vlan22
IF-MIB::ifDescr.30 = STRING: vlan23
IF-MIB::ifDescr.31 = STRING: vlan24
IF-MIB::ifDescr.32 = STRING: vlan25
IF-MIB::ifDescr.33 = STRING: vlan26
IF-MIB::ifDescr.34 = STRING: vlan27
IF-MIB::ifDescr.35 = STRING: vlan28
IF-MIB::ifDescr.36 = STRING: vlan29

 

как видим до перезагрузки vlan29-ому соответствовал OID IF-MIB::ifDescr.10, после IF-MIB::ifDescr.36

оно то в принципе понятно почему так, вопрос в том, как бы это зафиксировать/прописать в конфиге snmp, или какой то свой аля алиас OID'а для сетевого интерфейса закрепить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

net-snmp не умеет ifindex-persist, он тупо берёт индексы из ядра

 

выход - использовать систему мониторинга, умеющую выгребать индексы динамически и отслеживать ребут по аптайму. например, zabbix

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вообщето МРТГ умеет брать графики не по ID а по именам...

 

 

cfgmaker

--ifref=nr interface references by Interface Number (default)

--ifref=ip ... by Ip Address

--ifref=eth ... by Ethernet Number

--ifref=descr ... by Interface Description

--ifref=name ... by Interface Name

--ifref=type ... by Interface Type

 

В качестве домашнего задания, найти что оно в конфиг при этом пишет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

например, zabbix

 

Мне казалось zabbix как раз не умеет.

Я ошибаюсь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На тему индексов интерфейсов в linux. проблема "ifIndex persist", оказывается, решена и в kernel- и в user-space. собственно коммит для утилиты ip: http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/commit/?id=5e25cf77b9e7d9ae9959db0ac5d731cfbf3b2717

 

осталось запилить явное задание ifIndex в скрипты инициализации(если ещё не сделали) или создавать интерфейсы явно, без системы инициализации

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вообщето МРТГ умеет брать графики не по ID а по именам...

 

 

cfgmaker

 

Цитата

--ifref=nr interface references by Interface Number (default)

--ifref=ip ... by Ip Address

--ifref=eth ... by Ethernet Number

--ifref=descr ... by Interface Description

--ifref=name ... by Interface Name

--ifref=type ... by Interface Type

 

 

В качестве домашнего задания, найти что оно в конфиг при этом пишет.

Спасибо, оно, все работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.