Ad Widget

Collapse

Сумма значений с разных хостов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Wadim_Sch
    Member
    • Feb 2022
    • 83

    #1

    Сумма значений с разных хостов

    Можно ли каким-либо образом получить сумму значений с разных хостов?
    Задача в следующем: Есть некоторое количество счетчиков. Данные кВт/ч (Wh) этих счетчиков выводятся на dashboard в виде таблицы (Data overview). Хотелось бы получить на этом dashboard сумму значений этих датчиков.
    Наверняка подобные вопросы уже возникали, но я к сожалению пока ничего не нашел.
    Zabbix 6.0
  • vegushka
    Junior Member
    • Feb 2023
    • 6

    #2
    а если создать промежуточную вычисляемую метрику а-ля
    Code:
    last(/имя_хоста1/Wh)+last(/имя_хоста2/Wh)+last(/имя_хоста3/Wh)
    и уже ее выводить в dashboard?

    Comment

    • Wadim_Sch
      Member
      • Feb 2022
      • 83

      #3
      Спасибо!
      Сделал следующее временное решение:

      - Создал дополнительный "виртуальный" хост. На этом хосте настроил 4 интерфейса с 4-мя IP-адресами каждого счетчика.
      Click image for larger version

Name:	image.png
Views:	253
Size:	32.5 KB
ID:	485460
      - На этом хосте создал 4 Item-a (один для каждого счетчика):
      Click image for larger version

Name:	image.png
Views:	225
Size:	20.4 KB
ID:	485461

      - Создал пятый вычисляемый Item
      Click image for larger version

Name:	image.png
Views:	243
Size:	24.4 KB
ID:	485462

      "В лоб" задача решена но теперь хочется красоты и универсальности.


      В процессе поиска решения натолкнулся на Агрегированные вычисления, которыми раньше никогда не пользовался. Попытался создать ещё один вычисляемый Item с формулой: sum(last_foreach(/Janitza_SUMME_TEST/Summe.[*])) но Zabbix пишет: Cannot evaluate expression: no input data for function at "sum(last_foreach(/Janitza_SUMME_TEST/Summe.[*]))"
      Click image for larger version

Name:	image.png
Views:	225
Size:	20.7 KB
ID:	485463

      Так же здесь прочитал: https://www.zabbix.com/documentation...ated/aggregate "Агрегированные вычисления" не требуют наличия какого-либо агента, запущенного на наблюдаемом узле сети."
      Понятно что для вычисления мне нужны данные которые уже содержаться в базе данный Zabbix. Тогда какой интерфейс выбирать при создании "виртуального" хоста?
      Click image for larger version

Name:	image.png
Views:	226
Size:	26.8 KB
ID:	485464
      ​​Если интерфейс не выбрать здеcь, то его надо будет выбрать для Item-a

      Может быть я вообще "Агрегированные вычисления" не правильно понимаю?

      Прошу прощения за может быть тупые вопросы, но в Zabbix-e я не эксперт, я занимаюсь им время от времени.

      Comment

      • vegushka
        Junior Member
        • Feb 2023
        • 6

        #4
        у вас ведь уже есть 4 хоста с нужными данными. зачем делать 5й и в нем повторно все собирать? В узле Zabbix Server сделайте вычисляемый элемент и в формуле укажите
        Code:
        sum(last_foreach(/*/Wh))
        будет сумма по всем хостам элемента Wh.

        Comment

        • Wadim_Sch
          Member
          • Feb 2022
          • 83

          #5
          A.... Вот оно что . Что-то я не подумал что сам узел "Zabbix Server" можно использовать.

          Всё действительно заработало и на dashboard теперь из узлa "Zabbix Server" собирается сумма. Единственно надо будет поэкспериментировать с масками имен узлов. Мне не очень нравится что собирается по всем узлам, так как однотипных узлов будет много и суммировать нужно группами в зависимости от того, где они находятся. Но это уже другая история.


          Спасибо!
          Last edited by Wadim_Sch; 13-06-2024, 11:47.

          Comment

          • vegushka
            Junior Member
            • Feb 2023
            • 6

            #6
            Попробуйте использовать группы узлов
            Code:
            last_foreach(/*/ключ?[group="группа узлов сети"])

            Comment

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

              #7
              Originally posted by vegushka
              Попробуйте использовать группы узлов
              Code:
              last_foreach(/*/ключ?[group="группа узлов сети"])
              ...или теги (помечая нужные узлы соответствующими тегами)

              Comment

              Working...