Ad Widget

Collapse

Прошу помочь разобраться с пониманием autodiscovery

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • fractal90
    Senior Member
    • Jun 2019
    • 177

    #1

    Прошу помочь разобраться с пониманием autodiscovery

    Привет, я хочу создать шаблон обнаружения под bgp, мониторить status / количество префиксов

    смотрю по snmp

    Code:
    snmpwalk -v2c -c test 192.168.100.1 1.3.6.1.2.1.15.3.1.2 -On
    .1.3.6.1.2.1.15.3.1.2.192.168.50.2 = INTEGER: 6
    
    snmpwalk -v2c -c test 192.168.100.1 1.3.6.1.4.1.9.9.187.1.2.4.1.1 -On
    .1.3.6.1.4.1.9.9.187.1.2.4.1.1.192.168.50.2.1.1 = Counter32: 823084
    делаю следующее правило

    ключ - bgp
    SNMP OID - discovery[{#bgp_status},1.3.6.1.2.1.15.3.1.2,{#bgp_routes},1 .3.6.1.4.1.9.9.187.1.2.4.1.1]
    в фильтре - {#SNMPINDEX} = 192.168.50.2

    далее создаю два прототипа элемента данных

    1. BGP ROUTES
    ключ - bgp_routes[{#SNMPINDEX}]
    SNMP OID - 1.3.6.1.4.1.9.9.187.1.2.4.1.1.{#SNMPINDEX}

    2. BGP STATUS
    ключ - bgp_status[{#SNMPINDEX}]
    SNMP OID - 1.3.6.1.2.1.15.3.1.2.{#SNMPINDEX}

    и видимо или я не понимаю как работает дисковери, или что то неправильно делаю, но каждый прототип находит по два значения, .1.3.6.1.2.1.15.3.1.2.192.168.50.2 и .1.3.6.1.4.1.9.9.187.1.2.4.1.1.192.168.50.2.1.1 в узле сети появляются вместо 2 обнаруженных элементов 4, причем два помечаются как неработающие, почему так?

    вот в таком виде

    discovery bgp: BGP ROUTES BGP_ROUTES [192.168.50.2.1.1] - Активировано
    discovery bgp: BGP ROUTES BGP_ROUTES [192.168.50.2] - Не поддерживается
    discovery bgp: BGP STATUS BGP_STATUS [192.168.50.2.1.1] - Не поддерживается
    discovery bgp: BGP STATUS BGP_STATUS [192.168.50.2] - Активировано
    Attached Files
  • fractal90
    Senior Member
    • Jun 2019
    • 177

    #2
    еще вопрос, заметил что если я в дискавери прописываю в поле SNMP OID маленькими буквами, то выдает Invalid SNMP OID: macro "{#bgp_status}" is invalid, делаю так {#BGP_STATUS} и все работает

    Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #3
      Originally posted by fractal90
      заметил что если я в дискавери прописываю в поле SNMP OID маленькими буквами, то выдает Invalid SNMP OID: macro "{#bgp_status}" is invalid, делаю так {#BGP_STATUS} и все работает
      Ну, тут, как раз, всё просто: в именах макросов строчные (маленькие) буквы недопустимы, только заглавные (большие):
      Attention: Allowed symbols for LLD macro names are 0-9 , A-Z , _ , .

      Lowercase letters are not supported in the names.
      и видимо или я не понимаю как работает дисковери, или что то неправильно делаю
      Я не вижу смысла объединять поиск по двум разным OID-ам в одном правиле.
      Для вашего первого OID-а значение {#SNMPINDEX} будет равно "192.168.50.2", а для второго - "192.168.50.2.1.1" (что видно по выводу утилиты snmpwalk).
      При этом под фильтр, заданный строкой "192.168.50.2", подпадают оба значения (поскольку фильтр - это регулярное выражение), то есть такой фильтр на самом деле ничего не фильтрует.
      А дальше для каждого из найденных значений {#SNMPINDEX} из прототипов создаётся, как и просили, по два элемента данных, один из которых получается корректным, а другой - нет (см. получившиеся для каждого из этих элементов данных значения OID-ов).

      Я бы в такой ситуации, наверное, делал разные правила обнаружения - отдельно для статуса и отдельно для маршрутов.

      Comment

      • fractal90
        Senior Member
        • Jun 2019
        • 177

        #4
        Originally posted by Kos
        Ну, тут, как раз, всё просто: в именах макросов строчные (маленькие) буквы недопустимы, только заглавные (большие):


        Я не вижу смысла объединять поиск по двум разным OID-ам в одном правиле.
        Для вашего первого OID-а значение {#SNMPINDEX} будет равно "192.168.50.2", а для второго - "192.168.50.2.1.1" (что видно по выводу утилиты snmpwalk).
        При этом под фильтр, заданный строкой "192.168.50.2", подпадают оба значения (поскольку фильтр - это регулярное выражение), то есть такой фильтр на самом деле ничего не фильтрует.
        А дальше для каждого из найденных значений {#SNMPINDEX} из прототипов создаётся, как и просили, по два элемента данных, один из которых получается корректным, а другой - нет (см. получившиеся для каждого из этих элементов данных значения OID-ов).

        Я бы в такой ситуации, наверное, делал разные правила обнаружения - отдельно для статуса и отдельно для маршрутов.
        аа, вот почему ругался на макросы,

        просто почему подумал что будет работать, делал такое правило для cisco asa под обнаружение ОЗУ, там также в одном правиле два макроса FREE, в другом USED, но собираются только нужные значения

        пример
        discovery[{#FREE},1.3.6.1.4.1.9.9.109.1.1.1.1.19, {#USED},1.3.6.1.4.1.9.9.109.1.1.1.1.17]
        в фильтре - {#SNMPINDEX} = 7


        прототипы такие
        1. FREE MEMORY - 1.3.6.1.4.1.9.9.109.1.1.1.1.19.{#SNMPINDEX}
        1. USED MEMORY - 1.3.6.1.4.1.9.9.109.1.1.1.1.17.{#SNMPINDEX}

        Comment

        Working...