Ad Widget

Collapse

Замена выводимого значения в #IFNAME

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nikl15
    Junior Member
    • Feb 2017
    • 16

    #1

    Замена выводимого значения в #IFNAME

    Добрый день! Опишу ситуацию. Создаю правило обнаружения сетевых интерфейсов и прототипы элементов данных для устройства. При создании прототипа элемента данных Interface {#IFNAME}: Bits received сами элементы данных создаются с именем типа Interface MO_FEMPORTID # 0 Slot # 6 (MGE_12_SUBBOARD ): Bits received, где значение макроса #IFNAME = MO_FEMPORTID # 0 Slot # 6 (MGE_12_SUBBOARD ). Это данные, которые отдает железка, но не очень читабельно для персонала, так как при работе с устройством порты пишутся в формате BS: MGE_port 1 и так далее, а в выводимых значениях счет начинается с нулевого порта. Поэтому вопрос: как можно заменить выводимые значения с "MO_FEMPORTID # 0(0-11 - прим.) Slot # 6 (MGE_12_SUBBOARD )" на "BS: MGE_port 1(1-12 - прим.)" в имени элементов данных?
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2

    {{#LLDMACRO}.regsub(pattern, output)}

    Comment

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

      #3
      Originally posted by Semiadmin
      {{#LLDMACRO}.regsub(pattern, output)}
      Боюсь, что регулярным выражением получится лишь вырезать какой-то кусок из строки, но не получится прибавлять единичку к номеру порта, как это хотелось бы автору вопроса:
      при работе с устройством порты пишутся в формате BS: MGE_port 1 и так далее, а в выводимых значениях счет начинается с нулевого порта.
      Могу лишь предположить, что в сетевом оборудовании может быть возможность добавлять каким-то образом (через веб-инетрфейс или командную строку) собственные комментарии к имени порта, которые будут доступны, скажем, как {#IFALIAS}, тогда можно было бы в правиле LLD использовать сразу две таблицы и для именования элементов данных использовать другой макрос.

      Comment


      • nikl15
        nikl15 commented
        Editing a comment
        А что если так сделать: создать прототип элемента данных, который будет получать данные имени портов в таком формате MO_FEMPORTID # 0 Slot # 6 (MGE_12_SUBBOARD ) далее через предобработку вырезать нужный символ (в данном случае 0) и менять его через функцию преобразования значений в вид BS: MGE_port 1. Тогда вопрос: можно ли значения этих элементов данных запихнуть в имя прототипов других элементов данных?
    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #4
      А что если так сделать: создать прототип элемента данных, который будет получать данные имени портов в таком формате MO_FEMPORTID # 0 Slot # 6 (MGE_12_SUBBOARD ) далее через предобработку вырезать нужный символ (в данном случае 0) и менять его через функцию преобразования значений в вид BS: MGE_port 1. Тогда вопрос: можно ли значения этих элементов данных запихнуть в имя прототипов других элементов данных?
      Увы, нет :-(

      Отвечайте, пожалуйста, отдельным сообщением, а не комментарием под чужой репликой.

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #5
        Коллега Kos прав, так не получится, не заметил, что надо еще 1 прибавлять. В этом случае можно применить js-препроцессинг в LLD rule, чтобы до обработки правилом корректировать получаемый JSON.

        Comment

        Working...