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)
63 Posts 5 Posters 88.4k 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
    #42

    Надо смотреть скрипт. Если не трудно, дай его сюда плз....

    1 Reply Last reply
    0
    • I
      I
      isherim
      wrote on last edited by
      #43

      /bin/ping -c 5 $1 &>/dev/null
      if [ $? -ne 0 ]; then
      echo "0"
      else
      echo "1"
      fi;
      все предельно просто вроде бы

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

        Я нашел ошибку вывода...
        Вот вывод Вашего скрипта

        PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
        64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.032 ms
        1
        

        Как видишь под условия integer это не подходит.

        Вот вывод моего скрипта:

        host#./ping.sh
        1
        host#

        все дело в самом скрипте.. попробуй написать так:

        /bin/ping -c 5 $1 >/dev/null
        if [ $? -ne 0 ]; then
        echo "0"
        else
        echo "1"
        fi;
        

        т.е. просто убрать знак & перед перенаправлением вывода.

        1 Reply Last reply
        0
        • I
          I
          isherim
          wrote on last edited by
          #45

          на самом деле вывод с & и без совершенно одинаковый(по крайней мере в линухе) - одна цифра. Без & результат тот же - в dci пусто.

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

            Проблема в том, что этот скрипт долго работает. На моем компе это выглядит так:

            victor@stone:~/netxms$ date && /usr/local/sbin/e1_ms.sh 10.0.0.2 && date
            Thu Apr 10 10:12:18 EEST 2008
            1
            Thu Apr 10 10:12:22 EEST 2008
            victor@stone:~/netxms$
            

            У агента есть тайм-аут на выполнение внешних команд, по умолчанию 2 секунды. Если команда не успевает завершиться за это время, то агент возвращает ошибку. Это время можно увеличить, изменив значение параметра ExecTimeout в конфиге агента (значения в миллисекундах). Кроме того, у сервера тоже есть тайм-аут на ожидание ответа на запрос к агенту - те-же 2 секунды по умолчанию. Меняется настройкой параметра сервера AgentCommandTimeout.

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

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

              Кстати, а почему бы для пингов не использовать PING субагент? Он специально для этого предназначен...

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

                2 Виктор, по-моему Вы через чур правы о PING SubAgent-е 🙂
                По поводу отработки скрипта долго. Разумеется будет долго отрабатывать, ибо в коде посылается 5 пакетов для проверки узла. В среднем уходит 1-1.5 секунды на один запрос.

                2 isherim. А я как раз на linux-е и тестил скрипт. У меня для тестов стоит Ubuntu 7. На ней и тестил скрипт.

                1 Reply Last reply
                0
                • I
                  I
                  isherim
                  wrote on last edited by
                  #49

                  спасибо
                  да, причина именно в этом.
                  А субагент не использовал сугубо по причине первого машинального телодвижения в сторону стандартных средств ОС-и.
                  а & и говорит об отправке вывода результата в нуль.
                  Оставил 2 пакета - работает.

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

                    @isherim said in Возможность использования скриптов на сервере:

                    спасибо
                    да, причина именно в этом.
                    А субагент не использовал сугубо по причине первого машинального телодвижения в сторону стандартных средств ОС-и.
                    а & и говорит об отправке вывода результата в нуль.
                    Оставил 2 пакета - работает.

                    Мне всю жизнь казалось что > и >> это и есть перенаправление куда-либо, хоть в тот же /dev/null. 😞 Пойду учить МАТЧАСТЬ значится.

                    1 Reply Last reply
                    0
                    • I
                      I
                      isherim
                      wrote on last edited by
                      #51

                      Кто бы еще подсказал, как сделать, чтобы алармы навешанные на разные dci(однотипные) не укладывались в один аларм(т.е. хотя dci разные, просто увеличивается счетчик алармов). Есть ли способ помимо создания отдельных эвентов на каждый dci?

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

                        На сколько я понимаю это можно. Необходимо насоздавать алармов и затем указывать ноды в Source-ах. Т.е. на сколько я помню можно для каждой ноды свои алармы создать на все случаи жизни.

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

                          Счетчик алармов увеличивается если у алармов совпадают ключи. Надо делать ключ на основе DCI ID, скажем добавлять _%5 к ключу.

                          1 Reply Last reply
                          0
                          • I
                            I
                            isherim
                            wrote on last edited by
                            #54

                            Спасибо, понятно.
                            Алексу:
                            Насоздавать алармов и кучу нод - коряво.
                            Наряднее подключать сразу контейнерами. Через префикс ключа нормально отрабатывает.

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

                              isherim я предложил может и бредовый вариант, но это тот, который первым пришел мне в голову.. Может есть и другие, не знаю.. Может Виктор подскажет?

                              1 Reply Last reply
                              0
                              • I
                                I
                                isherim
                                wrote on last edited by
                                #56

                                Не бредовый. Просто громоздкий.
                                Виктор уже предложил более правильный и компактный - добавлением префикса к ключу. Иначе и пришлось бы делать как ты предложил.

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

                                  Вылезла не понятная проблема.
                                  Есть 4 Cisco. Есть внешний скрипт. На всех 4-х прописан Trusted Node сервер с NetXMS-ом (у меня и агент и сервер на одном хосте), а в trusted hosts netxms node-ы, прописал все эти 4 Cisco на всякий случай. в nxagentd.conf прописаны строки:

                                  ExternalParameter = SipOrig(*):/usr/bin/perl /root/scripts/sip_stat/originate.pl $1
                                  ExternalParameter = SipAnswer(*):/usr/bin/perl /root/scripts/sip_stat/answer.pl $1
                                  

                                  Самое интересное вот в чем. На двух Cisco работает все и данные получаются, а на оставшихся двух нет. Настройки идентичны. Пытался включить дебаг и агента и сервера, нет данных по вызову.
                                  Прописал в скрипте строчку, чтоб в отдельный файл писал ключ-значение (где ключ это IP ноды, а значение число полученное при выполнении скрипта). Так вот, запросы к скриптам даже не приходят. В чем может быть дело? Есть какое-то ограничение или что-то в этом роде?

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

                                    A mozno prislat' konfiguraciju samih DCI i ob'ektov node?

                                    1 Reply Last reply
                                    0
                                    • I
                                      I
                                      isherim
                                      wrote on last edited by
                                      #59

                                      @axel said in Возможность использования скриптов на сервере:

                                      Вылезла не понятная проблема.
                                      Есть 4 Cisco. Есть внешний скрипт. На всех 4-х прописан Trusted Node сервер с NetXMS-ом (у меня и агент и сервер на одном хосте), а в trusted hosts netxms node-ы, прописал все эти 4 Cisco на всякий случай. в nxagentd.conf прописаны строки:

                                      ExternalParameter = SipOrig(*):/usr/bin/perl /root/scripts/sip_stat/originate.pl $1
                                      ExternalParameter = SipAnswer(*):/usr/bin/perl /root/scripts/sip_stat/answer.pl $1
                                      

                                      Самое интересное вот в чем. На двух Cisco работает все и данные получаются, а на оставшихся двух нет. Настройки идентичны. Пытался включить дебаг и агента и сервера, нет данных по вызову.
                                      Прописал в скрипте строчку, чтоб в отдельный файл писал ключ-значение (где ключ это IP ноды, а значение число полученное при выполнении скрипта). Так вот, запросы к скриптам даже не приходят. В чем может быть дело? Есть какое-то ограничение или что-то в этом роде?

                                      А тело скриптов не покажешь? Тоже нужно количество звонков смотреть, а времени нету совсем...

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

                                        Да скрипты очень простые. Я не стал делать все в одном файлике, сделал разделение по разным. Чтоб проще было.

                                        Скрипт на терминацию:

                                        #!/usr/bin/perl
                                        
                                        if ($#ARGV != 0) {
                                         print "usage: $0 host_ip\n";
                                          exit;
                                        }
                                        
                                        $host = $ARGV[0];
                                        
                                        open(rsh, "/usr/bin/rsh $host \"show sip-ua calls | i UAS\" |");
                                        while (<rsh>) {
                                            $str=$_;
                                            $str = (/calls: (\d+)/);
                                            $num = $1;
                                            $num = 0 if ($num eq "");
                                        }
                                        close (rsh);
                                        print "$num\n";
                                        

                                        Скрипт на Оригинацию:

                                        #!/usr/bin/perl
                                        
                                        if ($#ARGV != 0) {
                                         print "usage: $0 host_ip\n";
                                          exit;
                                        }
                                        
                                        $host = $ARGV[0];
                                        
                                        open(rsh, "/usr/bin/rsh $host \"show sip-ua calls | i UAC\" |");
                                        while (<rsh>) {
                                            $str=$_;
                                            $str = (/calls: (\d+)/);
                                            $num = $1;
                                            $num = 0 if ($num eq "");
                                        }
                                        close (rsh);
                                        print "$num\n";
                                        

                                        Скрипты идентичны, за исключением поисковой строки. Можно чуток увеличить код, и сделать все в одном файлике. Может тока путь до rsh тебе придется поменять. Ибо кто как ставит называется 🙂

                                        1 Reply Last reply
                                        0
                                        • I
                                          I
                                          isherim
                                          wrote on last edited by
                                          #61

                                          Я подумал телнетом забираешь...

                                          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