Ad Widget

Collapse

Преобразование MAC адреса в десятичную систему счисления

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • biverb
    Junior Member
    • May 2021
    • 19

    #1

    Преобразование MAC адреса в десятичную систему счисления

    Подскажите, пожалуйста, как сделать предобработку в правилах обнаружения и преобразовывать MAC адрес в десятичную систему счисления?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Покажите, пожалуйста, пример: в каком виде вы данные получаете, и в какой вид хотите их преобразовать.

    Comment

    • biverb
      Junior Member
      • May 2021
      • 19

      #3
      Originally posted by Kos
      Покажите, пожалуйста, пример: в каком виде вы данные получаете, и в какой вид хотите их преобразовать.
      Здравствуйте!

      Получаю в таком виде: .1.3.6.1.4.1.14988.1.1.1.2.1.3.c4:ad:34:50:3a:4c

      А хочу получать в таком: .1.3.6.1.4.1.14988.1.1.1.2.1.3.196.173.52.80.58.76 .1

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Originally posted by biverb
        Получаю в таком виде: .1.3.6.1.4.1.14988.1.1.1.2.1.3.c4:ad:34:50:3a:4c

        А хочу получать в таком: .1.3.6.1.4.1.14988.1.1.1.2.1.3.196.173.52.80.58.76 .1
        Спасибо, почти понятно. А единица в конце откуда берётся?

        Comment

        • biverb
          Junior Member
          • May 2021
          • 19

          #5
          Originally posted by Kos
          Спасибо, почти понятно. А единица в конце откуда берётся?
          Это OID: mtxrWlRtabStrength с оборудования mikrotik. Там несколько каналов: Ch0, Ch1, Ch2. В принципе единица неважна. Давайте ее пока пренебрежем. Ее мы после преобразования сможет "обыграть"

          Comment

          • Kos
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Aug 2015
            • 3404

            #6
            Если пренебречь последней единицей, то получается, например, так (используя препроцессинг JavaScript):
            Code:
            //разбиваем на части по разделителю "точка"
            var a = value.split('.');
            //последний элемент рабиваем на части по разделителю "двоеточие"
            var b = a[a.length-1].split(':');
            //и в цикле каждый его компонент преобразуем из HEX в DEC
            for (var i=0; i<b.length; i++) {
              b[i] = parseInt(b[i], 16)
            }
            //после чего собираем всё обратно
            a[a.length-1] = b.join('.');
            return a.join('.');
            Last edited by Kos; 25-05-2021, 15:16. Reason: Переименовал переменные, а то этим шрифтом цифра "1" и буква "l" выглядят одинаково, что сбивает с толку.

            Comment

            • biverb
              Junior Member
              • May 2021
              • 19

              #7
              Огромное Вам спасибо за Ваше внимание к моей проблеме и скрипт!

              Но видимо заббиксу этого мало

              До предобработки было так: .1.3.6.1.4.1.14988.1.1.1.2.1.3.c4:ad:34:50:3a:4c

              После предобработки но уровне элемента данных все так и осталось, а на уровне правил обнаружения появилась ошибка: Invalid discovery rule value: cannot parse as a valid JSON object: unexpected end of string data.

              Результат теста предобработки прилагаю.

              За любые идеи как это преодолеть, буду очень благодарен.
              Attached Files

              Comment

              • Kos
                Senior Member
                Zabbix Certified SpecialistZabbix Certified Professional
                • Aug 2015
                • 3404

                #8
                Originally posted by biverb
                Огромное Вам спасибо за Ваше внимание к моей проблеме и скрипт!

                Но видимо заббиксу этого мало

                До предобработки было так: .1.3.6.1.4.1.14988.1.1.1.2.1.3.c4:ad:34:50:3a:4c

                После предобработки но уровне элемента данных все так и осталось, а на уровне правил обнаружения появилась ошибка: Invalid discovery rule value: cannot parse as a valid JSON object: unexpected end of string data.

                Результат теста предобработки прилагаю.

                За любые идеи как это преодолеть, буду очень благодарен.
                Ну Вы же ничего не писали про то, что это должно использоваться в правилах LLD. Видимо, речь идёт о соседней теме.

                Этот скрипт ожидает не входе строку в том формате, как Вы указали:
                Code:
                .1.3.6.1.4.1.14988.1.1.1.2.1.3.c4:ad:34:50:3a:4c
                При использовании в правилах LLD на входе будет не одна строка такого вида, а сгенерированный Zabbix-ом JSON, где строка такого вида - лишь одно из полей.
                Поэтому логично, что скрипт ломается.
                Можно его доработать, чтобы он обрабатывал конкретные поля этого JSON-а, но мне кажется, что сначала надо разобраться с соседней темой - возможно, что никаких преобразований и не надо.

                Comment

                • biverb
                  Junior Member
                  • May 2021
                  • 19

                  #9
                  Originally posted by Kos
                  Ну Вы же ничего не писали про то, что это должно использоваться в правилах LLD. Видимо, речь идёт о соседней теме.

                  Этот скрипт ожидает не входе строку в том формате, как Вы указали:
                  Code:
                  .1.3.6.1.4.1.14988.1.1.1.2.1.3.c4:ad:34:50:3a:4c
                  При использовании в правилах LLD на входе будет не одна строка такого вида, а сгенерированный Zabbix-ом JSON, где строка такого вида - лишь одно из полей.
                  Поэтому логично, что скрипт ломается.
                  Можно его доработать, чтобы он обрабатывал конкретные поля этого JSON-а, но мне кажется, что сначала надо разобраться с соседней темой - возможно, что никаких преобразований и не надо.
                  Я тоже думал и продолжаю думать, что подобная метрика не должна собираться через столько терней: несколько обработок, Javascript код и прочее.

                  Видимо захожу не с той стороны.

                  присоединяйтесь к соседней теме

                  Comment

                  Working...