Продолжая разговор об использовании swtoolz-core плавно переходим к проекту PortViewer. Это инструмент для быстрого и удобного получения информации о портах маршрутизаторов и коммутаторов. В нашей сети примерно 3500 коммутаторов D-Link различных моделей и ревизий. Биллинг "понимает" их и умеет с ними работать. Включить/выключить порт, отобразить состояние порта абонента, продиагностировать кабельную линию - все это можно сделать из системы отслеживания заявок. Однако, помимо коммутаторов доступа в сети имеется около 60 маршрутизаторов и коммутаторов агрегации. И вот с ними беда - разные вендоры, разные модели и модули и т.д. Система отслеживания заявок и биллинг с этими железками "не дружат." А, между тем, там тоже есть много портов, за которыми надо бы как то присматривать. Да, Zabbix всегда напомнит про "упавший" порт, но иногда хочется иметь более наглядную картину. Упал порт на какой то железке? Окей. А сколько у меня на ней вообще портов? В скольки модулях? Сколько из этих портов должно работать? А сколько работает в данный момент? Сколько есть свободных портов в запасе? На эти вопросы проще всего ответить, имея перед глазами наглядную картину. И эту картину в нашей сети рисует PortViewer.
Казалось бы, а при чем здесь swtoolz-core? А на самом деле очень даже при чем. Несмотря на то, что PortViewer способен отрисовать состояния портов на нескольких десятках различных устройств, поддерживает он при этом, всего одну модель. Некое абстрактное сетевое устройство с заранее заданным набором свойств. Эти свойства описывают модули устройства, состояния портов и их количество. PortViewer запрашивает эти данные у swtoolz-core, после чего интерпретирует их по специальному алгоритму. Иными словами, для PortViewer нет разницы, работает ли он с устройством D-Link, Brocade, Cisco или Eltex. Главное - чтобы само устройство в принципе было способно отдать по SNMP требуемые данные, а также, чтобы для данной модели устройства у swtoolz-core был подготовлен соответствующий модуль. Таким образом, если хочется видеть состояния портов у какой то новой, экзотической железки, то ее нужно "добавлять" не в PortViewer, а в swtoolz-core. Вот такой вот симбиоз. Его преимущества очевидны. Во-первых, разработчику, проектирующему front-end, нет необходимости ломать голову над тем, как получить конкретный параметр с конкретной железки. А, во-вторых, администратор, отвечающий за back-end, не путается в ненужных ему алгоритмах. В данном случае он имеет дело только с конфигурационным файлом, содержащим списки параметров и OID.
Пора, пожалуй, завершить это уже несколько затянувшееся вступление и перейти, собственно, к демонстрации возможностей PortViewer. Поскольку автор на странице проекта не выложил никаких скриншотов, я сделаю это за него. (К сожалению, на этом движке картинки отображаются не очень красиво. Я не собираюсь с этим бороться, и оставляю это на совести Google.)
Рис 1. BigIron RX с 4 модулями по 4 порта. Развернуто выпадающее меню со списком узлов. Один узел раскрыт - можно видеть установленные там устройства и применить к ним одну из трех команд. Рамка вокруг портов 2/1, 3/3 и 3/4 говорит о включенном функционале flow control.
Рис 2. Автономный DGS-3100-24TG. Фон за номером порта указывает на тип порта: оранжевый - медный, голубой - оптический. Серый фон у всего порта говорит о том, что порт выключен административно.
Рис 3. DGS-3000-28SC, собранный в стек. Белый цвет у номера порта говорит о том, что фактическое состояние порта соответствует административному. Порт включен - линк поднят. Порт выключен - линка нет.
Кроме отображения портов PortViewer обладает еще несколькими полезными особенностями:
Казалось бы, а при чем здесь swtoolz-core? А на самом деле очень даже при чем. Несмотря на то, что PortViewer способен отрисовать состояния портов на нескольких десятках различных устройств, поддерживает он при этом, всего одну модель. Некое абстрактное сетевое устройство с заранее заданным набором свойств. Эти свойства описывают модули устройства, состояния портов и их количество. PortViewer запрашивает эти данные у swtoolz-core, после чего интерпретирует их по специальному алгоритму. Иными словами, для PortViewer нет разницы, работает ли он с устройством D-Link, Brocade, Cisco или Eltex. Главное - чтобы само устройство в принципе было способно отдать по SNMP требуемые данные, а также, чтобы для данной модели устройства у swtoolz-core был подготовлен соответствующий модуль. Таким образом, если хочется видеть состояния портов у какой то новой, экзотической железки, то ее нужно "добавлять" не в PortViewer, а в swtoolz-core. Вот такой вот симбиоз. Его преимущества очевидны. Во-первых, разработчику, проектирующему front-end, нет необходимости ломать голову над тем, как получить конкретный параметр с конкретной железки. А, во-вторых, администратор, отвечающий за back-end, не путается в ненужных ему алгоритмах. В данном случае он имеет дело только с конфигурационным файлом, содержащим списки параметров и OID.
Пора, пожалуй, завершить это уже несколько затянувшееся вступление и перейти, собственно, к демонстрации возможностей PortViewer. Поскольку автор на странице проекта не выложил никаких скриншотов, я сделаю это за него. (К сожалению, на этом движке картинки отображаются не очень красиво. Я не собираюсь с этим бороться, и оставляю это на совести Google.)
Рис 1. BigIron RX с 4 модулями по 4 порта. Развернуто выпадающее меню со списком узлов. Один узел раскрыт - можно видеть установленные там устройства и применить к ним одну из трех команд. Рамка вокруг портов 2/1, 3/3 и 3/4 говорит о включенном функционале flow control.
Рис 2. Автономный DGS-3100-24TG. Фон за номером порта указывает на тип порта: оранжевый - медный, голубой - оптический. Серый фон у всего порта говорит о том, что порт выключен административно.
Рис 3. DGS-3000-28SC, собранный в стек. Белый цвет у номера порта говорит о том, что фактическое состояние порта соответствует административному. Порт включен - линк поднят. Порт выключен - линка нет.
Кроме отображения портов PortViewer обладает еще несколькими полезными особенностями:
- При наведении курсора на определенный порт можно посмотреть список vlan на этом порту.
- Для Foundry кроме vlan будут отображены еще и ve и соответствующий IP-адрес.
- Список vlan можно скачать в txt/csv форматах.
- Каждая уникальная комбинация свойств портов (т.е. если что-то поменялось) записывается в базу данных. Эти уникальные "слепки" устройств потом можно просмотреть в любое время.
- Благодаря кнопкам "telnet" из интерфейса удобно подключаться к устройству.
Пытаюсь настрить PortViewer совместно с swtoolz-core
ОтветитьУдалитьswtoolz-core настроил, вывод результата с кодом 0.
Всё нормально.
А вот с PortViewer. WEB-сервер выводит следующие
https://drive.google.com/file/d/0B33dK75rh35hendlbEFHMHR2TE0/view?usp=sharing
Подскажите пожалуйста как корректно настроить?
Спасибо.
Судя по внешнему виду не правильно настроены root-директории.
ОтветитьУдалитьПроверьте все по мануалу https://github.com/workaroundman/port-viewer/blob/master/README.md
Читайте последний разделы "Настройка WEB-сервера" и "Настройка приложения"
Спасибо. действительно root-директории неверно указал.
УдалитьА с остальным разобрались? На почту пришло письмо о проблемах, но здесь я почему то не вижу комментария. Кстати, swtoolz-core выводит данные walk_ifAlias? Код 0 говорит только что программе понятен запрос. Если все отработало как надо, в ключа data будут данные, например "data": {"PortDescr": {"24": "user13555"..... Также будет определено sysDescr и sysName. Если же таких данных нет и код 0, возможно, что указана неверная коммунитистринг или нет доступа к устройству.
Удалитьswtoolz-core - выдаёт все корректно. sysDescr и sysName присутствую.
УдалитьБудьте добры. Подскажите.
ОтветитьУдалитьПродолжаю пытаться настрить PortViewer совместно с swtoolz-core.
Не получается с PortViewer получить ответ от swtoolz-core (вывод результата с кодом 0 Работает нормально). Настроил по инструкции в таблице config флаг api_debug имеет значение 1.
Когда нажимаю "опросить" выдаёт пустую страничку. Можно у вас базу тестовою попросить с уже готовой настройкой таблиц хотя бы одного коммутатора для примера.
Спасибо.
Добрый день. Напишите мне на почту mr.dimos[at]gmail.com, или в телеграмм https://telegram.me/dmitriy_vasilyev
Удалитьпообщаемся в real-time.
Ну что у вас в итоге? Разобрались совместными усилиями?
ОтветитьУдалитьДа,разобрались. Спасибо за помощь Дмитрию.
УдалитьНо, оказалось что при запросе walk_AllPorts у меня выдавался ограниченный ответ так как не соответствовал OID- Состояние портов для моей модели оборудования.
На данном этапе ищу соответственные OID- Состояние портов для своих моделей оборудования.
http://xcme.blogspot.com/2014/10/oid-snmp.htm на данной страницы варианты также не подошли.
Какая конкретно модель и ревизия? Вообще там отличия между моделями минимальны, надо буквально несколько раз 1 циферку подправить и все.
Удалитьp.s. У вас всего 1 коммутатор?
Комутаторов больше одного.
УдалитьВот к примеру:
DES-3200-10 Fast Ethernet Switch
Boot PROM Version Build 4.00.002
Firmware Version Build 4.02.004
Hardware Version C1
DES-3200-28F Fast Ethernet Switch
Boot PROM Version Build 4.00.002
Firmware Version Build 4.04.R004
Hardware Version C1
MediumType .1.3.6.1.4.1.171.11.113.1.3.2.2.1.1.2 swL2PortInfoMediumType
У меня на этот запрос выдаёт iso.3.6.1.4.1.171.11.113.1.3.2.2.1.1.2 = No Such Object available on this agent at this OID
А вот .1.3.6.1.4.1.171.11.113.2 (и т.д.) - Состояние портов. Но что соответствует к примеру за MediumType или ActualStatus я не знаю.
Скачал DES-3200-26_28_C1_MIB_of_FW_R4.00.rar и там не нашёл.
У меня нет DES-3200-10 именно C1 ревизии, но в MIB без труда находится .1.3.6.1.4.1.171.11.113.2.1.2.3.1.1.2
УдалитьПроще всего будет взять файлик от DES-3200-18_C1 (именно 18_C1, а не 10) и исправить там OID, которые будут отличаться только одной цифрой - после 113 будет 2, а не 3. OID, которые начинаются на .1.3.6.1.2.1 и на .1.3.6.1.4.1.171.12 править не нужно. Еще, разумеется, нужно удалить несуществующие порты (которые отстались от 3200-18).
P.S. Прошивка ОЧЕНЬ древняя. Прошейте до 4.38.000, затем до 4.39.xxx. В 4.4x и выше пока не шился, пишут там какие то глюки.
Большое Спасибо за помощь. Разобрался. Отображает актуально информацию.
УдалитьВ будущем планируете отображать mac адрес на портах?
ОтветитьУдалитьПока не планируется. Оставьте issue на гитхабе, в каком виде Вы хотели бы видеть данный функционал
УдалитьДобрый день. Как я понял подробной пошаговой инструкцию по установке нету. Может кто нибудь помочь с установкой или подробной инструкций по установке. Заранее спасибо.
ОтветитьУдалитьТут есть же https://github.com/workaroundman/port-viewer
УдалитьЭтот комментарий был удален автором.
УдалитьСпасибо за отклик. Мне как человеку который с Linux системы на "Вы" пока трудно понять действия описанные в этой инструкции. Если не трудно сделайте пошаговую инструкцию. В долгу не останусь готов поддержать финансово.
УдалитьДобрый день.
ОтветитьУдалитьНастраиваю Ваш замечательный инструмент. Core работает. Запросы к нему проходят. Чтение запись в базу тоже проходит. Опрос произвольного устройства тоже работает. Но при попытке добавить устройства или узел, получаю ошибку веб сервера "The requested URL /Node/Add was not found on this server." Подскажите в какую сторону копать?
Веб сервер настроили нормально? Проверьте настройки, касаемые перенаправления запросов в index.php.
Удалитьhttps://github.com/workaroundman/port-viewer#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-web-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0
Да вроде как правильно. Создал виртуальный сервер. DocumetRoot указал на папку public. В нее же положил файл .htaccess с нужными строчками. Библиотека CURL в PHP включена. Но тем не менее такая ошибка
ОтветитьУдалитьmod_rewrite в apache утсановлен и работает?
УдалитьДа. Вы были правы. Этот модуль у меня был не подгружен. Спасибо за помощь.
ОтветитьУдалить