Пара слов о сетевой инвентаризации
По мере разрастания сети хотя бы до размера в 50 хостов и пяток свитчей, появляется потребность это где-то как-то документировать. Желательно при этом, чтобы поддержание записей в актуальном состоянии занимало минимум времени.
Требования к учёту:
- учёт самой железки (серийник, мак, ip, расположение, возможности, версия прошивки, и т.д.)
- учёт кабельного хозяйства (грубо говоря - "что/куда воткнуто")
- наглядная топология
Бумажки сразу отметаем, как несовременные, неудобные и неподдерживаемые. Держать их в актуальном состоянии - адов труд.
Давайте посмотрим, что мы можем задействовать для ведения учёта.
GLPI
Несомненным преимуществом этой софтины является универсальность - там можно до кучи вести учёт компов, картриджей, принтеров и прочих побрякушек. Учёт самой сетевой железки там есть - и оно даже автоматически обновляется, если использовать fusioninventory (netdiscover/netquery).
Модель назначается устройству автоматически, по совпадению SNMP sysDescr. Существующие устройства определяются по мак'у, серийнику, адресу и/или их комбинации.
Картинки:
Обратите внимание на последнюю картинку - для принтера подсказывается вычисленный уровень расходника, чтобы сравнить с тем что по факту показывается на самом принтере. Мелочь, а приятно.
Вполне реально доработать напильником до состояния "работает идеально".
Теперь о минусах. У устройства в sysdescr может оказаться всякая ересь. Я даже удивлюсь, если её там не окажется. За примерами далеко ходить не надо: циска с sysdescr пихает абсолютно всё:
Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 15.0(1)SE3, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2012 by Cisco Systems, Inc.
Compiled Wed 30-May-12 14:35 by prod_rel_team
Именно так, в несколько строчек. Другие не выдают там ничего. Третьи (привет, HP!), выдают строчку "HP MULTI ENVIRONMENT" для ВСЕХ принтеров, а точную модель прячут в недра <...>.enterprise.<...>. Это порождает просто гигантское количество хаков и "специальных случаев", обработкой которых никак не должен заниматься софт, изначально писанный для хелпдеска.
То же самое с серийниками и версиями прошивки - разброд, шатание и перетягивание одеяла на себя. Они могут быть где угодно в дампе SNMP и в каком угодно формате. Примеры:
- лёгкий случай - лежит одной строкой в ENTITY-MIB::entPhysicalSerialNum
- типичный случай - лежит одной строкой в нестандартном месте, опять 'enterprises'
- типичный случай - лежит отдельной строкой в разных OID'ах, например отдельно - ветка, отдельно - билд 3 + 11
- тяжёлый случай - распидорашено посимвольно в разные OID'ы (привет, zyxel!)
Ещё одна печаль - наглядная топология. Есть полузаброшенный плагин, но прикручен он сильно сбоку и информацию там придётся дублировать. Поэтому - бумажку с топологией таки держать придётся, но это очень сильно меньше чем весь учёт сети на бумаге.
Впринципе, для учёта хватит с головой. Точность зависит от раздолбайства ведущего.
Резюме - использовать для всех случаев, кроме тех, когда требуется навороченный учёт именно сети.
NetDot
Или Network DOcumentation Tool. Заточена именно под сетевой учёт:
- железки
- локации
- соединения
- ip-адреса
- mac-адреса
- DNS
- люди (контакты, место работы)
- BGP AS (!!)
- учёт использования адресного пространства(!!!)
- экспорт готовых настроек в nagios, isc-dhcpd, isc-bind, cacti и ещё пару мне незнакомых
- ну и естественно, топология
Работает стабильно, на тестовом стенде нашёл всего один косяк в закоулках экспорта (серверный эксепшн и 500'я страничка в итоге)
Устройства так же определяются по snmp. Недостатки этого описаны выше, но с оговоркой, здесь не полагаются на точное соответствия, в ход сразу идут regexp'ы.
Минусы
- полагается на тот факт, что у каждого свитча есть валидное dns-имя. В телекомах оно зачастую так, в крупной компании - далеко не всегда. Исправимо малой кровью.
- интерфейс построен на модальных окнах, что бесит. Задевается оно на задний план, и будешь полминуты соображать что к чему. <ванга>С юнити и третьегномом должен быть просто ад.
Картинки:
Видите вопросики и подсвеченные зелёным заголовки полей на последней картинке? Это справка, и она краткая, деловая и реально везде.
Резюме - для малого/среднего телекома лучше не придумаешь, для предприятия - сильно оверкилл и явный перекос в сторону большой связной сети.
Netdisco
Ну и на закуску - ещё один проект. Назначение - не столько инвентаризация, сколько глобальное наблюдение за сетью с базовыми возможностями управления на уровне вкл/выкл порт. Изначально софтина разрабатывалась для управления сетью университета, это можно узнать с их сайта.
Существует 2 ветки разработки - 1.X - стабильная (1.0 - в дебиане, 1.3 - текущая) и 2.0 - полная переработка архитектуры и дизайна. Отличаются примерно так же, как "уазик" от "крузака" - по проходимости первый на наших дорогах победит, а вот во всём остальном...
Что понравилось сразу:
- автоматическое добавление устройств для discovery, если найден сосед через cdp/lldp/...
- полуавтоматическая топология на основе того же cdp
- опрос и база устройств вынесены в отдельную библиотеку SNMP::Info, её можно прицепить куда-либо ещё, например к тому же F/I.
- также разнесены frontend и backend, общение через базу
Картинки:
А вот это уже 2я ветка:
И если в старой версии одним из основных инструментом работы была консольная утилита "netdisco" (тупо быстрее получалось), то здесь все операции легко делаются через веб-интерфейс.
Работают обе на уровне "настроил и забыл" - статистика будет накапливаться, новые устройства - подцепляться и опрашиваться.
Поддержка новых устройств дописывается буквально за пару часов. Например, так я починил отображение 3com'ов, zyxel'ей, и сделал частичную поддержку MNDP1 у микротика. Это заняло 2 рабочих дня с учётом раскуривания документации к библиотеке.
Резюме - для компании, где учёт в сети ведётся "для себя" и/или "безопасников". В первую очередь - для топологии и быстрого нахождения хоста по маку (с историей).
UPD: Нашёл ещё подобного, но не ставил и не тестировал:
racktables -- преимущественно для датацентра, документировать занятое место в стойках, на большее врятли потянет.