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. Высокие или низкие значения в history

Высокие или низкие значения в history

Scheduled Pinned Locked Moved Support (Russian)
23 Posts 5 Posters 117.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.
  • H
    H
    hsvt
    wrote on last edited by
    #3

    UP... проблема актуальна, один единственный роутер на котором как раз хотелось бы снимать загрузку интерфейсов и такие значения все графики портят, заметил так же что сильно высокие значения чаще всего проскакивают на Out интерфейсе. Если убирать Average delta per second - реальные значения одинаковые.

    1 Reply Last reply
    0
    • K
      K
      kozlov_ao
      wrote on last edited by
      #4

      Сделайте по 2 DCI для каждого вида изерений. В одном - с дельтой, а во втором - без (просто данные).
      При возникновении косяка в дельте - посмотрите, что указано в простом.

      А в принципе - я быфильтровал мега высокие и низкие значения.

      1 Reply Last reply
      0
      • H
        H
        hsvt
        wrote on last edited by
        #5

        @kozlov_ao said in Высокие или низкие значения в history:

        Сделайте по 2 DCI для каждого вида изерений. В одном - с дельтой, а во втором - без (просто данные).
        При возникновении косяка в дельте - посмотрите, что указано в простом.

        А в принципе - я быфильтровал мега высокие и низкие значения.

        Делал первым делом же, в простом всё в порядке, скриншот приложил.

        Как фильтровать? Alex предлагал такой скрипт:

        if ($1 < 0 || $1 > 100000) abort;
        

        В итоге у меня получилось так:

        return int64($1) * 8;
        if ($1 < 0 || $1 > 100000) abort;
        

        Как правильно нужно это вписать чтобы работало?


        delta.jpg

        no_delta.jpg

        1 Reply Last reply
        0
        • K
          K
          kozlov_ao
          wrote on last edited by
          #6

          Как вариант, можно так:

          val = int64($1) * 8;
          if (val < 0 || val > 10000000) abort;
          return val;
          
          1 Reply Last reply
          0
          • H
            H
            hsvt
            wrote on last edited by
            #7

            @kozlov_ao said in Высокие или низкие значения в history:

            Как вариант, можно так:

            val = int64($1) * 8;
            if (val < 0 || val > 10000000) abort;
            return val;
            

            Спасибо. Рабочий вариант для 10G.

            val = int64($1) * 8;
            if (val < 0 || val > 100000000000)
            {
            abort;
            }
            return val;
            
            1 Reply Last reply
            0
            • K
              K
              kozlov_ao
              wrote on last edited by
              #8

              Ну уж на кол-во нудей я внимания необращал..

              1 Reply Last reply
              0
              • H
                H
                Harun
                wrote on last edited by
                #9

                Я использую такой transformation script, спасает также от всплесков при перезагрузке устройств и обнулении счетчиков:

                value = $1 * 8;
                p = rindex ($dci->name,".") + 1;
                id = substr($dci->name, p);
                i = GetInterfaceObject($node, id);
                if (i != null && i->speed>0 && i->speed < value ) return null;
                return value;
                

                или для интерфейсов 10G

                value = int64($1) * 8L;
                p = rindex ($dci->name,".") + 1;
                id = substr($dci->name, p);
                i = GetInterfaceObject($node, id);
                if (i != null && i->speed>0 && i->speed < value ) return null;
                return value;
                

                Но очень нехватает шаблонов для создания DCI, есть стандартные шаблоны для интерфейсов bytes, bits, packets, error, нужен функционал добавления в шаблоны своих transformation script, иначе при создании dci приходится вручную лезть в data collection conf и добавлять код. Это очень сильно раздражает при необходимости быстро создать счетчик.

                Вот подобная тема:
                https://www.netxms.org/forum/e-eoe-o-koaot-netxms/dci-maximum-value/

                1 Reply Last reply
                0
                • H
                  H
                  hsvt
                  wrote on last edited by
                  #10

                  @harun said in Высокие или низкие значения в history:

                  Я использую такой transformation script, спасает также от всплесков при перезагрузке устройств и обнулении счетчиков:

                  value = $1 * 8;
                  p = rindex ($dci->name,".") + 1;
                  id = substr($dci->name, p);
                  i = GetInterfaceObject($node, id);
                  if (i != null && i->speed>0 && i->speed < value ) return null;
                  return value;
                  

                  или для интерфейсов 10G

                  value = int64($1) * 8L;
                  p = rindex ($dci->name,".") + 1;
                  id = substr($dci->name, p);
                  i = GetInterfaceObject($node, id);
                  if (i != null && i->speed>0 && i->speed < value ) return null;
                  return value;
                  

                  Но очень нехватает шаблонов для создания DCI, есть стандартные шаблоны для интерфейсов bytes, bits, packets, error, нужен функционал добавления в шаблоны своих transformation script, иначе при создании dci приходится вручную лезть в data collection conf и добавлять код. Это очень сильно раздражает при необходимости быстро создать счетчик.

                  Вот подобная тема:
                  https://www.netxms.org/forum/e-eoe-o-koaot-netxms/dci-maximum-value/

                  Больше спасибо! Только вот вчера когда общался с Виктором он написал следующее:

                  [15.08.2016 11:20:42] Victor Kirhenshtein: return null только для скриптов сбора данных уимеет смысл, не для трансформаций
                  [15.08.2016 11:20:49] Victor Kirhenshtein: надо использовать abort
                  [15.08.2016 11:21:28] Victor Kirhenshtein: при реальной трансформации все будет как надо
                  [15.08.2016 11:21:42] Victor Kirhenshtein: скрипт прервется, событие ошибки скрипта не будет создаваться
                  [15.08.2016 11:22:01] Victor Kirhenshtein: и сбор данных не пройдет, значения не будет

                  То есть лучше всё таки abort видимо?

                  1 Reply Last reply
                  0
                  • K
                    K
                    kozlov_ao
                    wrote on last edited by
                    #11

                    Да. При null - получишь провал.

                    1 Reply Last reply
                    0
                    • H
                      H
                      hsvt
                      wrote on last edited by
                      #12

                      При таком скрипте часто бывает значение в DCI << ERROR >> и фиксируется на одном времени, ни Force ни Clear не помогает, хотя при этом если сделать snmpwalk - счётчики с данными есть. 😞

                      Похоже нормально снимать показания с роутера всё таки не удастся...


                      519_error.png

                      walk_oids.png

                      1 Reply Last reply
                      0
                      • H
                        H
                        hsvt
                        wrote on last edited by
                        #13

                        Если использовать заместо abort; -> return null;

                        То есть получается при abort << ERROR >> и мин 40 он не пуллит данные, при null провалы.


                        null.jpg

                        null2.jpg

                        1 Reply Last reply
                        0
                        • K
                          K
                          kozlov_ao
                          wrote on last edited by
                          #14

                          Все логично.. abort прерывает операцию, а null - обнуляет показатель.
                          Ради спортивного интереса - попробуй return false;

                          1 Reply Last reply
                          0
                          • H
                            H
                            hsvt
                            wrote on last edited by
                            #15

                            @kozlov_ao said in Высокие или низкие значения в history:

                            Все логично.. abort прерывает операцию, а null - обнуляет показатель.
                            Ради спортивного интереса - попробуй return false;

                            Логично то логично, но только у меня чтоли такая проблема или никто показания с роутеров не снимает в NetXMS? Простая задача вылилась в геморрой какой то.

                            1 Reply Last reply
                            0
                            • K
                              K
                              kozlov_ao
                              wrote on last edited by
                              #16

                              У меня бывают резкие всплески, но не так часто...
                              Обхожусь простой фильтрацией.

                              1 Reply Last reply
                              0
                              • 2
                                2
                                2c2i
                                wrote on last edited by
                                #17

                                а нельзя просто снимать 64битный счетчик?

                                1 Reply Last reply
                                0
                                • H
                                  H
                                  hsvt
                                  wrote on last edited by
                                  #18

                                  @2c2i said in Высокие или низкие значения в history:

                                  а нельзя просто снимать 64битный счетчик?

                                  Так их и снимаю. В первом сообщении указывал...

                                  ifHCInOctets 1.3.6.1.2.1.31.1.1.1.6
                                  ifHCOutOctets 1.3.6.1.2.1.31.1.1.1.10

                                  1 Reply Last reply
                                  0
                                  • H
                                    H
                                    hsvt
                                    wrote on last edited by
                                    #19

                                    В общем проблема не решилась, использую в итоге такой скрипт от Harun отсюда

                                    Для 10G

                                    value = int64($1) * 8L;
                                    p = rindex ($dci->name,".") + 1;
                                    id = substr($dci->name, p);
                                    i = GetInterfaceObject($node, id);
                                    if (i != null && i->speed>0 && i->speed < value )
                                    	{
                                    		abort;
                                    	}
                                    else
                                    	{
                                    		return value;
                                    	}
                                    

                                    Для 1G

                                    value = $1 * 8;
                                    p = rindex ($dci->name,".") + 1;
                                    id = substr($dci->name, p);
                                    i = GetInterfaceObject($node, id);
                                    if (i != null && i->speed>0 && i->speed < value )
                                    	{
                                    		abort;
                                    	}
                                    else
                                    	{
                                    		return value;
                                    	}
                                    

                                    Спустя 1-2 недели смотрю в last values на роутере:

                                    Смысла в таком мониторинге не вижу ни какого, на одном из DCI вообще за 09.09.16 висит ERROR до сих пор. И какую информативность это мне принесёт и пользу ?


                                    lv.png

                                    lv2.png

                                    1 Reply Last reply
                                    0
                                    • H
                                      H
                                      hsvt
                                      wrote on last edited by
                                      #20

                                      При этом беру MIB Browser, завожу туда и проверяю там этот OID.

                                      Name/OID: .1.3.6.1.2.1.31.1.1.1.10.584; Value (Counter64): 15427630470559

                                      Ну и по другим соответственно тоже есть данные, там где показывается <<ERROR>>

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

                                        Добавьте threshold с функцией "Collection Error" - получите событие, которе можно как-то обработать.

                                        MIB Browser никак не относится к тому, что возвращает устройство - это просто база соответсвий текста на OID.

                                        Проверяйте при помощи nxsnmpget (и nxsnmpwalk). Если возвращает ошибку, хотя точно должно работать - попробуйте любую другую имплементацию SNMP клиента (например Net-SNMP).

                                        Пример:
                                        nxsnmpget DEVICE_IP .1.3.6.1.2.1.31.1.1.1.10.584

                                        1 Reply Last reply
                                        0
                                        • H
                                          H
                                          hsvt
                                          wrote on last edited by
                                          #22

                                          @alk said in Высокие или низкие значения в history:

                                          Добавьте threshold с функцией "Collection Error" - получите событие, которе можно как-то обработать.

                                          MIB Browser никак не относится к тому, что возвращает устройство - это просто база соответсвий текста на OID.

                                          Проверяйте при помощи nxsnmpget (и nxsnmpwalk). Если возвращает ошибку, хотя точно должно работать - попробуйте любую другую имплементацию SNMP клиента (например Net-SNMP).

                                          Пример:
                                          nxsnmpget DEVICE_IP .1.3.6.1.2.1.31.1.1.1.10.584

                                          Да вроде как относится.

                                          А что даст обработка этого события?
                                          По SNMP тогда попробую отправлять запросы в это время по разным имлементациям.


                                          mibgraph.png

                                          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