Jump to content
Калькуляторы

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'а для сетевого интерфейса закрепить?

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

вообщето МРТГ умеет брать графики не по 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

 

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

вообщето МРТГ умеет брать графики не по 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

 

 

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

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

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.