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.
  • М
    М
    МшлМшл
    wrote on last edited by
    #4

    @sergey_t said in Мониторинг APC:

    ошибку выдает 😞
    посмотрите пож повнимательнее

    У меня нормально скомпилировался скрипт.

    1 Reply Last reply
    0
    • М
      М
      МшлМшл
      wrote on last edited by
      #5

      @comfortal said in Мониторинг APC:

      И еще вопрос как можно сменить отображение имени ноды в Entire Network, на ip адрес, по умолчанию он показывает SNMP sysName, причем не у всех свитчей, и у меня в списке есть 40 свитчей с названием H3C, так же это доставляет не удобство при поиске по мак адресу, пишет H3C порт такой то?

      Присоединяюсь, вопрос актуальный.

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

        @sergey_t said in Мониторинг APC:

        ошибку выдает 😞
        посмотрите пож повнимательнее

        Ошибку где и какую?

        1 Reply Last reply
        0
        • S
          S
          sergey_t
          wrote on last edited by
          #7

          @sergey_t said in Мониторинг APC:

          ошибку выдает 😞
          посмотрите пож повнимательнее

          добавляю в скрипт указанные строки, скрипт компилируется и в логах вижу ошибку:
          "Script (Hook::ConfigurationPoll) execution error: Error 30 in line 8: Unknown object's method"

          8 строка это именно первая строка скрипта

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

            @sergey_t said in Мониторинг APC:

            @sergey_t said in Мониторинг APC:

            ошибку выдает 😞
            посмотрите пож повнимательнее

            добавляю в скрипт указанные строки, скрипт компилируется и в логах вижу ошибку:
            "Script (Hook::ConfigurationPoll) execution error: Error 30 in line 8: Unknown object's method"

            8 строка это именно первая строка скрипта

            Вот https://prnt.sc/217j1mu скрин скрипта, у меня работает, название объектов брал отсюда https://www.netxms.org/documentation/nxsl-latest/#class-netobj

            1 Reply Last reply
            0
            • S
              S
              sergey_t
              wrote on last edited by
              #9

              очередной раз, скопировал - вставил, скомпилировал и все, ошибки нет !

              1 Reply Last reply
              0
              • S
                S
                sergey_t
                wrote on last edited by
                #10

                не, опять вылезла 😞

                1 Reply Last reply
                0
                • 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