Ad Widget

Collapse

Виджет Item Value и строки

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Azt
    Junior Member
    • Mar 2025
    • 16

    #1

    Виджет Item Value и строки

    Здравствуйте.
    Может вопрос очень нубский, но помогите разобраться: Zabbix получает строку со значениями через запятую и соответственно виджет Item Value так и показывает это значение (т.е. всю строку). Возможно ли как-то разбить строку на отдельные подстроки и через виджет их вывести не одной строкой, а чтоб каждое значение было с новой строки? Пробовал в Preproccesing через JavaScript разделить строку по запятой и вернуть каждый элемент массива, но возвращается одно значение, пробовал перевести массив обратно в строку с разделителем \n - в результате все равно виджет выводит все одной строкой... Может можно еще как-то разделить значения и вывести каждое отдельно? Через регулярные выражения может, но не понимаю как? Или виджет Item Value выводит значение только одной строкой? Версия Zabbix 7.4.9. Или может еще какие есть варианты разбить строку и вывести значения отдельно через какой-нибудь другой виджет?
  • guntis_liepins
    Member
    • Oct 2025
    • 58

    #2
    А пример строки есть?
    Я думаю можно с сделать regexp preprocessing, используя capture groups и dependent item но надо видеть как эта строка выглядит.
    JavaScript то же самое - dependent item

    Comment

    • Azt
      Junior Member
      • Mar 2025
      • 16

      #3
      Строка - результат выполнения скрипта на МикроТик:
      Code:
      :foreach i in=[/interface wireguard peers find where allowed-address ~"10.1.100"  last-handshake <00:02.30] do={
              :local n [/interface wireguard peers get $i name];
              :put "$n,";
              }
      Если скрипт выполнить на МикроТике (добавив вывод в лог) - значения выводятся построчно.
      А вот когда Zabbix получает значение - то визуально вроде и построчно (скриншот приложил), но в итоге все равно как будто получается строка и, соответственно, виджет выводит все значения в одну строку.
      В Preproccesing так же примитивный JavaScript (пробовал и просто массив возвращать, и через for возвращать массив и в итоге просто возвращается строка с \n):
      Code:
      var name = value.split(",");
      var peers = '';
      for (var i = 0; i < name.length; i++) {
       peers += name[i] + '\n';
      }
      return peers;
      Attached Files

      Comment

      • guntis_liepins
        Member
        • Oct 2025
        • 58

        #4


        Не так красиво , но можно использовать Item History с HTML форматированием.
        Хотя с можно JavaScript preprocess поменять HTML стиль.


        Click image for larger version  Name:	image.png Views:	11 Size:	7.4 KB ID:	513049 Click image for larger version  Name:	image.png Views:	11 Size:	52.3 KB ID:	513050 Click image for larger version  Name:	image.png Views:	8 Size:	27.6 KB ID:	513051
        Attached Files
        Last edited by guntis_liepins; Today, 13:50.

        Comment

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

          #5
          1) покажите на скриншоте пример того, как выглядят исходные данные в Latest data (возможно, там и так значение выглядит так, как вам нужно).
          2) виджет "Item value" всегда показывает значение в одну строку, о чём недвусмысленно говорится в документации:
          String values are displayed on a single line and truncated, if needed.
          3) возможно, вам более предпочтительными окажутся другие виджеты, где можно корректно отобразить многострочное значение - например, "Item history" (ссылка).

          Comment

          Working...