Ad Widget

Collapse

Мониторинг лога, поиск записи за промежуток времени

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mgkmgk
    Member
    • Apr 2020
    • 54

    #1

    Мониторинг лога, поиск записи за промежуток времени

    Добрый день!
    Задача: парсить лог на предмет наличия в нем определенной записи за определенный промежуток времени, например если в течении 10 минут этой фразы не будет, срабатывает триггер.
    Элемент:
    log["C:\1.txt","Scheduler5min processed successfully"]

    ищем запись Scheduler5min processed successfully
    что должно быть в триггере, что бы он сработал при отсутсвии этой строки в течении 10 минут ?
    Получается только наоборот, срабатывает при обнаружении...
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Code:
    {HOST:log["C:\1.txt","Scheduler5min processed successfully"].count(10m)}=0
    Но я бы для данной задачи использовал лучше другой элемент данных - не log[...], а log.count[...], который бы выставил проверяться с нужным интервалом (10 минут):
    Code:
    {HOST:log.count["C:\1.txt","Scheduler5min processed successfully"].last()}=0

    Comment

    • mgkmgk
      Member
      • Apr 2020
      • 54

      #3
      Правильно я понимаю, что элемент:
      log.count["C:\1.txt","Scheduler5min processed successfully"] с интервалом обновления 10 минут
      и триггер
      {HOST:log.count["C:\1.txt","Scheduler5min processed successfully"].last(10m)}=0

      будет осуществляться опрос файла раз в 10 на предмет поиска в нем записи "Scheduler5min processed successfully" за последние 10 минут ?

      Comment

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

        #4
        Originally posted by mgkmgk
        Правильно я понимаю, что элемент:
        log.count["C:\1.txt","Scheduler5min processed successfully"] с интервалом обновления 10 минут
        и триггер
        {HOST:log.count["C:\1.txt","Scheduler5min processed successfully"].last(10m)}=0

        будет осуществляться опрос файла раз в 10 на предмет поиска в нем записи "Scheduler5min processed successfully" за последние 10 минут ?
        Да, именно так.
        При использовании ключей log[...] или log.count[...] поиск всегда выполняется с того места, на котором остановились на предыдущей итерации (либо с начала файла, если он был ротирован). Т.е. при интервале 10 минут - получается, что выборка делается за последние 10 минут.
        Однако, это нормально работает в случае, если новые данные дописываются в один и тот же файл не очень интенсивно. Если файл каждый раз перезаписывается заново, либо если данных пишется много, то есть шанс либо пропустить какие-то данные, либо за одну итерацию не успеть обработать то, что накопилось с прошлого раза. В этом случае правильнее использовать подход, предлагаемый коллегой cyber: интервал делать поменьше (не 10, а, скажем, одну минуту), а в триггерной формуле оценивать не одно (последнее) значение, а множество значений за последние 10 минут.

        Comment

        • cyber
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • Dec 2006
          • 4811

          #5
          Check for pattern once a minute and use the simple nodata(10m)=1 function. No matches returned for 10m ... trigger.
          Or if you want to use log.count, then you can use max(10m)=0. If only 0-s have been returned for 10 minutes (no matches), it will trigger. At least one higher value during 10m and...

          Comment

          Working...