Ad Widget

Collapse

проблема {#snmpname} в lld

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • neo32
    Senior Member
    • Nov 2013
    • 149

    #1

    проблема {#snmpname} в lld

    Здравствуйте, проблема заключается в следующем:
    При составлении прототипа элемента данных в правилах обнаружения, системный макрос {#snmpindex} отрабатывает нормально, а вот значение "string" макросом {#snmpname} получить не могу, как я понимаю он везде мне подставляет как раз таки полученное им из {#snmpindex}, если нужно конкретный пример со скриншотом, то могу приложить. Вопрос, как получить значение {#snmpname} ?
    Last edited by neo32; 25-12-2013, 07:43.
  • vvlad
    Member
    • Apr 2011
    • 83

    #2
    А есть такой макрос? Насколько мне известно, еще есть {#SNMPVALUE}. Плюс нюанс - upper case only. Ну и это... доку таки почитайте...

    Comment

    • neo32
      Senior Member
      • Nov 2013
      • 149

      #3
      Простите опечатался, меня именно {#snmpvalue} интересует, с него я не могу получить значение.
      Last edited by neo32; 10-02-2014, 08:10.

      Comment

      • vvlad
        Member
        • Apr 2011
        • 83

        #4
        Судя по ошибке какого OID узел просто не отдает. Вы уверены в корректности указания OID?

        Попробуйте выполнить snmpget для этого OID. Ну или snmpwalk-ом весь пул OID получить...

        Comment

        • Jimson
          Senior Member
          • Jan 2008
          • 1327

          #5
          А вы LLD правило по какому OID делали? Не по ifIndex случаем?

          Comment

          • neo32
            Senior Member
            • Nov 2013
            • 149

            #6
            Вот для ясности скрин прототипа
            Last edited by neo32; 10-02-2014, 08:10.

            Comment

            • neo32
              Senior Member
              • Nov 2013
              • 149

              #7
              А вот скрин самого правила обнаружения
              Last edited by neo32; 10-02-2014, 08:10.

              Comment

              • vvlad
                Member
                • Apr 2011
                • 83

                #8
                Я один вижу, что между 3 в oid и макросом точка пропущена?...

                И еще совершенно не понятно, зачем здесь {#SNMPVALUE}. ifOperStatus, на котором вы строите обнаружение, вернет число от 0 до, если не путаю, 7. Что вам даст OID, составленный с участием этого значения?
                Last edited by vvlad; 23-12-2013, 15:47.

                Comment

                • Jimson
                  Senior Member
                  • Jan 2008
                  • 1327

                  #9
                  Зато в ключе используется {#SNMPINDEX} :-)

                  Сложно когда не понимая что делаешь пытаться что то сделать, начинает казаться что кругом одни враги. Итак,

                  1) При сканировании "дерева" SNMP, предположим ifDescr
                  Code:
                  snmpwalk x.x.x.x ifDescr
                  IF-MIB::ifDescr.1 = STRING: ethernetCsmacd
                  IF-MIB::ifDescr.2 = STRING: Satellite
                  правило LLD создаст JSON вида:
                  { "{#SNMPINDEX}": 1, "{#SNMPVALUE}": "ethernetCsmacd" },
                  { "{#SNMPINDEX}": 2, "{#SNMPVALUE}": "Satellite" }
                  как видите два "объекта", для которых будут созданы итемы, триггеры и графики в соответсвии с прототипами

                  2) При получении "индекса", а задача эта актуальна еще со времен доRRD MRTG, надо с одной стороны получить SNMP индекс интерфейса, который может в любой момент измениться, а с другой стороны получить привязку к чему то "фиксированному", обычно это полное имя интерфейса (ifDescr). Делать же привязку ifOperStatus => ifIndex бессмысленно, так как у нас получается изменяемый параметр интерфейса с одной стороны и изменяемый snmp индекс с другой.

                  3) из пункта 3 следует, что для идентификации (создания уникальных ключей и имен) элементов данных, триггеров и графиков мы используем некий "фиксированный" параметр, в простом SNMP LLD правиле это будет {#SNMPVALUE}, а вот для получения OID нам нужен SNMP индекс - {#SNMPINDEX}. Ну и про точку вам уже написали.

                  Comment

                  • neo32
                    Senior Member
                    • Nov 2013
                    • 149

                    #10
                    to Jimson&vvlad

                    Спасибо большое, врагов ни в ком не вижу слава богу))) После вашего объяснения стало яснее, но ещё не совсем понятно, не могли бы вы поподробнее объяснить, что нужно указывать в параметрах самого правила обнаружения и что в параметрах прототипа данных, при создании LLD, как такового.
                    PS. Если не трудно, то на каком нибудь конкретном примере

                    Comment

                    • Jimson
                      Senior Member
                      • Jan 2008
                      • 1327

                      #11
                      Документация чем вас не устраивает?

                      Comment

                      • neo32
                        Senior Member
                        • Nov 2013
                        • 149

                        #12
                        про SNMPVALUE там ни слова, и я читал эту документацию, всё равно до конца не могу понять как работает LLD.
                        что Index это левая часть, а Value правая часть ответа snmp запроса, это я немножко понимать, но вот конкретно при попытке получить с коммутаторов Cisco 3750 название интерфейса в полученных данных, у меня всё равно не получается, как не подставляю SNMPVALUE всё равно получается что то типа http://s2.ipicture.ru/uploads/20131224/WzxE7oNP.jpg


                        также попробовал {#IFNAME}, безрезультатно..(
                        Last edited by neo32; 24-12-2013, 14:19.

                        Comment

                        Working...