infery Опубликовано 1 апреля, 2019 (изменено) · Жалоба Поделюсь своей поделкой. Писал для изучения Python (2.7 в данном случае) и для решения задачи построения сети в zabbix. Эта штука уже сэкономила мне массу времени и сил. Собирает маки телнетом и по ним строит топологию сети. Никакого snmp, lldp и cdp, только хардкор =) Проверял на сетях от 10 до 500 коммутаторов. Dlink, cisco, olt cdata FD1216S, bdcom, mikrotik c бриджем. Что было, на том и отработал. Уверен, что кому-то не подойдет, но кому-то может помочь. Работа еще идет, допиливаю какие-то вещи. В ближайших планах автоматическое вычисление мака шлюза по умолчанию (это мак, который встречается чаще остальных) или мака мониторинга, если у вас мониторинг в той же сети, что и свичи. Вобщем нюансов тоже масса. https://github.com/infery/zabbix-map-creator В простом случае сеть, которую вы переносите в заббикс, может выглядеть так (просто пример от руки): Изменено 1 апреля, 2019 пользователем infery Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
StSphinx Опубликовано 4 апреля, 2019 · Жалоба Спасибо! Годное! Уже запульнул вам issue ) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
infery Опубликовано 4 апреля, 2019 (изменено) · Жалоба Пожалуйста! Сори фор май пур инглиш) ответил как смог. Продублирую здесь. У меня была такая ситуация с snr, таймаут кончался быстрей, чем fdb. Тут тоже не увидел неполадок касательно регэкспов, добавил timeout=120 и запушил, должно работать. Изменено 4 апреля, 2019 пользователем infery Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
StSphinx Опубликовано 4 апреля, 2019 · Жалоба 1 час назад, infery сказал: Пожалуйста! Сори фор май пур инглиш) ответил как смог. Продублирую здесь. У меня была такая ситуация с snr, таймаут кончался быстрей, чем fdb. Тут тоже не увидел неполадок касательно регэкспов, добавил timeout=120 и запушил, должно работать. У меня такой же инглиш) Спасибо, что помогаете разобраться. Софт немного допилить и будет вполне годным. Фич реквест - сделайте опциональное формирование карты в виде картинки, без добавления карты сети в Zabbix. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
infery Опубликовано 4 апреля, 2019 · Жалоба Насчет последней траблы - лучше расскажу тут. У меня было такое и это таковы уж длинки; на 3200 и 1210-28 вываливалась такая проблема, кривые транзитные пути. Обновлял прошивку, перезапускал все скрипты снова на обновленной топологии и приходило в норму. Звучит бредово, но как есть. По заббиксу учту, сделаю опцию, чтобы не трогал заббикс. А вообще скрипт ./build_map генерирует dot-файл <Mapname>.gv, который можно опробовать, например, тут https://dreampuf.github.io/GraphvizOnline , поэтому формировать свою картинку нет необходимости. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
StSphinx Опубликовано 4 апреля, 2019 · Жалоба 10 минут назад, infery сказал: Насчет последней траблы - лучше расскажу тут. У меня было такое и это таковы уж длинки; на 3200 и 1210-28 вываливалась такая проблема, кривые транзитные пути. Обновлял прошивку, перезапускал все скрипты снова на обновленной топологии и приходило в норму. Звучит бредово, но как есть. По заббиксу учту, сделаю опцию, чтобы не трогал заббикс. А вообще скрипт ./build_map генерирует dot-файл <Mapname>.gv, который можно опробовать, например, тут https://dreampuf.github.io/GraphvizOnline , поэтому формировать свою картинку нет необходимости. Ок, спасибо за ответ. Попробую на каком-нибудь небольшом сегменте, где нет 3200 и 1210. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
infery Опубликовано 4 апреля, 2019 · Жалоба 53 минуты назад, StSphinx сказал: Фич реквест - сделайте опциональное формирование карты в виде картинки, без добавления карты сети в Zabbix done! [zabbix] use_zabbix = no|yes Поправил sql-запрос в build-map, скрипт не получал хосты из базы, у которых не было hostid. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
StSphinx Опубликовано 4 апреля, 2019 · Жалоба 25 минут назад, infery сказал: done! [zabbix] use_zabbix = no|yes Поправил sql-запрос в build-map, скрипт не получал хосты из базы, у которых не было hostid. Попробовал. Словил вот такое: Traceback (most recent call last): File "./build_map.py", line 302, in <module> lnk_str = '=='.join(sorted_transit_list) TypeError: sequence item 3: expected string or Unicode, NoneType found Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ko_stik Опубликовано 5 апреля, 2019 · Жалоба Тяжко заставить работать... Схема: Роутер Cisco собирающий на себе управляющие vlans (их несколько, сегментировано) - агрегатор сегментов - агрегатор домов - домовая сеть по такой схеме не взлетает, потому что скрипту надо зайти на uplink и считать с него таблицу маков (коотрой у маршрутизатора тютю) можно ли как то исключить проверку аплинка? я ведь его мак указал в ini файле - так вот пускай его и использует для определения магистрального порта на коммутаторе, а остальные порты где есть маки других коммутаторов, но нету мака аплинка - это соответсвенно порты до следущих коммутаторов? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
infery Опубликовано 5 апреля, 2019 · Жалоба 2 часа назад, Ko_stik сказал: Роутер Cisco собирающий на себе управляющие vlans (их несколько, сегментировано) - агрегатор сегментов - агрегатор домов - домовая сеть Была сильно похожая схема. По-моему пришлось строить для каждого саб-интерфейса отдельно. Начинаю понимать, почему нет универсального ПО для таких вещей. 2 часа назад, Ko_stik сказал: можно ли как то исключить проверку аплинка? я ведь его мак указал в ini файле - так вот пускай его и использует для определения магистрального порта на коммутаторе, а остальные порты где есть маки других коммутаторов, но нету мака аплинка - это соответсвенно порты до следущих коммутаторов? Есть пара вариантов - пустить скрипт на маршрутизатор, зайдет, не найдет маков и уйдет, ничего страшного. Второй вариант - убрать из арпа этот маршрутизатор, а вместо мака свича агрегации в файле указать мак-аплинка. Должно сработать Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ko_stik Опубликовано 5 апреля, 2019 · Жалоба 4 часа назад, infery сказал: Была сильно похожая схема. По-моему пришлось строить для каждого саб-интерфейса отдельно. Начинаю понимать, почему нет универсального ПО для таких вещей. Есть пара вариантов - пустить скрипт на маршрутизатор, зайдет, не найдет маков и уйдет, ничего страшного. Второй вариант - убрать из арпа этот маршрутизатор, а вместо мака свича агрегации в файле указать мак-аплинка. Должно сработать костылявенько указываю мак маршрутизатора, но пускать его не пускал - телнет выключен на нем мак роутера в таблице есть всегда а вот мак агрегатора нет... в общем полет фантазий для доработок обширный ) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
infery Опубликовано 5 апреля, 2019 · Жалоба Вся эта штука - это один большой костыль размером с дом, согласен на 100%. Вероятно, я совершил ошибку, выложив скрипт в паблик, потому что он дает ложную надежду и отнимает время. Но пусть остается как есть Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ko_stik Опубликовано 5 апреля, 2019 · Жалоба 44 минуты назад, infery сказал: Вся эта штука - это один большой костыль размером с дом, согласен на 100%. Вероятно, я совершил ошибку, выложив скрипт в паблик, потому что он дает ложную надежду и отнимает время. Но пусть остается как есть оооо нет уж, допиливай давай, мы в тебя верим =) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
infery Опубликовано 5 апреля, 2019 (изменено) · Жалоба 1 час назад, Ko_stik сказал: мак роутера в таблице есть всегда а вот мак агрегатора нет... Я неправильно выразился и был неверно понят) Есть арп-файл, в нем фигурирует что-то типа 10.0.0.1 11:22:33:44:55:66 <- gateway 10.0.0.20 12:56:12:56:12:55 <- aggregation Удаляем 0.1, подставляем мак в 0.20 10.0.0.20 11:22:33:44:55:66 <- aggregation В итоге мак по-прежнему участвует в вычислениях, а гейтвей отдыхает. Примерно так я и поступал. Возможно, тебе придется закомментировать строку в build_map.py:268. sorted_transit_list.insert(0, uplink_ip) Изменено 5 апреля, 2019 пользователем infery Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rover-lt Опубликовано 11 апреля, 2019 · Жалоба Есть Netdisco - cтроит топологию по l2, cdp, lldp Есть Observium/LibreNMS - строит по l2, l3, cdp, lldp. Без визуализации, но, конечно, можно присамопалить Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
onspeed83 Опубликовано 16 апреля, 2019 · Жалоба On 4/1/2019 at 2:58 PM, infery said: Поделюсь своей поделкой. Писал для изучения Python (2.7 в данном случае) и для решения задачи построения сети в zabbix. Эта штука уже сэкономила мне массу времени и сил. Собирает маки телнетом и по ним строит топологию сети. Никакого snmp, lldp и cdp, только хардкор =) Проверял на сетях от 10 до 500 коммутаторов. Dlink, cisco, olt cdata FD1216S, bdcom, mikrotik c бриджем. Что было, на том и отработал. Уверен, что кому-то не подойдет, но кому-то может помочь. Работа еще идет, допиливаю какие-то вещи. В ближайших планах автоматическое вычисление мака шлюза по умолчанию (это мак, который встречается чаще остальных) или мака мониторинга, если у вас мониторинг в той же сети, что и свичи. Вобщем нюансов тоже масса. https://github.com/infery/zabbix-map-creator В простом случае сеть, которую вы переносите в заббикс, может выглядеть так (просто пример от руки): ха! коллега!) писать столько парсеров вывода телнета - это точно хардкор! сколько по времени идет расчет самой топологии без учета опроса самих железок? свой скрипт немного переписал. сейчас он делает это секунды полторы-две... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
infery Опубликовано 16 апреля, 2019 · Жалоба Только что, onspeed83 сказал: сколько по времени идет расчет самой топологии без учета опроса самих железок? Цели сделать это максимально быстро у меня не было, и расчет напрямую зависит от кол-ва опрошенных железок, поэтому не могу ответить на этот вопрос) К слову все парсеры однотипные, отличие по-большому счету только в регэкспах. Но я не защищаю эту штуку. Если кто скажет, что оно сильно тормозное, отрицать не буду Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
OldNeer Опубликовано 23 апреля, 2019 · Жалоба Кому интересно вот есть альтернативный вариант рисовки http://abills.net.ua:8090/pages/viewpage.action?pageId=31883275 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
FATHER_FBI Опубликовано 24 апреля, 2019 · Жалоба 12 часов назад, OldNeer сказал: Кому интересно вот есть альтернативный вариант рисовки http://abills.net.ua:8090/pages/viewpage.action?pageId=31883275 Мне страшно представить какой у вас там говнокод! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
TheUser Опубликовано 24 апреля, 2019 · Жалоба 1 час назад, FATHER_FBI сказал: Мне страшно представить какой у вас там говнокод! С кодом там как раз может быть все в порядке.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
OldNeer Опубликовано 24 апреля, 2019 · Жалоба 5 hours ago, FATHER_FBI said: Мне страшно представить какой у вас там говнокод! Ну почему сразу гавно код? Возможно я не русскоязычный человек. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 24 апреля, 2019 · Жалоба 9 часов назад, FATHER_FBI сказал: Мне страшно представить какой у вас там говнокод! Там Perl, и этим все сказано. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 24 апреля, 2019 · Жалоба Чем перл плох? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 25 апреля, 2019 · Жалоба Тем, что если его использовать именно как язык perl, то на выходе будет нечто элегантное, работающее, но совершенно неподдерживаемое (без соотвествующих психостимуляторов). Если писать на перле как на нормальном ЯП, то встает вопрос - а нахен он тогда сдался, если все то же самое рисуется на нормальных ЯП и на выходе получаем более производительный и экономный к ресурсам код? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
~AsmodeuS~ Опубликовано 25 апреля, 2019 · Жалоба 3 hours ago, taf_321 said: Тем, что если его использовать именно как язык perl, то на выходе будет нечто элегантное, работающее, но совершенно неподдерживаемое (без соотвествующих психостимуляторов). Если писать на перле как на нормальном ЯП, то встает вопрос - а нахен он тогда сдался, если все то же самое рисуется на нормальных ЯП и на выходе получаем более производительный и экономный к ресурсам код? Можно примеры в студию ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...