Pull to refresh

Zabbix, подключаем любую железку имеющую MIB

Reading time4 min
Views130K
Началось строительство FTTB и появилось новое оборудование производителя Edge-core. Естественно захотелось прикрутить новое железо к Zabbix. Ранее я поступал просто — натравливал snmpwalk на железку и анализировал полученные данные. Этот путь достаточно долгий, так как полученный результат бывает под несколько мегабайт текста и достаточно тяжело найти нужные значения. Но есть другой способ — использовать MIB устройства. Но ведь Zabbix не умеет работать напрямую с MIB файлами. Что же делать?
На форуме забикса нашел замечательную утилиту SNMP Builder for Zabbix. С её помощью можно сделать базовый шаблон устройства имея его MIB и потом ручками его допилить до нормального состояния.
Я вам расскажу как это сделать на примере оборудования Edge-core.



Установка утилиты


Скачать её можно с блога разработчика этой утилиты или напрямую тут. В блоге есть краткая инструкция по её установке и использованию. Но я кратко её повторю.
1. Скачиваем архив. В архиве находиться каталог и один файл snmp_builder.php.
2. Распаковываем архив в директорию с фронтэндом.
3. Открываем snmp_builder.php и при необходимости корректируем пути до места расположения mib файлов.
define('MIBS_ALL_PATH', '/home/zabbix/public_html/snmp_builder/mibs:/usr/share/snmp/mibs');

4. Добавляем в меню «Администрирование» фронтэнда пункт меню Snmp Builder.
Для этого открываем include/menu.inc.php и в районе 203 строки (в моей версии это была не 203 строка) изменяем код на такой
               'label'=>S_NOTIFICATIONS
          ),
        array('url'=>'locales.php',
            'label'=>S_LOCALES
          ),
        array('url'=>'snmp_builder.php',
            'label'=>'SNMP Builder'
          ),
        array('url'=>'instal.php',
            'label'=>S_INSTALLATION,
            'sub_pages'=>array('setup.php','warning.php')
          )
        )


* This source code was highlighted with Source Code Highlighter.


Создание шаблона



Первым делом ищем MIB железа. Производитель, в отличии от сименса, свои мибы не скрывал. Я их свободно скачал с официального сайта www.edge-core.ru.
Далее скачанный миб помещаем в любую из директорий обозначенных в пункте 3.
Открываем в меню Администрирование/Snmp Builder.
Увидим подобную картину:



В списке Template выбираем тот шаблон в который будем добавлять новые итемы. Я заранее создал новый пустой шаблон. В списке MIB выбираем mib нашего устройства, в поле Server вводим ip устройства, в поле Community вводим snmp community string устройства. Если все правильно то получим выше обозначенную картину. Может возникнуть ситуация когда встроенных мибов не хватает

.Cannot find module (CISCO-SMI): At line 21 in /home/zabbix/public_html/snmp_builder/mibs/CISCO-IP-IF-MIB mib Cannot find module (CISCO-SMI): At line 21 in /home/zabbix/public_html/snmp_builder/mibs/CISCO-IP-IF-MIB.mib

Как видно из текста не хватает миба CISCO-SMI, как говорится гугль в зубы и ищем не достающий MIB, после нахождения помещаем его в уже выше обозначенные в пункте 3 пути поиска MIB. Операцию повторяем до тех пор пока ошибки о недостающих мибах не исчезнут.

В некоторых случая (в моем тоже) необходимо скорректировать код snmp_builder.php начиная со строки 315
  foreach(glob($path."/*.mib"as $filename){
   if (preg_match('/^'.preg_quote($path,'/').'\/(.+)\.mib$/',$filename,$matches)){
    $result=exec("cat ".$filename."| grep -i 'DEFINITIONS.*::=.*BEGIN'|awk '{print $1}'");
    $cmbMibs->addItem($result,$result);
   }
  } 


* This source code was highlighted with Source Code Highlighter.


Если все выше описанное помогло то вы увидите дерево OID


В этом дереве выбираете нужную таблицу и она отобразится в верхней части. В этой таблице достаточно выбрать нужные параметры нажатием на либо на поле, либо на заголовке столбца для выбора всех параметров данного столбца. Выбранные элементы и их параметры отобразятся в нижней части экрана. Удалять их можно либо по одному нажатием на строку с параметром либо всё сразу нажав Clear List. Если добавленные элементы вас устраивают то нажимаем кнопку Save. После нажатия элементы из нижней таблицы добавятся как новые item к существующему выбранному шаблону.

Повторяем эту операцию до тех пор пока все нужные элементы не будут выбраны.

Мной для выбранного коммутатора были добавлены счетчики интерфейсов их описания и их состояние. Так же было добавлено состояние протокола STP (состояние интерфейса, номер порта root, вес устройства и количество изменений топологии) и т.д.

После добавления всех нужных нам итемов очень было бы неплохо их отредактировать. По умолчанию интервал опроса всех элементов 60 секунд, что явно излишне. Для не критичных данных, например имя хоста, версия прошивки, alias интерфейсов можно установить интервал 84600 секунд (24 часа).
С счетчиками ситуация чуть сложнее: приемлемый интервал опроса для интерфейсов, на мой взгляд, 300 секунд и необходимо изменить формат хранения «на дельта в секунду».

Со значением «StpPortState» необходимо сделать еще и преобразование значений в понятный человеку вид.
Для начала настроим преобразование цифровых значений в текстовые в меню Администрирование/Общие Параметры/Преобразование значений пары код-значение дергаем из MIB


В настройке итема выбираем так


К шаблону, как минимум, необходимо добавить простую проверку ping


На эту проверку нужно повесить триггер который сработает в том случае если железка не будет доступна более 90 секунд.


Можно нарисовать графики загрузки интерфейсов по счетчикам IfOctets OutOctets


Следующие триггеры и графики делаются по аналогии.
Я к примеру добавил триггеры срабатывающие при загрузки интерфейса более чем на 80%, при изменении роли интерфейса в STP, при низком времени работы.

Надеюсь что данная информация поможет Вам добавить любое железо имеющее MIB к системе мониторинга Zabbix.

PS: Это продолжение моих статей по zabbix: статья 3, статья 2, статья 1

Tags:
Hubs:
Total votes 10: ↑8 and ↓2+6
Comments15

Articles