Ad Widget

Collapse

Отправка последнего значения из итема (обработка log-файла)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Wehavemegapixels
    Junior Member
    • Aug 2019
    • 2

    #1

    Отправка последнего значения из итема (обработка log-файла)

    Добрый день.
    Очень надеюсь на помощь форумчан.

    Zabbix 3.0.27.
    Item раз в 5 минут проверяет содержимое *.log-файла по ключу:
    log["/[path]/test.log","[Ee]xception|ORA-","UTF-8",100,"skip"]
    Item связан с триггером выражением:
    {HOSTNAME:log["/[path]/test.log","[Ee]xception|ORA-","UTF-8",100,"skip"].iregexp(exception|ora-)}=1
    and
    {HOSTNAME:log["/[path]/test.log","[Ee]xception|ORA-","UTF-8",100,"skip"].nodata(60)}<>1
    В целом такая логика работает и устраивает нас.
    Но есть загвоздка в получении уведомлений по почте. Если item разово выгружает сразу несколько строк (а такое бывает часто), то, насколько я понимаю, триггер среагирует на первую пришедшую строку и проигнорирует остальные.
    А хотелось бы получить по почте только последнее значение (error 3 в примере), но чтобы при этом в мониторинге Zabbix для историчности отображались все строки, которые выгрузил item.

    По-разному менял макросы в тексте рассылки — результат одинаков. Пробовал следующие макросы:
    • {{HOST.HOST}:{ITEM.KEY}.last()}
    • {{HOST.HOST}:{ITEM.KEY}.last(#1-9)}
    • {ITEM.VALUE}
    • {ITEM.VALUE1-9}
    • {ITEM.LASTVALUE}
    • {ITEM.LASTVALUE1-9} [Примечание. Да, я знаю, что этот макрос указывает на N-й элемент данных, а не на N-ое значение. Но попробовать-то стоило]
    По всем макросам рассылка приходит только с первой строкой.

    В абстрактном примере ниже item разово выгрузит строки 3-5, триггер сработает на первую же строку и в письме я получу только «Exception error 1», а ошибки 2 и 3 не будут браться в расчёт.

    [String 1] OK DATA 1
    [String 2] OK DATA 2
    [String 3] Exception error 1
    [String 4] Exception error 2
    [String 5] Exception error 3
    В русском help имеется уточнение: «Zabbix не гарантирует точный порядок значений, если в истории существуют более двух значений менее чем за секунду».
    Если проверять мой item в «Мониторинге», то действительно, все данные выгружаются разово и все в течение одной секунды.
    Вопрос знатокам. Это уточнение из help — это непреложная истина и нет вообще никаких вариантов сделать то, что я пытаюсь сделать? Возможно, я что-то делаю не так? Возможно, за прошедшее время уже появилось решение и просто я не смог его нагуглить?

    Заранее спасибо за ответы и помощь.
Working...