Ad Widget

Collapse

Обработка логов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sognatore
    Junior Member
    • Mar 2018
    • 23

    #1

    Обработка логов

    Суть вопроса такова.
    Необходимо построить график по событиям логов. К примеру, если строка появилась в логе, то Zabbix должен получать значение "1", если появилась другая строка - значение "0".
    Пробовал делать через скрипт, добавленный в автозагрузку клиента, где через tail -f и grep мониторились записи, но этот вариант не сработал, т.к. число строк в логе за секунду большое, и zabbix_sender спустя какое-то время перестает отправлять данные.Причина скорее всего в софте клиента.
    Затем пытался сделать через preprocessing итема, но либо я не до конца понял принцип работы, либо что-то еще
    в preprocessin выбрал Regular expression, прописал маску и то, что должно получаться на выходе:
    pattern - [default][INFO] [0-9]+-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+,[0-9]+: program_start
    output - 1
    сама строка выглядит так:
    [default][INFO] 2018-05-18 12:12:12,123: program_start
    возможно я неправильно прописываю маску, либо это надо делать как-то по-другому.
  • Sognatore
    Junior Member
    • Mar 2018
    • 23

    #2
    Переделал шаблон, чтобы grep по нему находил строки
    pattern - \[default\]\[INFO\] [0-9]+\-[0-9]+\-[0-9]+ [0-9]+\:[0-9]+\:[0-9]+\,[0-9]+\: program\_start
    grep выдает строки и полное совпадение,
    а Zabbix пишет
    Item preprocessing step #1 failed: cannot perform regular expression match on value [default][INFO] 2018-05-18 12:12:12,123: program_start of type "string": pattern does not match

    Comment

    • Sognatore
      Junior Member
      • Mar 2018
      • 23

      #3
      Если кому-то понадобится что-то подобное, опишу свое решение:
      1 шаг:
      Pattern - \[default\]\[INFO\] [0-9]+\-[0-9]+\-[0-9]+ [0-9]+\:[0-9]+\:[0-9]+\,[0-9]+\: program\_(start|stop)
      value - \110
      2 шаг:
      Pattern - \b.{5}(.)
      value - \1
      3 шаг:
      Перевод из Hexadecimal в Decimal

      Объясню, что делается в шагах:
      В 1 шаге задается общий паттерн на оба варианта строки, в value уходит то, что в скобках (start|stop) (\1) в зависимости от строки, и добавляется в конце 10 - start10 | stop10
      В шаге 2 обрезается и выводится 6-ой символ, у start10 - 1, stop10 - 0
      В 3 шаге перевод в 10-чное значение, чтоб можно было использовать на графиках.

      Comment

      Working...