Ad Widget

Collapse

Создание триггеров для лог-файла

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • k.s.gleboff
    Junior Member
    • Aug 2016
    • 1

    #1

    Создание триггеров для лог-файла

    Доброго времени суток, уважаемые Форумчане.
    Прошу не судить строго, найденное решение задачи наверняяка далеко от совершенства, более красиво пока решить не получается.

    Итак, не так давно погрузился в тему Zabbix на следующей задаче: есть система, в процессе своей работы пишет лог, из которого интересны 2 строки вида:
    1)начальное событие, идентифицируется наличием в строке последовательности символов "|1|15|". Строка должна появиться строго в период 08:30 до 09:00. Если после 09:00 строка в это время не появилась, должен загораться триггер "Отсутствует начальное событие" и горит до тех пор пока не начнется период ожидания конечного события.
    2)конечное событие, идентифицируется наличием в строке последовательности символов "|1|16|. Должна появится в период с 17:30 о 18:00, если после 18:00 строки в логе нет - зажигаем триггер "Отсутствует конечное событие" и горит до тех пор пока на начнется период ожидания начального события следующего дня.

    Пока применил такое вот решение: разбил периоды горения триггеров на начальное и конечное события (если ожидаемые строки в логе не появятся) на несколько интервалов и в зависимости от этого смотрел через функцию nodata() какое время нет событий, собранных соответствующим итемом.
    1)начальные события "StarEvent":
    шаблон:SystemMY
    итем: log[{$system_syslog_evt},\|1\|15\|,windows-1251]
    триггер{RabisNP:log[{$system_syslog_evt},\|1\|15\|,windows-1251].nodata(210m)}=1&{SystemMY:log[{$system_syslog_evt},\|1\|15\|,windows-1251].time(0)}>090000&{SystemMY:log:log[{$system_syslog_evt},\|1\|15\|,windows-1251].time(0)}<120000)|({SystemMY:log:log[{$system_syslog_evt},\|1\|15\|,windows-1251].nodata(390m)}=1&{SystemMY:log:log[{$system_syslog_evt},\|1\|15\|,windows-1251].time(0)}>120000&{SystemMY:log:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}<150000)|({SystemMY:log:log[{$system_syslog_evt},\|1\|15\|,windows-1251].nodata(540m)}=1&{SystemMY:log:log[{$system_syslog_evt},\|1\|15\|,windows-1251].time(0)}>150000&{SystemMY:log:log[{$system_syslog_evt},\|1\|15\|,windows-1251].time(0)}<173000)

    2)конечные события
    шаблон:SystemMY
    итем: log[{$system_syslog_evt},\|1\|16\|,windows-1251]
    триггер{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].nodata(150m)}=1&{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}>180000&{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}<200000)|({SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].nodata(270m)}=1&{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}>200000&{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}<220000)|({SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].nodata(390m)}=1&{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}>220000&{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}<240000)|({SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].nodata(900m)}=1&{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}>000000&{SystemMY:log[{$system_syslog_evt},\|1\|16\|,windows-1251].time(0)}<083000)

    Пытался решить проблему созданием вычисляемого итема для начала на примере начального события созданием итема: str("log[{$system_syslog_evt},\|1\|15\|,windows-1251]","\|1\|15\|",30)
    Далее хотел создать на него два триггера, один - что открывающее событие не появилось вовремя, а второй: когда конкретно оно появилось (чтобы далее умжножать время на 1 и брать максимум за период, если 0 события нет, если не 0 есть). Но итем не собирал события, система пишет ошибку вычисления.

    Прошу помочь в решении вопросов:
    1)по первому способу без вычисляемых итемов можно ли задачу решить используя штатный функционал Zabbix?
    2)можно ли вычисляемый тип итема применять к логам?
Working...