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. Action типа "Execute action on remote agent" не работает...

Action типа "Execute action on remote agent" не работает...

Scheduled Pinned Locked Moved Support (Russian)
12 Posts 2 Posters 16.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.
  • A
    A
    Anth0ny
    wrote on last edited by
    #1

    Не могу понять, где я не прав.
    Прошу помочь- разъяснить.

    Версия - 0.2.22.

    ОС сервера NetXMS - Windows 2008.
    ОС с Агентом - Windows 2003

    Ведь всё вроде просто: https://www.netxms.org/forum/index.php/topic,204.0.html
    Действовал в точности с инструкцией.

    1. Создал Action типа "Execute action on remote agent".
      Remote host: %a
      Action: ResetSpooler

    (Сразу вопрос: а почему в поле Action сразу нельзя использовать команды windows-шелла? если например мне не нужно ничего кроме перезапуска сервиса, то почему сразу нельзя использовать простейшую конструкцию типа "net stop spooler && net start spooler", а приходится создавать ватник на сервере, на котором должна быть выполнены данные команды?)

    1. На сервере, за спулером которого мы приглядываем, в подкаталоге VAR каталоге Агента NetXMS (C:\Program Files\NetXMS\var) создал файл reset_spooler.cmd следующего содержания:

    (Я не нашёл 😕 конкретных рекомендаций в форуме и документации на тему, ГДЕ ЖЕ нужно хранить исполняемые скрипты, нашёл только упоминание про \VAR\)

    @echo off
    @sc stop spooler
    @cs start spooler
    @sc query spooler >>query.log
    
    1. В конфиг Агента добавлена строка: ActionShellExec = ResetSpooler:reset_spooler.cmd. Агент перезапущен через редактор конфига (Save and apply).
    2. Создан DCI, отслеживающий состояние сервиса Windows Spooler: System.ServiceState(spooler).
    3. Используется стандартный Event типа SYS_SERVICE_DOWN (Last polled value - not equal - 0).
    4. Используется стандартный обработчик Event Processing Policy для SYS_SERVICE_DOWN, к нему привязаны 2 Action'а, Mail to admin (тип - Send e-mail) и Reset service (тип - Execute action on remote agent)

    Всё. Судя по Форуму, начиная с этого момента всё должно начать работать...
    Однако ж нет, из двух указаных Action срабатывает только mail to (и прекрасно работает), а вот скрипт НИ В КАКУЮ выполняться не хочет...

    И хуже всего то, что нет никакой отладочной информации, чтобы понять, в каком именно месте я ошибся. Если ошибся.
    Прошу помочь разобраться с данной проблемой. Существует ли какой-нибудь способ понять, почему не выполняется скрипт? Можно ли как-то вызвать дополнительную отладочную информацию и с её помощь понять причину проблемы?

     ???

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

      Tut sluchajno net opechatki?

      @echo off
      @sc stop spooler
      @__cs__ start spooler
      @sc query spooler >>query.log

      1 Reply Last reply
      0
      • A
        A
        Anth0ny
        wrote on last edited by
        #3

        да тут я вручную писал... очепятка.  😄
        в моём собственном файле всё ок.

        да и это роли по сути не играет, так как ПО ЛЮБОМУ не выполняется третья директива: дописка в кастомный файл лога состояния сервиса после перезапуска.

        @sc query spooler >>query.log

        я кстати и с net start \ net stop пробовал- тоже нету эффекта =(((
        файл не создаётся.

        я так понимаю что он должен создаться в \var\ ?

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

          @anth0ny said in Action типа "Execute action on remote agent" не работает...:

          я так понимаю что он должен создаться в \var\ ?

          Нет. Он будет создаваться в каталоге, который был текущим при запуске агента. В таких ситуациях лучше указывать полное имя файла.

          1 Reply Last reply
          0
          • A
            A
            Anth0ny
            wrote on last edited by
            #5

            хмм...

            а что касаемо выполнения cmd-скрипта?
            тут-то что не так? не пойму...

            та процедура которую я описал- правильная?

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

              @anth0ny said in Action типа "Execute action on remote agent" не работает...:

              (Сразу вопрос: а почему в поле Action сразу нельзя использовать команды windows-шелла? если например мне не нужно ничего кроме перезапуска сервиса, то почему сразу нельзя использовать простейшую конструкцию типа "net stop spooler && net start spooler", а приходится создавать ватник на сервере, на котором должна быть выполнены данные команды?)

              cmd файл можно и не создавать - вполне можно использовать

              ActionShellExec = ResetSpooler:net stop spooler && net start spooler
              

              В поле action на сервере можно использовать только предопределенные action'ы агента из соображений безопасности - например агент может настраивать другой администратор, дать серверу NetXMS доступ только на уровне ControlServer, и быть уверенным что администратор NetXMS не сможет выполнять любые команды, какие пожелает, через NetXMS агента.

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

                @anth0ny said in Action типа "Execute action on remote agent" не работает...:

                хмм...

                а что касаемо выполнения cmd-скрипта?
                тут-то что не так? не пойму...

                та процедура которую я описал- правильная?

                По описанию - правильно. Можно прислать copy-paste конфига агента (хотя-бы строчку  Action...) ?

                1 Reply Last reply
                0
                • A
                  A
                  Anth0ny
                  wrote on last edited by
                  #8

                  вот, пожалуйста 😃

                  #
                  # NetXMS agent configuration file
                  # Created by agent installer at Wed Aug 27 12:59:39 2008
                  #
                  
                  MasterServers = monitoring.test.ru, 127.0.0.1
                  LogFile = {syslog}
                  FileStore = C:\Program Files\NetXMS\var
                  SubAgent = ecs.nsm
                  SubAgent = winperf.nsm
                  SubAgent = wmi.nsm
                  SubAgent = ups.nsm
                  
                  ActionShellExec = ResetSpooler:reset_spooler.cmd
                  

                  файл: C:\Program Files\NetXMS\var\reset_spooler.cmd

                  содержимое файла:

                  @echo off
                  @sc stop spooler
                  @sc start spooler
                  @sc query spooler >>query.log
                  @echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >>query.log
                  
                  1 Reply Last reply
                  0
                  • A
                    A
                    Anth0ny
                    wrote on last edited by
                    #9

                    @victor said in Action типа "Execute action on remote agent" не работает...:

                    cmd файл можно и не создавать - вполне можно использовать

                    ActionShellExec = ResetSpooler:net stop spooler && net start spooler
                    

                    а вот это сработало, спасибо! 😃
                    но всё равно хотелось бы понять почему cmd-файл не срабатывает...

                    @victor said in Action типа "Execute action on remote agent" не работает...:

                    В поле action на сервере можно использовать только предопределенные action'ы агента из соображений безопасности - например агент может настраивать другой администратор, дать серверу NetXMS доступ только на уровне ControlServer, и быть уверенным что администратор NetXMS не сможет выполнять любые команды, какие пожелает, через NetXMS агента.

                    мм.. если честно то не совсем понял о чём идёт речь... =((

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

                      @anth0ny said in Action типа "Execute action on remote agent" не работает...:

                      @victor said in Action типа "Execute action on remote agent" не работает...:

                      cmd файл можно и не создавать - вполне можно использовать

                      ActionShellExec = ResetSpooler:net stop spooler && net start spooler
                      

                      а вот это сработало, спасибо! 😃
                      но всё равно хотелось бы понять почему cmd-файл не срабатывает...

                      Причина в том, что не указан полный путь к .cmd файлу, и в PATH каталог C:\Program Files\NetXMS\var тоже вряд-ли прописан, поэтому Windows не может найти файл reset_spooler.cmd.

                      ActionShellExec = ResetSpooler:C:\Program Files\NetXMS\var\reset_spooler.cmd
                      

                      должно работать.

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

                        @anth0ny said in Action типа "Execute action on remote agent" не работает...:

                        @victor said in Action типа "Execute action on remote agent" не работает...:

                        В поле action на сервере можно использовать только предопределенные action'ы агента из соображений безопасности - например агент может настраивать другой администратор, дать серверу NetXMS доступ только на уровне ControlServer, и быть уверенным что администратор NetXMS не сможет выполнять любые команды, какие пожелает, через NetXMS агента.

                        мм.. если честно то не совсем понял о чём идёт речь... =((

                        Если я администратор NetXMS, не имею доступа к хосту Х, но при этом там стоит NetXMS агент, то через него я могу выполнить любую команду. Если администратор хоста Х этого не хочет, ему достаточно в nxagentd.conf прописать NetXMS сервер как ControlServers, а не MasterServers, и тогда я не смогу изменить конфиг агента с сервера, а соответственно определить новые action'ы, только запускать уже прописанные в конфиге агента. Если бы агент просто принимал команды, то такого ограничения нельзя было бы сделать, и администратор NetXMS'а автоматически получал бы доступ на любой сервер с NetXMS агентом, где action'ы в принципе разрешены.

                        1 Reply Last reply
                        0
                        • A
                          A
                          Anth0ny
                          wrote on last edited by
                          #12

                          Виктор, Вы как всегда правы 😃
                          Теперь всё работает как часы.

                          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