Ad Widget

Collapse

мониторинг текстового файла

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • scorpio1379
    Junior Member
    • Jun 2015
    • 4

    #1

    мониторинг текстового файла

    Доброе время суток.
    я немного запутался в подходе к отображению информации о проблемах.
    zabbix`ом занимаюсь недавно однако плотно знаком HPOM и SCOM.
    цель: в нескольких лог файлах определять появление записей с меткой FATAL или ERROR и создавать оповещение об этом.
    для этого сделал два item`а которые через logrt собирают строки соответствующие меткам. к каждому item`у создал trigger (({Template:logrt["c:\tmp\tmpFile.*txt$",^ERROR.*$,,,skip,].regexp("ERROR")})<>0)

    trigger`ы переключаются и event`ы появляются
    теперь стоят 2 задачи
    а) закрывать руками конкретные отработанные event`ы (ACKNOWLEDGE добавляет Коментарии к событию но не закрывает его)
    б) если у trigger`а нет открытых event`ов переводить его в состояние OK до появления следующий строчки с меткой ERROR

    подскажите можно ли это осуществить в Zabbix ? я так же пробовал забирать в item каждую строчку а trigger`ом отлавливать вхождение подстроки ERROR, но тогда первая "нормальная" строчка переводит trigger в состояние OK и порождает "закрывающий" Event те создается видимость, что проблемы были ,но прошли. что неправильно.
  • rough-84
    Senior Member
    • Oct 2014
    • 198

    #2
    В ручную закрыть на сколько я знаю нельзя, да и как вы себе это представляете, триггер делает проверку при каждом новом поступившем элементе данных, заглушив 1 раз, он просто сработает при следующем пришедшем элементе.
    Чтобы выводить из состояния "Проблема" можно ведь делать проверку скажем в 5-10 последних пришедших данных. Допустим пришла ошибка, триггер сработал и будет висеть пока следующие 5-10 новых данных не будут содержать слово "error". Вопрос лишь в том что происходит когда появляется эта ошибка в логе, будет ли она появляться снова, или появится только тогда когда случится проблема новая, как вы определяете когда проблема решена, а когда нет.

    Comment

    • scorpio1379
      Junior Member
      • Jun 2015
      • 4

      #3
      Погодите.
      логика мониторинга файла журнала со стороны пользователя системы мониторинга следующая в логе мы имеем N нужных записей, на каждую запись породили Event. После анализа Event`а и\или восстановительных работ мы закрываем Event руками. если у Trigger`а нет незакрытых Event`ов то все ошибки обработаны и Trigger должен вернутся в состояние OK.
      данные в item поступают построчно и только то что не было считано в прошлый раз через ключ Logrt.

      можно ли как-нибудь
      1. возвращать trigger в состояние OK ели на нем нет незакрытых Event`ов?
      2. как-нибудь скрывать, или каким-либо образом закрывать Event`ы?

      Comment

      • rough-84
        Senior Member
        • Oct 2014
        • 198

        #4
        Я не большой специалист, но давайте разберёмся.
        1. log (logrt) парсит логи не полностью, а с момента последней проверки.
        Если в логе обнаружена ошибка он её запишет в новых данных, при следующей проверке, этой ошибки уже не будет, т.к парсинг будет происходить с того места где он закончил в прошлый раз. Хотя на мой взгляд элементы log (logrt) работают криво.
        2. Получив ошибку в элемента данных, мы можем построить триггер как у Вас, но искать строку в последних 5 полученных данных.
        Соответственно после того, как триггер сработает, пройдёт ещё 5 проверок лога, и если в новых данных ошибка не повторится, триггер перейдет в ОК.
        Поэтому я и спросил, как вы определяете что проблема устранена или нет, будут ли в логе появляться повторы данной ошибки, или нет.

        Comment

        • scorpio1379
          Junior Member
          • Jun 2015
          • 4

          #5
          а что кривого в log и logrt и какие есть варианты чтения строки из файла
          в том-то и дело, что trigger не должен восстанавливаться сам.
          trigger показывает была ли в источнике данных искомая строка во время проверки. меня это мало интересует, так как при монитоинге лога это не показатель.
          показателем является Event, что такая строка когда-либо БЫЛА.
          Ушла проблема или нет решать может только оператор и только руками.
          то что какая то ошибка повторяется то же мы не проверяем так-как механизма нормальной корреляции событий здесь нет.
          то что п последние 5 проверок никаких ошибок в логе не появилось - то же не показатель ничего, тем более работоспособности системы или правильности лога.
          мне скорее всего нужно правило как при описании гистерезиса.
          те тригер обращается в проблему если есть вхождение и в ок если у него число незакрытых сообщений == 0
          вопрос как это реализовать?

          Comment

          • Jimson
            Senior Member
            • Jan 2008
            • 1327

            #6
            Originally posted by scorpio1379
            1. возвращать trigger в состояние OK ели на нем нет незакрытых Event`ов?
            2. как-нибудь скрывать, или каким-либо образом закрывать Event`ы?
            Event это журнал переключения триггеров, просто журнал (история). На счет подтверждения (acknowledge) событий разработчики пока не приняли решения, нет единого мнения что надо делать с событием в случае его подтверждения: скрывать? на сколько скрывать? скрывать для всех или только для того кто поставил ack?
            Триггер переключать в зависимости от того что записано в events, естественно, нельзя, причина была озвучена в приключениях барона Мюнхаузена, когда он из болота выбирался.

            Comment

            • scorpio1379
              Junior Member
              • Jun 2015
              • 4

              #7
              спасибо за разъяснение.
              тогда в есть несколько вопросов
              1) acknowledge это подтверждение того , что проблема решается или не существенна. те это некое действие по скрытию оповещения о проблеме (причина же обычно не устранена) во других коммерческих системах этот вопрос решен так:
              сообщение можно закрыть и оно перестает быть видимым всем в активных сообщениях, но можно просмотреть закрытые сообщения фильтруя их по объектам мониторинга или по важности.
              понятно, что так как event это сообщение о состоянии trigger`а и никак не настраивается , то через него я никак на trigger не повлияю, но такой задачи и не стоит. кстати через action это то-же сделать не возможно?

              задача стоит написать условие trigger`а так что бы при проверки Trigger перечислял все event`ы с без атрибута acknowledge и если таких нет и строка из item`а не подпадает под выборку, то triger становился б OK.
              или сделать какую нибудь внутреннюю проверку с тем же результатом. Когда у trigerr`а все event`ы имеют статус acknowledged то trigger переходил бы в состояние OK до следующий проверки, переводящий его в статус problem.
              насколько я понял в условиях trigger`а я не могу использовать {TRIGGER.EVENTS.UNACK}

              мне б подошёл вот такой макрос точнее свойство "неподтвержденный тригер"

              {TRIGGERS.UNACK} X Количество неподтвержденных триггеров для элемента на картах сетей, без учета состояния триггера. Триггер считается не подтвержденным, если хотя бы одно его событие ПРОБЛЕМА не подтверждено. Поддерживается начиная 1.8.3.

              Comment

              • tremo
                Junior Member
                • Mar 2016
                • 11

                #8
                Originally posted by scorpio1379
                Доброе время суток.
                я немного запутался в подходе к отображению информации о проблемах.
                zabbix`ом занимаюсь недавно однако плотно знаком HPOM и SCOM.
                цель: в нескольких лог файлах определять появление записей с меткой FATAL или ERROR и создавать оповещение об этом.
                для этого сделал два item`а которые через logrt собирают строки соответствующие меткам. к каждому item`у создал trigger (({Template:logrt["c:\tmp\tmpFile.*txt$",^ERROR.*$,,,skip,].regexp("ERROR")})<>0)

                trigger`ы переключаются и event`ы появляются
                теперь стоят 2 задачи
                а) закрывать руками конкретные отработанные event`ы (ACKNOWLEDGE добавляет Коментарии к событию но не закрывает его)
                б) если у trigger`а нет открытых event`ов переводить его в состояние OK до появления следующий строчки с меткой ERROR

                подскажите можно ли это осуществить в Zabbix ? я так же пробовал забирать в item каждую строчку а trigger`ом отлавливать вхождение подстроки ERROR, но тогда первая "нормальная" строчка переводит trigger в состояние OK и порождает "закрывающий" Event те создается видимость, что проблемы были ,но прошли. что неправильно.
                Добрый день.
                Не могли бы поподробнее описать по настройке или же скинуть template?

                Comment

                Working...