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. вопрос по отчётам и макросам

вопрос по отчётам и макросам

Scheduled Pinned Locked Moved Support (Russian)
24 Posts 4 Posters 50.9k 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.
  • S
    S
    semi-liquid
    wrote on last edited by
    #12

    даф иг с ними с отчётами, в целом и каспер в отчёты умеет) но спасибо за инфу)
    мне бы понять таки как в письмо воткнуть имя пользователя)

    1 Reply Last reply
    0
    • V
      V
      Victor Kirhenshtein
      wrote on last edited by
      #13

      @semi-liquid said in вопрос по отчётам и макросам:

      мне бы понять таки как в письмо воткнуть имя пользователя)

      Там выше предлагался вариант со скриптом. Его можно даже еще упростить и просто вставлять результат в сообщение, без дополнительных атрибутов:

      list = $node->readAgentList("System.ActiveUserSessions");
      return SplitString(list[0], "\"")[1];
      

      и в сообщении использовать макрос %{script}, где script - это имя скрипта в библиотеке.

      1 Reply Last reply
      0
      • S
        S
        semi-liquid
        wrote on last edited by
        #14

        проблема в том что я в этом предложении понимаю отдельные буквы) а куда лезть и что делать так и не понял.
        Можете пожалуйста мне разжевать что здесь сказано? Дальше обещаю что разберусь сам)
        "Например, сделаем DCI, Origin "Internal", Parameter "Dummy". " - где делать DCI (куда заходить, что нажимать) и все эти параметры и ориджины, сам скрипт всё в одном месте делается?
        То есть я понимаю что дальше реагирование прописывается отдельно. Но всё что я нашёл с подписью DCI не похоже на то что надо.


        1.jpg

        2.jpg

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

          Давайте начнем потихнечку. Судя по скриншотам ноды в системе у вас уже заведены (ну там SRV003 и все остальные).
          На ноде нажимаем правую кнопку мыши, там есть Data Collection Configuration. Заходим. Это место, где конфигурируется сбор данных с ноды. Там список, каждая строка в этом списке это Data Collection Item - элемент сбора данных.
          На списке правую кнопку мыши - New parameter. Там-то и ставим Origin "Internal", Parameter "Dummy". Dummy - это просто штука, которая всегда возвращает 0 - здесь значение нам не нужно, потому что мы его будет в transformation script добывать.
          Слева в этом диалоге выбираем Transformation (третий пункт сверху). Там пишем код:

          list = $node->readAgentList("System.ActiveUserSessions");
          currentlyLoggedUser = SplitString(list[0], "\"")[1];
          $node->setCustomAttribute("currentlyLoggedUser", currentlyLoggedUser);

          Код получает с агента на ноде список залогиненных юзеров. Из этого списка мы просто берем первого. И сохраняем в custom attribute на ноде.
          Нажимаем Apply and Close. Ждем пока данные соберутся.
          На ноде нажимаем правую кнопку мыши, Properties, там слева Custom attributes. Если все хорошо, то там в списке должен быть currentlyLoggedUser с именем юзера.

          Пишите, что получилось, что нет.

          1 Reply Last reply
          0
          • S
            S
            semi-liquid
            wrote on last edited by
            #16

            возможно я мало ждал и потому готов повторить проверку завтра утром, но ничего не изменилось. dummy выбирал верхний.
            На скрипт система не ругалась, но либо я не дождался, либо что-то не так сделал(
            если что отключенный вариант на скрине - сделал то же самое, но скрипт добавил тот что предлагали выше, результат одинаковый.
            И он стоит верхним не потому что я вам не доверяю, а потому что до этого я с другим нодом экспериментировал, там ваш первый))


            1.jpg

            2.jpg

            3.jpg

            4.jpg

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

              А custom attribute "currentlyLoggedUser" вы добавили вручную, или он автоматически добавился?

              Если автоматически, то выглядит, что скрипт возвращает пустое значение. Если на ноде сделать Execute server script и там запустить вот это, то что оно напечатает?:

              list = $node->readAgentList("System.ActiveUserSessions");
              println("=" . list . "=");
              currentlyLoggedUser = SplitString(list[0], "\"")[1];
              println("=" . currentlyLoggedUser . "=");

              1 Reply Last reply
              0
              • S
                S
                semi-liquid
                wrote on last edited by
                #18

                автоматом добавилось.
                Сделал что вы сказали вот результат, admind - то что надо вытащить.
                vor-admin комп с которого я к серваку нетхмс подключен по рдп.


                1.jpg

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

                  Да, получается что в этом списке может быть еще тот юзер, что залогинен на Console и он может быть пустой. И список может быть в любом порядке. Тогда такой скрипт, он соберет всех юзеров через запятую, если имя юзера не пустое:

                  list = $node->readAgentList("System.ActiveUserSessions");
                  loggedUsers = %();
                  for (l : list)
                  {
                    username = SplitString(l, "\"")[1];
                    if (username != "") loggedUsers->append(username);
                  }
                  loggedUsersStr = ArrayToString(loggedUsers, ",");
                  $node->setCustomAttribute("currentlyLoggedUser", loggedUsersStr);

                  1 Reply Last reply
                  0
                  • S
                    S
                    semi-liquid
                    wrote on last edited by
                    #20

                    что-то всё равно идёт не так(


                    1.jpg

                    1 Reply Last reply
                    0
                    • S
                      S
                      semi-liquid
                      wrote on last edited by
                      #21

                      понял, не хватало строчки возвращающей значение)
                      return loggedUsersStr;

                      1 Reply Last reply
                      0
                      • S
                        S
                        semi-liquid
                        wrote on last edited by
                        #22

                        работает))  🙂 🙂 🙂 🙂 🙂
                        а теперь это надо вручную по всем компам или где-то ещё можно отдельно запустить по всем?
                        я не против первого варианта, круто что оно вообще работает) спасибо за это вам огромное 🙂 🙂
                        по идее же это как-то можно как раз в DC Summary Table впихнуть и заставить работать по всем компам?

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

                          Не, вручную не стоит, у нас есть шаблоны (Templates) и лучше все делать через них.

                          В дереве объектов правый клик на Templates, Create, Template, дать ему какое-нибудь имя. Он появится под Templates. На нем правой кнопкой, Data Collection Configuration. Там опять-таки нужно создать DCI со всеми свойствами (или можно на том DCI что был создан на ноде сделать Copy to another node и указать имя шаблона).
                          Дальше нужно шаблон назначить на ноды. Правой кнопкой по шаблону, Apply. Там можно выбирать несколько нод сразу (с помощью shift или ctrl), или можно выбрать сразу контейнер.

                          Еще шаблоны умеют накладываться автоматом - там может быть скрипт, который решает, нужен ли этот шаблон на этой ноде. Примеры можно посмотреть в шаблонах, которые идут "из коробки" - Templates->Operating systems например.

                          1 Reply Last reply
                          0
                          • S
                            S
                            semi-liquid
                            wrote on last edited by
                            #24

                            круто) всё работает как надо)
                            спасибо вам огроменное, что разжевали всё)

                            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