Ad Widget

Collapse

LLD network discovery проблема

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ists
    Junior Member
    • Apr 2013
    • 15

    #1

    LLD network discovery проблема

    Хочу мониторить порты на свитчах D-link (даунлоад/аплоад, графики, ошибки на портх итд) с помощью LLD. Пользовался инструкциями http://habrahabr.ru/company/zabbix/blog/193460/ и такой https://www.zabbix.com/documentation...evel_discovery .
    Критерий уникальности порта на который будет созадавться элмеент данных номер ifIndex. При вывыоде ifIndex на свитчах D-link он показывает не только порты, но и вланы. Например 10ти портовый свитч DES 3010G.

    IF-MIB::ifIndex.1 = INTEGER: 1
    IF-MIB::ifIndex.2 = INTEGER: 2
    IF-MIB::ifIndex.3 = INTEGER: 3
    IF-MIB::ifIndex.4 = INTEGER: 4
    IF-MIB::ifIndex.5 = INTEGER: 5
    IF-MIB::ifIndex.6 = INTEGER: 6
    IF-MIB::ifIndex.7 = INTEGER: 7
    IF-MIB::ifIndex.8 = INTEGER: 8
    IF-MIB::ifIndex.9 = INTEGER: 9
    IF-MIB::ifIndex.10 = INTEGER: 10
    IF-MIB::ifIndex.1024 = INTEGER: 1024
    IF-MIB::ifIndex.1025 = INTEGER: 1025
    IF-MIB::ifIndex.1026 = INTEGER: 1026
    IF-MIB::ifIndex.1028 = INTEGER: 1028
    IF-MIB::ifIndex.1045 = INTEGER: 1045
    IF-MIB::ifIndex.1095 = INTEGER: 1095
    IF-MIB::ifIndex.1153 = INTEGER: 1153
    IF-MIB::ifIndex.1173 = INTEGER: 1173
    IF-MIB::ifIndex.1223 = INTEGER: 1223
    IF-MIB::ifIndex.1224 = INTEGER: 1224
    IF-MIB::ifIndex.1225 = INTEGER: 1225
    IF-MIB::ifIndex.1226 = INTEGER: 1226
    IF-MIB::ifIndex.1227 = INTEGER: 1227
    IF-MIB::ifIndex.1228 = INTEGER: 1228
    IF-MIB::ifIndex.1229 = INTEGER: 1229
    IF-MIB::ifIndex.1230 = INTEGER: 1230
    IF-MIB::ifIndex.1231 = INTEGER: 1231
    IF-MIB::ifIndex.1232 = INTEGER: 1232
    IF-MIB::ifIndex.1233 = INTEGER: 1233
    IF-MIB::ifIndex.1234 = INTEGER: 1234
    IF-MIB::ifIndex.1235 = INTEGER: 1235
    IF-MIB::ifIndex.1236 = INTEGER: 1236
    IF-MIB::ifIndex.1237 = INTEGER: 1237
    IF-MIB::ifIndex.1238 = INTEGER: 1238
    IF-MIB::ifIndex.1239 = INTEGER: 1239
    IF-MIB::ifIndex.1658 = INTEGER: 1658
    IF-MIB::ifIndex.5121 = INTEGER: 5121


    Ок, нужные мне порты с 1 по 10 есть. Но так же выводит мне вланы это с 1024 по 5121. Как я понимаю мне просто нужно отфильтровать номера {#SNMPINDEX}. Делаю я так:
    Фильтр Макрос: {#SNMPINDEX} Регулярное выражение:"^1$|^2$|^3$" (например только для портов 1 2 и 3). (см.скриншот)

    Но ничего не выходит, добавляет эелемент только ко 2му порту, для остальных нет.
    Вопрос: Что я делаю не так?

  • AllertGen
    Member
    • Dec 2013
    • 30

    #2
    ИМХО лучше брать по ifDescr, проще фильтровать. А если ставить фильтр в Вашем случае, то:
    1. Administration -> General. В выпадающем списке справа выбрать "Regular expressions"
    2. Создать новый. Обзывайте как хотите. Само выражение: ^\d{1,2}$ (любое значение от 0 до 99, т.е. 2 цифры). Результатом ставить True
    3. На правило LLD вешать фильтр вида @[название регулярного выражения, которое Вы создали]

    Comment

    • ists
      Junior Member
      • Apr 2013
      • 15

      #3
      Originally posted by AllertGen
      ИМХО лучше брать по ifDescr, проще фильтровать. А если ставить фильтр в Вашем случае, то:
      1. Administration -> General. В выпадающем списке справа выбрать "Regular expressions"
      2. Создать новый. Обзывайте как хотите. Само выражение: ^\d{1,2}$ (любое значение от 0 до 99, т.е. 2 цифры). Результатом ставить True
      3. На правило LLD вешать фильтр вида @[название регулярного выражения, которое Вы создали]
      Спасибо за ответ. Сам разобрался тоже. Все так же беру по {SNMPINDEX} и фильтрую по следующему регулярному выражению ^[[:digit:]][[:digit:]]?$

      Comment

      • dark_stealth
        Junior Member
        • Jun 2013
        • 4

        #4
        У меня обнаружение идет по ifOperStatus и подключаются только поднятые интерфейсы, но как следствие за собой тянут и все VLANы которые есть на свиче.
        Пробовал все описать в Regular expressions включая конструкцию "^\d{1,2}$ ". Коммутаторы находятся, но данные не подставляются.
        Не подскажете куда копать?

        Comment

        • ists
          Junior Member
          • Apr 2013
          • 15

          #5
          Originally posted by dark_stealth
          У меня обнаружение идет по ifoperstatus и подключаются только поднятые интерфейсы, но как следствие за собой тянут и все vlanы которые есть на свиче.
          Пробовал все описать в regular expressions включая конструкцию "^\d{1,2}$ ". Коммутаторы находятся, но данные не подставляются.
          Не подскажете куда копать?

          Делаю примерно тоже самое, всё работает. Дай скриншоты правил обнаружения и элементов данных.

          Comment

          • AllertGen
            Member
            • Dec 2013
            • 30

            #6
            Originally posted by dark_stealth
            У меня обнаружение идет по ifOperStatus и подключаются только поднятые интерфейсы, но как следствие за собой тянут и все VLANы которые есть на свиче.
            Пробовал все описать в Regular expressions включая конструкцию "^\d{1,2}$ ". Коммутаторы находятся, но данные не подставляются.
            Не подскажете куда копать?
            Лучше выбрать что-нибудь другое, а не по ifoperstatus (или Вы так хотите выявить только "поднятые" интерфейсы?). У ifoperstatus только числовые значения и vlan'ы Вы по этому параметру не отфильтруете (по той простой причине, что этот параметр вообще не даёт информацию о типе интерфейса).

            Comment

            • dark_stealth
              Junior Member
              • Jun 2013
              • 4

              #7
              Originally posted by AllertGen
              Лучше выбрать что-нибудь другое, а не по ifoperstatus (или Вы так хотите выявить только "поднятые" интерфейсы?). У ifoperstatus только числовые значения и vlan'ы Вы по этому параметру не отфильтруете (по той простой причине, что этот параметр вообще не даёт информацию о типе интерфейса).
              В общем то хотелось подключать только поднятые интерфейсы.
              Но если подключать все и использовать фильтры для vlan'ов, тогда по какому OID'у мне стоит ориетироваться?
              сейчас все "поднятое" подключается так: здесь полная картинка Собственно все по букварю
              Last edited by dark_stealth; 18-02-2014, 11:21. Reason: уточнение

              Comment

              • AllertGen
                Member
                • Dec 2013
                • 30

                #8
                Originally posted by dark_stealth
                В общем то хотелось подключать только поднятые интерфейсы.
                Но если подключать все и использовать фильтры для vlan'ов, тогда по какому OID'у мне стоит ориетироваться?
                сейчас все "поднятое" подключается так: здесь полная картинка Собственно все по букварю
                По ifDesc (.1.3.6.1.2.1.2.2.1.2). Он отдаёт тип интерфейсов. И уже на полученные данные ставить фильтр по регулярному выражению, что бы выдавал только физические интерфейсы. Правда минусом будет то, что выключенные интерфейсы так же появятся. Так что выбирайте меньшее из двух зол.

                Comment

                • dark_stealth
                  Junior Member
                  • Jun 2013
                  • 4

                  #9
                  Установил критерий на ifDesc. Без фильтра находится все и спокойно начинает работать, но если подключаю фильтр где макрос "{#SNMPVALUE}" и регулярное выражение "@LLDports"
                  LLDports- (1 »^\d{0,9}$ [Результат ИСТИНА])
                  узлы находятся, но даные не заполняются. Либо кривые руки, либо мистика

                  Comment

                  • AllertGen
                    Member
                    • Dec 2013
                    • 30

                    #10
                    Originally posted by dark_stealth
                    Установил критерий на ifDesc. Без фильтра находится все и спокойно начинает работать, но если подключаю фильтр где макрос "{#SNMPVALUE}" и регулярное выражение "@LLDports"
                    LLDports- (1 »^\d{0,9}$ [Результат ИСТИНА])
                    узлы находятся, но даные не заполняются. Либо кривые руки, либо мистика
                    Какие названия интерфейсов Вам выдаёт запрос на ifDescr? Вот пример с моего Cisco устройства:
                    Code:
                    snmpwalk -v3 .......  .1.3.6.1.2.1.2.2.1.2
                    IF-MIB::ifDescr.1 = STRING: Backplane-GigabitEthernet0/3
                    IF-MIB::ifDescr.2 = STRING: GigabitEthernet0/0
                    IF-MIB::ifDescr.3 = STRING: GigabitEthernet0/1
                    IF-MIB::ifDescr.4 = STRING: GigabitEthernet0/2
                    IF-MIB::ifDescr.5 = STRING: Embedded-Service-Engine0/0
                    IF-MIB::ifDescr.6 = STRING: Serial0/0/0
                    IF-MIB::ifDescr.7 = STRING: Serial0/0/1
                    IF-MIB::ifDescr.8 = STRING: Serial0/0/2
                    IF-MIB::ifDescr.9 = STRING: Serial0/0/3
                    IF-MIB::ifDescr.10 = STRING: FastEthernet0/1/0
                    IF-MIB::ifDescr.11 = STRING: FastEthernet0/2/0
                    IF-MIB::ifDescr.12 = STRING: FastEthernet0/2/1
                    IF-MIB::ifDescr.13 = STRING: FastEthernet0/2/2
                    IF-MIB::ifDescr.14 = STRING: FastEthernet0/2/3
                    ..........
                    Как видите, Ваше правило "от 0 до 9 цифр" под такой список не попадает.

                    Comment

                    • dark_stealth
                      Junior Member
                      • Jun 2013
                      • 4

                      #11
                      Все, осознал!
                      Спасибо за помощь!

                      Comment

                      Working...