Ad Widget

Collapse

мониторинг логов ()пgоиск по словам)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • alekseyeng
    Member
    • Aug 2014
    • 54

    #1

    мониторинг логов ()пgоиск по словам)

    Уважаемые форумчане, прошу помочь в следующем вопросе:
    имеется ZAbbix server и установленный агент на OS Windows. Мне необходимо мониторить один из логов (пример пути С:\zabbix\test\test.log) по словам, к примеру по слову error. Облазил пол инета, но ничего не нашел.

    Вопрос: может ли вообще агент Zabbix под Виндой выполнить данную задачу (в *.nix я знаю что может) ? Если может то каким образом. Если не трудно киньте примеры конфигурации агента и самого zabbix.

    Заранее благодарю за помощь.
  • Genoa
    Junior Member
    • Jun 2014
    • 2

    #2
    Может легко просмотивать твой лог и регуляркой искать определенную фразу. В официальной документации все написано подробно. Агента у себя настраивал методами проб и ошибок, но настроил .
    p/s исходя из моего небольшого опыта прочтения данного форума - на простые вопросы здесь не всегда ответят ).
    ps ответ на свой вопрос нашел на англоязычной ветке

    Comment

    • filipp.sudanov
      Senior Member
      Zabbix Certified Specialist
      • May 2014
      • 137

      #3
      Вот в русской документации:


      Но лучше смотреть на английскую, русский перевод может быть устаревшим:

      Comment

      • alekseyeng
        Member
        • Aug 2014
        • 54

        #4
        Originally posted by genoa
        Может легко просмотивать твой лог и регуляркой искать определенную фразу. В официальной документации все написано подробно. Агента у себя настраивал методами проб и ошибок, но настроил :d.
        P/s исходя из моего небольшого опыта прочтения данного форума - на простые вопросы здесь не всегда ответят ).
        Ps ответ на свой вопрос нашел на англоязычной ветке
        Спасибо большое за ответ! отпишусь.

        Comment

        • alekseyeng
          Member
          • Aug 2014
          • 54

          #5
          создал Item: log["C:\log\report.log","error","UTF-8",100], и соответсвенно трригер: {NAME:log["C:\log\reports.log","error","UTF-8",100].str(error,30)}=1

          все вроде работает. Пищит когда нашел слово. Но не возвращает в состояние ОК когда в логе уже нет этого слова.


          Что делать ... подскажите

          Comment

          • filipp.sudanov
            Senior Member
            Zabbix Certified Specialist
            • May 2014
            • 137

            #6
            Item фильтрует только строки, в которых содержится "error" - log["C:\log\report.log","error","UTF-8",100]. Таким образом никаких других строк в логе как бы нет.
            Тут можно или вместо "error" указать глобальный regexp, в котором описать, чтоб он фильтровал кроме "error" еще и некие "ok" - тогда триггер будет сбрасываться.
            Или в триггерном выражении добавить еще условие по nodata() - если в логе "error" и последние данные пришли менее чем n минут, то тогда активизировать триггер.

            Comment

            • alekseyeng
              Member
              • Aug 2014
              • 54

              #7
              можете описать nodatа на моем примере ... ? а то уже запутался. В лог файле, который обновляется раз в день и при этом записывает новую инфу каждый день!

              как мне лучше сделать?

              Comment

              • alekseyeng
                Member
                • Aug 2014
                • 54

                #8
                {NAME:log["C:\log\reports.log","error"].nodata(35)}=0 вот какой триггер я сделал.
                но теперь он слово не ищет.
                вписываю слово error в лог руками и сохраняю, но никаких действий нет (((
                триггер передергивал на всякий случай

                Comment

                • filipp.sudanov
                  Senior Member
                  Zabbix Certified Specialist
                  • May 2014
                  • 137

                  #9
                  Попробуйте

                  {NAME:log["C:\log\reports.log","error","UTF-8",100].str(error,30)}=1 and {NAME:log["C:\log\reports.log","error"].nodata(35)}=0

                  т.е. здесь мы проверяем два условия - то что в последней строке лога есть ошибка И последняя строчка пришла менее, чем 35 секунд назад. Через некоторое время второе условие перестанет действовать и триггер вернется в ОК.

                  Comment

                  • alekseyeng
                    Member
                    • Aug 2014
                    • 54

                    #10
                    я до этого запускал {NAME:log["C:\log\reports.log","error"].nodata(35)}=0
                    да действительно, он ловит слово, начинает кричать, но через 35 сек все становиться ОК. Я бы хотел, чтоб если он поймал слово, то держал бы его пока она не исчезнет (т.е. пока лог не обновится, и в логе не будет этой ошибки), после этого он должен перейти в состояние ОК

                    Comment

                    • filipp.sudanov
                      Senior Member
                      Zabbix Certified Specialist
                      • May 2014
                      • 137

                      #11
                      Тогда отлично годится тот триггер, чтоб был в самом начале. А вот regexp в item'e нужно доработать, чтоб он пропускал не только ошибки, но и строки, сообщающие о том, что ошибка исчезла.

                      Comment

                      • alekseyeng
                        Member
                        • Aug 2014
                        • 54

                        #12
                        не совсем понял, как это можно реализовать. Если не трудно подскажите, а лучше киньте наглядный пример.
                        и не совсем понятно (А вот regexp в item'e нужно доработать, чтоб он пропускал не только ошибки, но и строки, сообщающие о том, что ошибка исчезла. )

                        Comment

                        • filipp.sudanov
                          Senior Member
                          Zabbix Certified Specialist
                          • May 2014
                          • 137

                          #13
                          Ок, возвращаемся к описанию item'a в самом начале.

                          log["C:\log\report.log","error","UTF-8",100]

                          Второй параметр - error - означает, что заббикс агент будет присылать на сервер только строки, содержащие error. Так сделано для того, чтоб не забивать сервер лишним мусором, который может быть в логе. Посмотрите Monitoring-->Latest data, History по этому item'у - там будет видно какие строки пришли на сервер.
                          Можно этот параметр просто убрать, тогда на сервер будет приходить все, что сыпется в лог:
                          log["C:\log\report.log",,"UTF-8",100]

                          Если у вас в логе строк не много, то можно так и оставить. Если много, то нам нужны только error и еще какая-то, сообщающая о том, что error починился, ну скажем fixed. Тогда можно написать так (кавычки, кстати, не обязательны):
                          log["C:\log\report.log",error|fixed,"UTF-8",100]

                          И теперь триггер
                          {NAME:log["C:\log\reports.log",error|fixed,"UTF-8",100].str(error)}=1
                          должен переходить в problem, при получении строки error и возвращатся в ok при получении fixed.
                          Last edited by filipp.sudanov; 12-08-2014, 14:25.

                          Comment

                          • alekseyeng
                            Member
                            • Aug 2014
                            • 54

                            #14
                            спасибо !!! получилось ... ))))

                            Comment

                            • alekseyeng
                              Member
                              • Aug 2014
                              • 54

                              #15
                              еще один вопрос:
                              Можно ли проследить в oracle, открыта ли база?

                              Comment

                              Working...