Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse
Brand Logo

NetXMS Forum

  1. Home
  2. Support (Russian)
  3. Мониторинг APC

Мониторинг APC

Scheduled Pinned Locked Moved Support (Russian)
20 Posts 4 Posters 22.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F
    F
    Filipp Sudanov
    wrote on last edited by
    #11

    С какой-то из недавних версий configuration poll появился не только на нодах, но еще как минимум на кластерах. Поэтому, если такие объекты в системе есть, то скрипт будет на них тоже запускаться и расстраиваться что там нет каких-то вещей, которые есть на нодах. Попробуйте так:

    if (classof($object) == "Node")
    {
      $object->enableEtherNetIP(false);
      $object->enableAgent(false);
    }
    
    1 Reply Last reply
    0
    • S
      S
      sergey_t
      wrote on last edited by
      #12

      @filipp-sudanov said in Мониторинг APC:

      С какой-то из недавних версий configuration poll появился не только на нодах, но еще как минимум на кластерах. Поэтому, если такие объекты в системе есть, то скрипт будет на них тоже запускаться и расстраиваться что там нет каких-то вещей, которые есть на нодах. Попробуйте так:

      if (classof($object) == "Node")
      {
        $object->enableEtherNetIP(false);
        $object->enableAgent(false);
      }
      

      Прописал именно так, ошибки больше нет

      1 Reply Last reply
      0
      • C
        C
        comfortal
        wrote on last edited by
        #13

        Остался еще вопрос по поводу множественного редактирования, как изменить название ноды на IP, если нод с одинаковым именем более 100?

        1 Reply Last reply
        0
        • F
          F
          Filipp Sudanov
          wrote on last edited by
          #14

          Это тоже можно сделать в configuration poll - вот например для нод с определенным SNMP Object ID:

          if (classof($object) == "Node" and $node->snmpOID == ".1.3.6.1.4.1.14988.1") $node->rename($node->ipAddr);
          
          1 Reply Last reply
          0
          • C
            C
            comfortal
            wrote on last edited by
            #15

            @filipp-sudanov said in Мониторинг APC:

            Это тоже можно сделать в configuration poll - вот например для нод с определенным SNMP Object ID:

            if (classof($object) == "Node" and $node->snmpOID == ".1.3.6.1.4.1.14988.1") $node->rename($node->ipAddr);
            

            Спасибо, помогло

            1 Reply Last reply
            0
            • C
              C
              comfortal
              wrote on last edited by
              #16

              Получилось вот так:

              if (classof($object) == "Node" and capabilities == "0x00000001")
              {
                $object->enableEtherNetIP(false);
                $object->enableAgent(false);
                $node->rename($node->ipAddr);
                $node->setAlias($node->snmpSysName);
              }
              /* Для принтеров Kyocera установить alias из SysLocation */
              if (classof($object) == "Node" and $node->snmpOID == ".1.3.6.1.4.1.1347.41") $node->setAlias($node->snmpSysLocation);

              Появились еще вопросы:

              1. Правильно я понял, что указывая capabilities == "0x00000001" скрипт будет выбирать устройства только с SNMP?
              2. Как там же получить значение oid=.1.3.6.1.4.1.318.1.1.1.1.1.2.0 и вставить его в алиас, просто в ИПБ APC у нас не везде используется SysLocation
              1 Reply Last reply
              0
              • F
                F
                Filipp Sudanov
                wrote on last edited by
                #17

                В capabilites кроме младшего бита, который isSNMP могут быть взведены еще какие-то биты. Поэтому лучше проверять накладывая битовую маску бинарным and:

                if ($node->capabilities & 0x00000001)
                

                Пример чтения значения по SNMP есть тут: https://www.netxms.org/documentation/nxsl-latest/#_read_snmp_value_from_node

                1 Reply Last reply
                0
                • C
                  C
                  comfortal
                  wrote on last edited by
                  #18

                  Почему то у меня ошибка в строке: transport = FindObject($1)->createSNMPTransport();

                  Error 14 in line 40: Function or operation argument is not an object

                  1 Reply Last reply
                  0
                  • F
                    F
                    Filipp Sudanov
                    wrote on last edited by
                    #19

                    Для дебага эту строчку можно переписать так:

                    trace(0, "$1: " . $1)
                    o = FindObject($1);
                    trace(0, "Found object: " . o->name);
                    transport = o->createSNMPTransport();

                    здесь мы сначала проверим, что в $1 есть название или ID объекта а потом проверим, что FindObject действительно смог найти объект. А $1 вообще откуда в вашем скрипте должне был присвоен? Если это configuration poll, то там выставляются $node и $object и надо так:

                    transport = $node->createSNMPTransport();

                    1 Reply Last reply
                    0
                    • C
                      C
                      comfortal
                      wrote on last edited by
                      #20

                      Спасибо, сделал так:

                      transport = $node->createSNMPTransport();
                              if (transport == null)
                                  {
                          println "Failed to create SNMP transport, exit";
                          return 1;
                                  }

                          value = SNMPGetValue(transport, ".1.3.6.1.4.1.318.1.1.1.1.1.2.0");
                              if (value == null)
                                  {
                          println "Failed to issue SNMP GET request";
                          return 2;
                                  }
                                  else
                                  {
                          $node->setAlias(value);
                          return 0;
                                  }
                      И получил то что мне нужно, просто в программировании несилен и просто скопировал строчки из предложенного примера, а $1 оказывается пусто

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      Powered by NodeBB Contributors
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups