Для начала кратко опишем некоторые важные термины протокола SNMP (Simple Network Managment Protocol) взято с sysadminwiki.ru):
MIB — Managment Information Base — база данных информации управления, хранящая информацию обо всех объектах (параметрах и настройках) устройства.
OID — Object IDentificator — числовой идентификатор объекта в дереве MIB.
Object Name — имя объекта, уникальная константа для всего MIB, однозначно соответствующая определённому OID.
Для чего нужны MIB файлы? По сути, это название для OID. Покажем это на примере.
Если в консоли мы вводим команду:
snmpwalk 192.168.0.111 -v2c -c public
где 192.168.0.111 это IP адрес нашего сетевого устройства с поддержкой SNMP (в моем случае это Audiocodes), то без установленных MIB файлов мы получим примерно следующее:
iso.3.6.1.2.1.1.1.0 = STRING: "Product: MG 1K ESBC;SW Version: 6.60A.228.011" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.5003.8.1.1.71 iso.3.6.1.2.1.1.3.0 = Timeticks: (387606757) 44 days, 20:41:07.57 iso.3.6.1.2.1.1.4.0 = "" iso.3.6.1.2.1.1.5.0 = "" iso.3.6.1.2.1.1.6.0 = "" iso.3.6.1.2.1.1.7.0 = INTEGER: 76 iso.3.6.1.2.1.2.1.0 = INTEGER: 6 iso.3.6.1.2.1.2.2.1.1.1141129729 = INTEGER: 1141129729 iso.3.6.1.2.1.2.2.1.1.1141129730 = INTEGER: 1141129730 iso.3.6.1.2.1.2.2.1.1.1141129731 = INTEGER: 1141129731 iso.3.6.1.2.1.2.2.1.1.1141129732 = INTEGER: 1141129732 iso.3.6.1.2.1.2.2.1.1.1142698753 = INTEGER: 1142698753 iso.3.6.1.2.1.2.2.1.1.1142698754 = INTEGER: 1142698754 iso.3.6.1.2.1.2.2.1.2.1141129729 = STRING: "Digital DS1 interface 1/1" iso.3.6.1.2.1.2.2.1.2.1141129730 = STRING: "Digital DS1 interface 1/2" iso.3.6.1.2.1.2.2.1.2.1141129731 = STRING: "Digital DS1 interface 1/3" iso.3.6.1.2.1.2.2.1.2.1141129732 = STRING: "Digital DS1 interface 1/4" iso.3.6.1.2.1.2.2.1.2.1142698753 = STRING: "Giga-Bit Ethernet interface 0/1" iso.3.6.1.2.1.2.2.1.2.1142698754 = STRING: "Giga-Bit Ethernet interface 0/2" iso.3.6.1.2.1.2.2.1.3.1141129729 = INTEGER: 18 iso.3.6.1.2.1.2.2.1.3.1141129730 = INTEGER: 18 iso.3.6.1.2.1.2.2.1.3.1141129731 = INTEGER: 18 iso.3.6.1.2.1.2.2.1.3.1141129732 = INTEGER: 18 iso.3.6.1.2.1.2.2.1.3.1142698753 = INTEGER: 6 iso.3.6.1.2.1.2.2.1.3.1142698754 = INTEGER: 6 iso.3.6.1.2.1.2.2.1.4.1141129729 = INTEGER: 0 iso.3.6.1.2.1.2.2.1.4.1141129730 = INTEGER: 0 iso.3.6.1.2.1.2.2.1.4.1141129731 = INTEGER: 0 iso.3.6.1.2.1.2.2.1.4.1141129732 = INTEGER: 0 iso.3.6.1.2.1.2.2.1.4.1142698753 = INTEGER: 1500 iso.3.6.1.2.1.2.2.1.4.1142698754 = INTEGER: 1500 iso.3.6.1.2.1.2.2.1.5.1141129729 = Gauge32: 2048000 iso.3.6.1.2.1.2.2.1.5.1141129730 = Gauge32: 2048000 iso.3.6.1.2.1.2.2.1.5.1141129731 = Gauge32: 2048000 iso.3.6.1.2.1.2.2.1.5.1141129732 = Gauge32: 2048000 iso.3.6.1.2.1.2.2.1.5.1142698753 = Gauge32: 1000000000 iso.3.6.1.2.1.2.2.1.5.1142698754 = Gauge32: 1000000000
Т.е. получаем голые OID (цифровые идентификаторы), что очень проблематично прочитать и понять. То после установки MIB файлов, мы, при той же команде, увидим следующее:
SNMPv2-MIB::sysDescr.0 = STRING: Product: MG 1K ESBC;SW Version: 6.60A.228.011 SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.5003.8.1.1.71 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (387951090) 44 days, 21:38:30.90 SNMPv2-MIB::sysContact.0 = STRING: SNMPv2-MIB::sysName.0 = STRING: SNMPv2-MIB::sysLocation.0 = STRING: SNMPv2-MIB::sysServices.0 = INTEGER: 76 IF-MIB::ifNumber.0 = INTEGER: 6 IF-MIB::ifIndex.1141129729 = INTEGER: 1141129729 IF-MIB::ifIndex.1141129730 = INTEGER: 1141129730 IF-MIB::ifIndex.1141129731 = INTEGER: 1141129731 IF-MIB::ifIndex.1141129732 = INTEGER: 1141129732 IF-MIB::ifIndex.1142698753 = INTEGER: 1142698753 IF-MIB::ifIndex.1142698754 = INTEGER: 1142698754 IF-MIB::ifDescr.1141129729 = STRING: Digital DS1 interface 1/1 IF-MIB::ifDescr.1141129730 = STRING: Digital DS1 interface 1/2 IF-MIB::ifDescr.1141129731 = STRING: Digital DS1 interface 1/3 IF-MIB::ifDescr.1141129732 = STRING: Digital DS1 interface 1/4 IF-MIB::ifDescr.1142698753 = STRING: Giga-Bit Ethernet interface 0/1 IF-MIB::ifDescr.1142698754 = STRING: Giga-Bit Ethernet interface 0/2 IF-MIB::ifType.1141129729 = INTEGER: ds1(18) IF-MIB::ifType.1141129730 = INTEGER: ds1(18) IF-MIB::ifType.1141129731 = INTEGER: ds1(18) IF-MIB::ifType.1141129732 = INTEGER: ds1(18) IF-MIB::ifType.1142698753 = INTEGER: ethernetCsmacd(6) IF-MIB::ifType.1142698754 = INTEGER: ethernetCsmacd(6) IF-MIB::ifMtu.1141129729 = INTEGER: 0 IF-MIB::ifMtu.1141129730 = INTEGER: 0 IF-MIB::ifMtu.1141129731 = INTEGER: 0 IF-MIB::ifMtu.1141129732 = INTEGER: 0 IF-MIB::ifMtu.1142698753 = INTEGER: 1500 IF-MIB::ifMtu.1142698754 = INTEGER: 1500 IF-MIB::ifSpeed.1141129729 = Gauge32: 2048000 IF-MIB::ifSpeed.1141129730 = Gauge32: 2048000 IF-MIB::ifSpeed.1141129731 = Gauge32: 2048000 IF-MIB::ifSpeed.1141129732 = Gauge32: 2048000 IF-MIB::ifSpeed.1142698753 = Gauge32: 1000000000 IF-MIB::ifSpeed.1142698754 = Gauge32: 1000000000
Согласитесь, уже как-то понятнее. И интуитивно можно понять что написано в данном snmp файле.
В последних версиях Ubuntu, при установке пакета net-snmp, по умолчанию, не устанавливаются MIB файлы. Это как-то связанно с лицензированием. Для включения MIB файлов необходимо сделать следующее:
1) Подключаем репозиторий, если его нет. Для этого в файл /etc/apt/sources.list вводим необходимые строки.
sudo mcedit /etc/apt/sources.list
Дописываем в конец файла строки:
deb http://archive.ubuntu.com/ubuntu precise multiverse deb-src http://archive.ubuntu.com/ubuntu precise multiverse
2) Скачиваем и устанавливаем файл snmp-mibs-downloader (произойдет скачивание IETF MIB файлов и установка их в каталог /usr/share/mibs/)
sudo apt-get install snmp-mibs-downloader
3) В дальнейшем, если вам понадобится, можно выполнить команду
sudo download-mibs
и погрузятся свежие MIB файлы из репозитария.
4) В файле /etc/snmp/snmp.conf внесем некоторые изменения (либо открываем все MIB файлы, либо открываем частично). Файл должен выглядеть следующим образом:
# As the snmp packages come without MIB files due to license reasons, loading # of MIBs is disabled by default. If you added the MIBs you can reenable # loading them by commenting out the following line. mibs :BRIDGE-MIB:Q-BRIDGE-MIB:IP-MIB:IF-MIB #mibs +ALL - включает поиск по всем MIB файлам
Большое количество MIB файлов для разного оборудования можно скачать на сайте http://www.oidview.com/.
Для скачивания дополнительных MIB файлов рекомендуется создать новый каталог:
cd ~mkdir -p .snmp/mibs
И туда уже подгружать MIB файлы для конкретного оборудования.