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)
8 Posts 4 Posters 17.3k 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.
  • W
    W
    wonderboy
    wrote on last edited by
    #1

    Все привет!

    Такой вопрос:
    Есть ли какая-нибудь возможность выставлять приоритет алярма в зависимости от интерфейса на коммутаторе?

    Например:
    На циске порт 1 подключен к серверу, а порт 2 к обычному пользователю. Нужно чтобы после падения порта 1 алярм был CRITICAL, а при падении порта 2 был MAJOR.

    Спасибо.

    1 Reply Last reply
    0
    • R
      R
      rostyslav
      wrote on last edited by
      #2

      Здравствуйте.
      Да, можно. Надо в Event Policy Editor'e создать два правила. В Source прописываем ту железку для которой создаем правила, в поле Alarm создаем в обоих один тот же аларм, но с разными приоритетами. В поле Script пишем скрипт такого плана:

      sub main()
      {
        if ($2 == 1)
        {
            return 1;
        }
      }

      Будет приходить либо индекс интерфейса (SNMP_LINK_DOWN - трапы), либо его имя (SYS_IF_DOWN - опрос). В зависимости от этого и надо писать условие.

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

        Кстати, для таких простых скрипров можно не писать "sub main ...", достаточно $2 == 1

        1 Reply Last reply
        0
        • W
          W
          wonderboy
          wrote on last edited by
          #4

          Спасибо за помощь, но сразу возник еще один вопрос.

          Так как на разном оборудовании разные порты могут быть серверными, транковыми и т.д.
          Решил в дескрипшенах писать что-то типа Trunk ... , User ... , Server ...
          И иметь всего 3 правила на все устройства.

          Пишу в политике для эвента SYS_IF_DOWN скрипт ($2 - содержит имя интерфейса в указанном выше формате):

          sub main() {
          if ($2 ~= "Trunk")
          {
             return 1;
          }
          }
          

          Но вот видимо не срабатывает, потому что алярмы свой приоритет не меняют.

          PS: Stdout куда выводятся print, println это где? Куда нужно смотреть? 🙂

          1 Reply Last reply
          0
          • W
            W
            wonderboy
            wrote on last edited by
            #5

            Попытался выяснить в чем дело и получил вот что:

            Даже если не стоит никаких скриптов в policy event editor алярмы выскакивают с severity minor, тоесть ни major, ни critical не отрабатывает. В опциях для политик поставил stop processing if rule match.

             ???

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

              В заголовке окна видна пометка "modified". Event processing policy вступает в силу только после того, как она сохранена на сервере. Эти тестовые изменения были сохранены?

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

                @wonderboy said in Приоритет алярма в зависимости от номера интерфейса:

                Спасибо за помощь, но сразу возник еще один вопрос.

                Так как на разном оборудовании разные порты могут быть серверными, транковыми и т.д.
                Решил в дескрипшенах писать что-то типа Trunk ... , User ... , Server ...
                И иметь всего 3 правила на все устройства.

                Пишу в политике для эвента SYS_IF_DOWN скрипт ($2 - содержит имя интерфейса в указанном выше формате):

                sub main() {
                if ($2 ~= "Trunk")
                {
                   return 1;
                }
                }
                

                Но вот видимо не срабатывает, потому что алярмы свой приоритет не меняют.

                PS: Stdout куда выводятся print, println это где? Куда нужно смотреть? 🙂

                Скрипт выглядит правильно. Stdout доступен только если скрипт запущен через nxscript. Приведенный выше скрипт можно протестировать например так:

                1. создать файл test.nxsl, скопировать в него скрипт;
                2. запустить команду
                nxscript -r test.nxsl param1 param2
                

                Результат будет примерно такой:

                C:\Source\NetXMS\debug>nxscript -r test6.nxsl param1 param2
                NetXMS Scripting Host  Version 1.1.0-rc10
                Copyright (c) 2005-2009 Victor Kirhenshtein
                
                Result = (null)
                
                C:\Source\NetXMS\debug>
                
                C:\Source\NetXMS\debug>nxscript -r test6.nxsl param1 Trunk
                NetXMS Scripting Host  Version 1.1.0-rc10
                Copyright (c) 2005-2009 Victor Kirhenshtein
                
                Result = 1
                
                C:\Source\NetXMS\debug>
                

                Если в скрипте для отладки нужна печать на экран, то можно использовать print / println:

                sub main()
                {
                   println "$2='" . $2 . "'";
                   if ($2 ~= "Trunk")
                   {
                      println "match";
                      return 1;
                   }
                   println "no match";
                }
                

                Получим

                C:\Source\NetXMS\debug>nxscript -r test6.nxsl param1 param2
                NetXMS Scripting Host  Version 1.1.0-rc10
                Copyright (c) 2005-2009 Victor Kirhenshtein
                
                $2='param2'
                no match
                Result = (null)
                
                C:\Source\NetXMS\debug>
                
                C:\Source\NetXMS\debug>nxscript -r test6.nxsl param1 Trunk
                NetXMS Scripting Host  Version 1.1.0-rc10
                Copyright (c) 2005-2009 Victor Kirhenshtein
                
                $2='Trunk'
                match
                Result = 1
                
                C:\Source\NetXMS\debug>
                
                1 Reply Last reply
                0
                • W
                  W
                  wonderboy
                  wrote on last edited by
                  #8

                  Всем спасибо! Сейчас все работает как надо. Видимо куда-то очень спешил  😕 и забыл сохранить Event processing policy!

                  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