Ad Widget

Collapse

Как вывести IP-адрес с метриками на панель?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Алексей Чернышенко
    Junior Member
    • Jul 2021
    • 19

    #1

    Как вывести IP-адрес с метриками на панель?

    Коллеги, всех приветствую!

    Вопрос: как вывести на панели IP-адрес узла сети? Например, как на картинке ниже.
    Click image for larger version

Name:	Снимок экрана в 2021-08-05 19-30-27.png
Views:	548
Size:	24.4 KB
ID:	429317 Click image for larger version

Name:	Снимок экрана в 2021-08-05 19-34-00.png
Views:	529
Size:	58.7 KB
ID:	429318
  • johndoe2374
    Member
    • Aug 2021
    • 80

    #2
    Приветствую!

    Первое изображение - это так, как должно быть или как у вас? Попробовал у себя добавить панель с обзором данных (v5.4.3), но там все элементы данных хоста подряд выдаются, не получается выбрать только то, что нужно. Если вы пытаетесь вывести адрес именно интерфейса, то мне кажется, так к нему обратиться не получится. Разве что отдельный элемент данных SNMP агента создать, который будет опрашивать OID с адресом конкретного интерфейса и выводить этот элемент. Ну и ещё можно попробовать макрос {HOST.IP} использовать.
    Last edited by johndoe2374; 06-08-2021, 10:10.

    Comment

    • Алексей Чернышенко
      Junior Member
      • Jul 2021
      • 19

      #3
      Originally posted by johndoe2374
      Приветствую!

      Первое изображение - это так, как должно быть или как у вас? Попробовал у себя добавить панель с обзором данных (v5.4.3), но там все элементы данных хоста подряд выдаются, не получается выбрать только то, что нужно. Если вы пытаетесь вывести адрес именно интерфейса, то мне кажется, так к нему обратиться не получится. Разве что отдельный элемент данных SNMP агента создать, который будет опрашивать OID с адресом конкретного интерфейса и выводить этот элемент. Ну и ещё можно попробовать макрос {HOST.IP} использовать.
      На первой картинке изображено то, что хотелось бы видеть в итоге, но с заполненной колонкой IP-адресов интерфейсов из настроек самого Заббикса.

      Макросы пробовал, но подстановки не происходит. =( На ум приходит вариант использования внешнего скрипта, который будет дёргать API и получать IP интерфейса. Сама метрика будет забираться через внешнюю проверку.

      Comment

      • johndoe2374
        Member
        • Aug 2021
        • 80

        #4
        А у вас получилось как-то выборочно выводить элементы данных на панели через виджет "Обзор данных"? У меня так выходит только если использовать элементы "Простой текст" и этот виджет ещё выводит историю значений. В духе такого (на примере элементов "System name" у двух микротиков):
        Click image for larger version

Name:	1.jpg
Views:	340
Size:	58.6 KB
ID:	429366

        Тут либо я не просто не знаю, как это сделать, либо может эту возможность убрали в новых версиях. Думаю, можно попробовать ещё такие варианты:

        1. В стандартном шаблоне MikroTik есть правила обнаружения сетевых интерфейсов, единственное, что в них нет прототипов элеменов данных, содержащих адреса интерфейсов. Я не очень разбирался в обнаружении с помощью SNMP, но мне кажется, что можно просто добавить прототип данных для адресов и потом уже использовать обнаруженные элементы данных в панелях.

        2. Для хоста создать элемент типа "Zabbix (внутренний)", ключ - zabbix[host,discovery,interfaces], возвращает JSON массив, который описывает сетевые интерфейсы узла сети в Zabbix. А далее просто добавить предобработку, которая выдернет из JSON только адрес. Кажется, там как-то через JSONPath можно, не изучал. Но тут по сути только текст обработать, чтобы чистый IP получить.

        По идее проще использовать внутренний элемент, это по сути то же самое, что и с API работать, только не придётся внешний скрипт городить.

        Пример возвращаемого значения через "zabbix[host,discovery,interfaces]":
        [{"{#IF.CONN}":"10.0.0.1","{#IF.IP}":"10.0.0.1", "{# IF.DNS}":"","{#IF.PORT}":"161","{#IF.TYPE}":"SNMP" ,"{#IF.DEFAULT}":1,"{#IF.SNMP.BULK}":1,"{#IF.SN MP. VERSION}":"SNMPv3"}]
        Attached Files

        Comment


        • johndoe2374
          johndoe2374 commented
          Editing a comment
          Вот как предобработка выглядит, кажется нормально срабатывает:
          $.[0].['{#IF.CONN}']
      • johndoe2374
        Member
        • Aug 2021
        • 80

        #5
        Разобрался, как выводить данные на панель в таком виде, один человек подсказал - для этого надо использовать теги элементов данных (новая система вместо ранее существовавших групп элементов):

        Comment

        • Алексей Чернышенко
          Junior Member
          • Jul 2021
          • 19

          #6
          Originally posted by johndoe2374
          2. Для хоста создать элемент типа "Zabbix (внутренний)", ключ - zabbix[host,discovery,interfaces], возвращает JSON массив, который описывает сетевые интерфейсы узла сети в Zabbix. А далее просто добавить предобработку, которая выдернет из JSON только адрес. Кажется, там как-то через JSONPath можно, не изучал. Но тут по сути только текст обработать, чтобы чистый IP получить.

          По идее проще использовать внутренний элемент, это по сути то же самое, что и с API работать, только не придётся внешний скрипт городить.
          Для меня оказалось более простым и доступным решением написать свой скрипт и дёргать API, но ваш способ тоже интресен, хотя он для меня не так прост для понимания. В любом случае спасибо!

          Кстати, по этому же принципу теперь могу выводить на панель не только IP-адреса узлов сети, но и комментарии к хосту, которые хранятся в отдельном макросе хоста.

          Click image for larger version

Name:	Снимок экрана в 2021-08-08 16-18-57.png
Views:	330
Size:	22.7 KB
ID:	429435 Click image for larger version

Name:	Снимок экрана в 2021-08-08 16-19-30.png
Views:	331
Size:	35.7 KB
ID:	429436 Click image for larger version

Name:	Снимок экрана в 2021-08-08 16-20-55.png
Views:	332
Size:	15.4 KB
ID:	429437
          Attached Files

          Comment

          Working...