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. И снова DCI с ExternalParameter :(

И снова DCI с ExternalParameter :(

Scheduled Pinned Locked Moved Support (Russian)
10 Posts 2 Posters 22.6k 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
    Alex
    wrote on last edited by
    #1

    Доброе время суток...
    Есть скрипт, который написал. При запуске руками скрипт отрабатывает на ура.. Вызов из агента производится нормально. Данные от скрипт агент получает. Проблема заключается в консоли, которая говорит что с 1970-го года DCI не опрашивался. Хотя в дебаге видно что опрашивается. При перенаправлении в другой файл данных, данные видны.. Т.е. скрипт с агентом дружит, но почему в консоли нет данных, понять не могу 😞
    Вызов в агенте осуществляется так:

    ExternalParameter = PGW_Act_Calls(*):/users/scripts/pgw_stats/check_active_calls.sh $1 >> /tmp/pgw_error_log_netxms 2>&1
    

    В консоли прописано
    PGW_Act_Calls(host_ip_address)

    P.S.> Кстати, можно как-то сделать универсально, чтоб использовать данный вызов из темплейтов, а не прописывать руками на каждый хост? Типа PGW_Act_Calls(%host_ip%)

    1 Reply Last reply
    0
    • A
      A
      Alex
      wrote on last edited by
      #2

      Написал вместо скрипта на sh, на перле...
      Из дебага

      [21-Oct-2010 09:49:37] H_ExternalParameter called for "PGW_Act_Calls(ip_host)" "E/usr/bin/perl /root/scripts/pgw_stats/check_active_call.pl $1"
      [21-Oct-2010 09:49:37] H_ExternalParameter: command line is "/usr/bin/perl /root/scripts/pgw_stats/check_active_call.pl ip_host"
      [21-Oct-2010 09:49:37] H_ExternalParameter (shell exec): worker thread created
      [21-Oct-2010 09:49:41] H_ExternalParameter (shell exec): execution status 2
      [21-Oct-2010 09:49:41] H_ExternalParameter/POpenWorker: worker thread pipe read result: 5
      
      1 Reply Last reply
      0
      • A
        A
        Alex
        wrote on last edited by
        #3

        И еще выяснилось то, что Agent почему-то опрашивает три раза подряд один и тот же скрипт.. Зачем понять не могу... Это дает нагрузку на опрашиваемое устройство.

        [21-Oct-2010 14:24:00] [session:1] Sending message CMD_REQUEST_COMPLETED (size 48)
        [21-Oct-2010 14:24:02] [session:1] Received message CMD_GET_PARAMETER
        [21-Oct-2010 14:24:02] [session:1] Requesting parameter "PGW_Act_Calls(ip_host)"
        [21-Oct-2010 14:24:02] H_ExternalParameter called for "PGW_Act_Calls(ip_host)" "E/usr/bin/perl /users/scripts/pgw_stats/check_active_call.pl $1"
        [21-Oct-2010 14:24:02] H_ExternalParameter: command line is "/usr/bin/perl /users/scripts/pgw_stats/check_active_call.pl ip_host"
        [21-Oct-2010 14:24:04] Incoming connection from NetXMS
        [21-Oct-2010 14:24:04] Connection from NetXMS accepted
        [21-Oct-2010 14:24:04] [session:0] Received control message CMD_GET_NXCP_CAPS
        [21-Oct-2010 14:24:04] [session:0] Sending message CMD_NXCP_CAPS (size 16)
        [21-Oct-2010 14:24:04] [session:0] Received message CMD_KEEPALIVE
        [21-Oct-2010 14:24:04] [session:0] Sending message CMD_REQUEST_COMPLETED (size 32)
        [21-Oct-2010 14:24:04] [session:0] Received message CMD_ENABLE_AGENT_TRAPS
        [21-Oct-2010 14:24:04] [session:0] Sending message CMD_REQUEST_COMPLETED (size 32)
        [21-Oct-2010 14:24:04] [session:0] Received message CMD_GET_PARAMETER
        [21-Oct-2010 14:24:04] [session:0] Requesting parameter "PGW_Act_Calls(ip_host)"
        [21-Oct-2010 14:24:04] H_ExternalParameter called for "PGW_Act_Calls(ip_host)" "E/usr/bin/perl /root/scripts/pgw_stats/check_active_call.pl $1"
        [21-Oct-2010 14:24:04] H_ExternalParameter: command line is "/usr/bin/perl /users/scripts/pgw_stats/check_active_call.pl ip_host"
        [21-Oct-2010 14:24:04] H_ExternalParameter (shell exec): worker thread created
        [21-Oct-2010 14:24:04] H_ExternalParameter (shell exec): execution status 2
        [21-Oct-2010 14:24:04] [session:1] Session with NetXMS closed
        [21-Oct-2010 14:24:05] H_ExternalParameter/POpenWorker: worker thread pipe read result: 3
        [21-Oct-2010 14:24:06] Incoming connection from NetXMS
        [21-Oct-2010 14:24:06] Connection from NetXMS accepted
        [21-Oct-2010 14:24:06] [session:1] Received control message CMD_GET_NXCP_CAPS
        [21-Oct-2010 14:24:06] [session:1] Sending message CMD_NXCP_CAPS (size 16)
        [21-Oct-2010 14:24:06] [session:1] Received message CMD_KEEPALIVE
        [21-Oct-2010 14:24:06] [session:1] Sending message CMD_REQUEST_COMPLETED (size 32)
        [21-Oct-2010 14:24:06] [session:1] Received message CMD_ENABLE_AGENT_TRAPS
        [21-Oct-2010 14:24:06] [session:1] Sending message CMD_REQUEST_COMPLETED (size 32)
        [21-Oct-2010 14:24:06] [session:1] Received message CMD_GET_PARAMETER
        [21-Oct-2010 14:24:06] [session:1] Requesting parameter "PGW_Act_Calls(ip_host)"
        [21-Oct-2010 14:24:06] H_ExternalParameter called for "PGW_Act_Calls(ip_host)" "E/usr/bin/perl /users/scripts/pgw_stats/check_active_call.pl $1"
        [21-Oct-2010 14:24:06] H_ExternalParameter: command line is "/usr/bin/perl /users/scripts/pgw_stats/check_active_call.pl ip_host"
        [21-Oct-2010 14:24:06] H_ExternalParameter (shell exec): worker thread created
        [21-Oct-2010 14:24:06] H_ExternalParameter (shell exec): execution status 2
        [21-Oct-2010 14:24:06] [session:0] Session with NetXMS closed
        [21-Oct-2010 14:24:07] H_ExternalParameter/POpenWorker: worker thread pipe read result: 3
        

        Версия NetXMS 1.0.3

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

          Добрый день!

          3 раза - это retry. Если сервер получает тайм-аут в ответ на запрос параметра, он сбрасывает соединение, создает новое, и пробует получить параметр еще раз. Всего попыток делается 3. Похоже что скрипт исполняется слишком долго, и сервер не дожидается ответа от агента. Надо либо увеличить тайм-аут для запроса параметров (параметр сервера AgentCommandTimeout, default 2000 миллисекунд), или как-то переделать скрипт, чтобы он укладывался в 2 секунды.

          Best regards,
          Victor

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

            @axel said in И снова DCI с ExternalParameter 😞:

            P.S.> Кстати, можно как-то сделать универсально, чтоб использовать данный вызов из темплейтов, а не прописывать руками на каждый хост? Типа PGW_Act_Calls(%host_ip%)

            Можно. Если в темплейте указать макрос %{node_primary_ip}, то при наложении на хост вместо него будет подставлен IP адрес хоста. Все макросы описаны в мануале в разделе 5.3.6.

            Best regards,
            Victor

            1 Reply Last reply
            0
            • A
              A
              Alex
              wrote on last edited by
              #6

              @victor said in И снова DCI с ExternalParameter 😞:

              (параметр сервера AgentCommandTimeout, default 2000 миллисекунд), или как-то переделать скрипт, чтобы он укладывался в 2 секунды.

              Виктор, установил AgentCommandTimeout в 10000. Все равно судя по дебагу запрос производится 3-жды... Выставил для проверке в скрипте time(). Судя по отчету скрипт выполняется 2-2,5 секунды. Думается мне 10 секунд должно хватить. Также в дебаге вижу, что ретрейн осуществляется все те же 2 секунды. Неужели агент плевать хотел на выставленный параметр? Можно как-то это еще проверить?

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

                А сервер перезапустили после изменения параметра? Он читается только при старте. Еще я забыл про параметр агента ExecTimeout - время ожидания результата внешней программы. Он тоже по умолчанию 2 секунды. Попробуйте поставить

                ExecTimeout = 5000

                в nxagentd.conf.

                Best regards,
                Victor

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

                  Да, именно этот параметр помог. Спасибо Виктор...
                  Кстати почему-то в исходных файлах я его не увидел ((( Это задумка на будущее или же просто недокументированная фишка?

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

                    Этот параметр существует очень давно, просто его очень редко надо менять, только если внешние скрипты не укладываются по времени исполнения в тайм-аут по умолчанию. Он даже перечислен в User Manual'е в списке параметров агента, правда без особых комментариев по использованию 🙂

                    1 Reply Last reply
                    0
                    • A
                      A
                      Alex
                      wrote on last edited by
                      #10

                      Спасибо Виктор за помощь. Дальше буду разбираться уже сам, почему часть скриптов не отрабатывает так, как надо :)))

                      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