Ad Widget

Collapse

Хотел создать вычисляемый элемент данных, опираясь на собираемом logrt

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sloner999
    Senior Member
    • Jan 2022
    • 101

    #1

    Хотел создать вычисляемый элемент данных, опираясь на собираемом logrt

    Добрый день.

    Собираются логи с сервера Linux

    logrt[/var/log/my/my.log]
    Тип: лог
    Активная проверка.

    Всё работает.

    Захотел вычислять из всей сумятицы значения, integer
    Создал вычисляемый элемент данных.

    Тип: Вычисляемое
    Числовой положительное

    Вот такую формулу придумал:

    find(/HOST14/logrt[/var/log/my/my.log],1d,,"[INFO ] The number of processed Points=([0-9]+)")

    Получаю в последних данных ошибку
    Cannot evaluate function: item "/host14/logrt[/var/log/my/my.log]" does not exist at "find(/HOST14/logrt[/var/log/my/my.log],1d,,"[INFO ] The number of processed Points=([0-9]+)")".

    Не правильную функцию использую? Подскажите как сделать, пожалуйста.
    В логах запись звучит как:
    [INFO ] The number of processed Points=3072
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Это можно делать прямо в ключе logrt, параметр output

    Comment

    • Sloner999
      Senior Member
      • Jan 2022
      • 101

      #3
      Originally posted by Semiadmin
      Это можно делать прямо в ключе logrt, параметр output
      А если план измениться и надо будет собирать скажем ещё 5-6 подобных значений? Через вычисляемый элемент мне кажется проще или я не прав?

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        Через вычисляемый заниматься обработкой логов в принципе неверно, поскольку за его период обновления может прийти несколько записей, и обработана будет только последняя.
        Тогда уж через препроцессинг или зависимые. Но я бы делал несколько айтемов logrt, если надо искать записи разного типа.​

        Comment

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

          #5
          Originally posted by Semiadmin
          Через вычисляемый заниматься обработкой логов в принципе неверно, поскольку...​
          Полностью присоединяюсь.
          "Курить вообще вредно, а кукурузу - ещё и бесполезно!"
          Так и тут - пытаться что-то извлечь через вычисляемые элементы данных при помощи функции find() бесполезно, поскольку она возвращает ноль или единицу (в зависимости от того, найдено или нет), а не фрагмент подстроки из исходного значения.

          Originally posted by Semiadmin
          Тогда уж через препроцессинг или зависимые.
          Я бы уточнил: либо делать несколько элементов данных (с параметром output), либо через сочетание (зависимые элементы данных + препроцессинг в каждом из них). Во втором случае в зависимых элементах данных нужное значение выдёргивается в препроцессинге при помощи регулярного выражения, но при этом обязательно нужно ставить галочку "Другое при ошибке" -> "Удалить", т.к. наверняка не в каждом поступающем значении будет то, что подпадает под указанное регулярное выражение.

          Comment

          Working...