Ad Widget

Collapse

Perl script Авторисования топологии сети в Zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • flea
    Junior Member
    • Dec 2015
    • 11

    #1

    Perl script Авторисования топологии сети в Zabbix

    На форуме DLINK уже давно есть тема о том как отрисовать используя LLDP протокол карту сети, но рисуют в итоге они все в картинки\pdf файл и всё на этом.

    Собственно сабж. Прикрутил к тому скрипту Zabbix API и наваял отрисовку карты прямо в заббикс.


    Кроме того что он рисует карту, он так же и автоматически переименовывает хосты(только если имя хоста было ввиде IP) беря новое имя из поля snmp::sysname устройства.


    Для работы нужно
    - Свитчи мониторяться по SNMP
    - На свитчах настроен LLDP протокол(CDP от циски не поддерживается)
    - Perl(что надо докинуть прописано в README)


    PS CDP впринципе можно прикрутить как альтернативу LLDP, но у меня нет CDP утройств, кроме разве что микротиков

    PSS Видел как чуваки строят сеть используя FDB таблицы, но к сожалению есть минус - точность страдает, так как для корректного отображения приходится заставлять всех пинговать друг друга... Но это полбеды, FDB корректно собрать со всех это стоит отдельной темы.

    PSSS Видел тут тему как чувак карту с улицами отрисовывал и расположением там коммутаторов, впринципе теоретически, если на коммутаторах заполнить поле Location используя геоданные, то можно рисовать карту куда красивее.
    Attached Files
  • sersad
    Senior Member
    • May 2009
    • 518

    #2
    Интересно, но жаль что перл. Попробуем как пройдет НГ)))

    Comment

    • flea
      Junior Member
      • Dec 2015
      • 11

      #3
      Честно, когда сунулся перепиливать скрипт автора который изначально просто рисовал все в файл, перла я не знал. Но как и в жизни, сначала было страшно, потом больно, но со временем начало даже нравиться.:d

      Comment

      • tuban
        Senior Member
        Zabbix Certified Specialist
        • Sep 2012
        • 286

        #4
        Прикольно. Неплохо бы было выложить на git. Только README поправить, в пункте "1" очепятка.
        Однако, как мне кажется механизм cdp, lldp и иже с ними не всегда будет корректно отрисовывать топологии.
        Возможно, более точную топологию было бы возможно построить анализируя arp и mac таблицы.

        Comment

        • sergadm
          Junior Member
          • Sep 2013
          • 29

          #5
          при построении карты в большой сети использование протокола CDP и LLDP позволяет опрашивать топологию достаточно быстро . Так зная IP одного свича (ядра) можно по рекурсии обойти всё дерево сети. По LDP мы сразу получаем маки, имена, и IP подключенных свичей.
          По CDP имя не получим нужно дополнительно имя получать. Насчёт не корректной отрисовки проблему обнаружения коммутаторов по LLDP встретил только в ситуации когда свич стоял за двумя вайфаями nano-station. Еще в LLDP попадают ПК c OS windows 8, так как эта ос отправляет lldp пакеты на свич. В принципе отсеяьб их возможно.
          Анализ МАК таблиц можно использовать в качестве дополнительного инструмента. для поиска неуправляемых коммутаторов или коммутаторов с подвисшей логикой. Но опираясь на LLDP сделать это проще так как нам не нужно анализировать маки на тех портах где LLDP нашёл коммутаторы. Полностью опираться на анализ MAK таблиц нельзя. Некоторые коммутаторы не отдают свою мак таблицу целиком (к примеру hp procurve 1700 отдает по SNMP только 128 маков из таблицы )

          Comment

          • flea
            Junior Member
            • Dec 2015
            • 11

            #6
            Originally posted by tuban
            Прикольно. Неплохо бы было выложить на git. Только README поправить, в пункте "1" очепятка.
            Однако, как мне кажется механизм cdp, lldp и иже с ними не всегда будет корректно отрисовывать топологии.
            Возможно, более точную топологию было бы возможно построить анализируя arp и mac таблицы.
            FDB(Forward Database) - таблица соответствия мак адреса порту коммутатора.
            ARP - Таблица соответствия мак адреса IP адресу.


            По FDB не надежно строить, так как если еще центральный коммутатор может знать кто за ним, т.к. трафиг до других свитчей шел через него, то вот свитч после центрального может и не знать о центральном, так как никто и сети за этим свитчем ни обращается к центральному свитчу.


            Есть еще вариант строить на основе STP протокола(правда по SNMP не знаю OIDы все нормальному отдадут или как), он как бы более универсален и работает на большем числе свитчей разных производителей, но есть опасность, что можно сеть положить просто включив его на всех коммутаторах, с ним надо аккуратно играться, это скорее из ряда - знаешь, делай, не знаешь- лучше не трогай.

            LLDP\CDP работает на канальном уровне, если между свитчами с настроенным LLDP\CDP нет неподдерживающей этого железки, то всё все нормально будет отрисовываться. У меня к примеру шлюзом и центральным коммутатором выступает микротик CCR, он LLDP не умеет Приходиться костылить под себя.
            Last edited by flea; 29-12-2015, 09:15.

            Comment

            • sergiusk
              Junior Member
              • May 2016
              • 1

              #7
              Когда писал скрипт он отлично работал под:
              amap - алькатель дискавери протокол
              lldp
              cdp
              На самом деле, lldp лучше чем fdb или arp или cdp, с него лучше вытаскивать порты. В скрипте достаточно только заменить соответствующий оид.

              Comment

              • Roys
                Junior Member
                • Aug 2016
                • 1

                #8
                Originally posted by flea
                На форуме DLINK уже давно есть тема о том как отрисовать используя LLDP протокол карту сети, но рисуют в итоге они все в картинки\pdf файл и всё на этом.

                Собственно сабж. Прикрутил к тому скрипту Zabbix API и наваял отрисовку карты прямо в заббикс.


                Кроме того что он рисует карту, он так же и автоматически переименовывает хосты(только если имя хоста было ввиде IP) беря новое имя из поля snmp::sysname устройства.


                Для работы нужно
                - Свитчи мониторяться по SNMP
                - На свитчах настроен LLDP протокол(CDP от циски не поддерживается)
                - Perl(что надо докинуть прописано в README)


                PS CDP впринципе можно прикрутить как альтернативу LLDP, но у меня нет CDP утройств, кроме разве что микротиков

                PSS Видел как чуваки строят сеть используя FDB таблицы, но к сожалению есть минус - точность страдает, так как для корректного отображения приходится заставлять всех пинговать друг друга... Но это полбеды, FDB корректно собрать со всех это стоит отдельной темы.

                PSSS Видел тут тему как чувак карту с улицами отрисовывал и расположением там коммутаторов, впринципе теоретически, если на коммутаторах заполнить поле Location используя геоданные, то можно рисовать карту куда красивее.
                Добрый день. Отличная идея. Подскажите , а для zabbix 3.0 будет работать? Чет у меня не взлетело. ОНи вродебы поменял API не много

                Comment

                • AlexSk
                  Junior Member
                  • Apr 2017
                  • 10

                  #9
                  Доброго времени суток! Есть ли какая-нибудь информация об обновлении данного скрипта? Заведётся ли на 4.4 и на той же убунте?

                  Comment

                  Working...