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

например, zabbix

 

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

Я ошибаюсь?

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this