Ad Widget

Collapse

BGP peer state + neighbor description filter

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • cmekcik
    Junior Member
    • Jul 2014
    • 11

    #1

    BGP peer state + neighbor description filter

    zabbix 2.0.9, используется много для чего... есть роутеры CISCO и H3C (HP) в количестве 100+. цель - мониторить то, что в шапке. SNMP никак не отражает описание соседа из конфига, насколько я знаю. есть идея выдернуть его оттуда вместе с адресом скриптом через rsh, в этом же скрипте сделать проверку snmpwalk с помощью адреса пира и snmp bgpPeerState и получившийся результат импортировать в zabbix

    lld не подойдет по разным причинам, к тому же уже используется lld snmp по ifAlias с фильтрацией

    вопрос - как это все сделать
  • cmekcik
    Junior Member
    • Jul 2014
    • 11

    #2
    в общем, я сделал
    внешняя проверка запускает скрипт раз в несколько часов, он ищет на tftp шаре конфиги устройств, обрабатывает, заводя итемы и триггеры через api, которые уже сам заббикс мониторит, затем стирает конфиг. единственное неудобство - все, кроме внешней проверки, делается в хосте. никаких тебе lld и темплейтов и пр. соответственно, выглядит все это визуально не айс
    если у кого какие предложения есть - велкам. я пока сделал только скрипты для cisco и hp(h3c) a-msr (данные отображаются в конфиге по-разному, и я решил, что проще будет сделать два похожих скрипта)... подумаю, как еще улучшить это

    Comment

    • aib
      Senior Member
      • Jan 2014
      • 1615

      #3
      Если это не секретно - не могли бы вы поделиться Вашими скриптами?
      Sincerely yours,
      Aleksey

      Comment

      • cmekcik
        Junior Member
        • Jul 2014
        • 11

        #4
        Originally posted by aib
        Если это не секретно - не могли бы вы поделиться Вашими скриптами?
        я выложу скрипты, как только схема будет протестирована. опять же, в скрипте еще нужно комментарии прописать. в общем, как только перестану дописывать в него что-либо )

        Comment

        • aib
          Senior Member
          • Jan 2014
          • 1615

          #5
          ok

          ████▌░░░░░ waiting.... 45% done
          Sincerely yours,
          Aleksey

          Comment

          • Zentarim
            Senior Member
            • Mar 2012
            • 526

            #6
            <удалено, сморозил глупость>

            Comment

            • Melanxolik
              Senior Member
              • Nov 2009
              • 174

              #7
              делал это чуть по другому, просто создавал файл описания bgp, дальше через скрипт который его парсит и наливал в lld.

              Comment

              • cmekcik
                Junior Member
                • Jul 2014
                • 11

                #8
                Originally posted by Melanxolik
                делал это чуть по другому, просто создавал файл описания bgp, дальше через скрипт который его парсит и наливал в lld.
                я не очень понял ) можно подробнее про lld? дело в том, что оно у меня уже есть, и второе использовать вроде как нельзя. вернее, как бы можно snmp.discovery и snmp.discovery.v2, но мне кажется, что это костыль

                парсинг описания соседей я сделал не через файл, а через диалог telnet с show run | section router BGP. с файлами слишком запарно вышло из-за h3c, которые не умеют делать архивы по расписанию

                Comment

                • Melanxolik
                  Senior Member
                  • Nov 2009
                  • 174

                  #9
                  Скажите как часто у вас меняются соседи? ответ, хз... дай бог чтобы раз в пол года...
                  Просто создаете новый элемент обнаружения, цепляете его к вам больше подходите, и дальше лепите через него всю работу с bgp.
                  На одном шаблоне, может быть хоть тысяча lld. В данном случае вы можете все эти мибы привязывать не к вашему роутеру, а к тому же забикс серверу и уже с него через внешнию обработку выполнять что вам надо. Ну и на край если совсем сладкого хочется, то есть пользовательские макросы, опять же способов куча.

                  Comment

                  • cmekcik
                    Junior Member
                    • Jul 2014
                    • 11

                    #10
                    заранее прошу прощения за второй пост в день, может тут так не принято...

                    во вложении мой фигово написанный, но работающий скрипт для добавления соседей со скудными комментариями. 100% скрипт еще будет меняться по мере узнавания мною нового. для h3c разница только в сборе и парсе данных с секции bgp конфига, так что я решил его не заливать

                    требования следующие
                    port description - primary/backup link <любой текст> [speed <bps>]
                    neighbor description - primary/backup <любой текст>


                    данный скрипт размещен в темплейте для cisco с lld по ifAlias (backup|primary) и двумя внешними проверками. 1 - создание триггеров на статус портов и загрузку канала, и установку зависимости от доступности адреса loopback. сделано через внешнюю проверку (скрипт если кому-то понадобится, тоже прикреплю), т.к. мне нужно, чтобы имена триггеров были одинаковые независимо от описания ifAlias. 1я проверка включает 2ю проверку. 2 - собственно вложенный скрипт, который выключает обе внешние проверки по завершении (все, что нужно создано, проверки не нужны). вытаскивает данные по соседям через телнет, парсит, создает итемы и триггеры
                    первая проверка в темплейте включена, вторая выключена

                    триггеры, которые имею в итоге
                    loopback
                    primary/backup port status > loopback
                    primary/backup InOut load (90%) > соответствующие port status
                    primary/backup bgpPeerState # > соответствующие port status

                    из "лишней" нагрузки на сервер только lld

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

                    P.S. ничто в данном посте не претендует на истину (включая скрипт). написано и выложено для понимания схемы, которую я использовал. perl и zabbixapi для меня новинка, так уж вышло, поэтому строго не судите. и да, я люблю пустые строки в коде, мне так удобней
                    Attached Files
                    Last edited by cmekcik; 17-07-2014, 18:44.

                    Comment

                    Working...