Ad Widget

Collapse

Мониторинг лога

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • aleksey.ishchenko
    Senior Member
    • May 2020
    • 187

    #1

    Мониторинг лога

    Если лог файл в нем строка
    23-06-10 07:21:37,055 INFO : Apache ActiveMQ 5.15.13 (localhost, ID:ib-app1-01-55118-1685040907692-1:1) is shutting down, значение (localhost, ID:ib-app1-01-55118-1685040907692-1:1) ​ кажый раз разное, как-то можно сделать, чтобы пропускать строку (localhost, ID:ib-app1-01-55118-1685040907692-1:1) , а мониторить строку вида ActiveMQ…is shutting down​​

  • Answer selected by aleksey.ishchenko at 28-06-2023, 05:21.
    Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    Да - можно.
    Делается регулярными выражениями.
    log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output >,<maxdelay>,<options>,<persistent dir>]

    ​В вашем случае что-то типа "^.*ActiveMQ.*is shutting down​​.*$"
    В помошь - https://regex101.com/

    https://www.zabbix.com/documentation...ypes/log_items

    https://www.zabbix.com/documentation...sions#overview
    Last edited by Hamardaban; 22-06-2023, 16:46.

    Comment

    • Hamardaban
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • May 2019
      • 2713

      #2
      Да - можно.
      Делается регулярными выражениями.
      log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output >,<maxdelay>,<options>,<persistent dir>]

      ​В вашем случае что-то типа "^.*ActiveMQ.*is shutting down​​.*$"
      В помошь - https://regex101.com/

      https://www.zabbix.com/documentation...ypes/log_items

      https://www.zabbix.com/documentation...sions#overview
      Last edited by Hamardaban; 22-06-2023, 16:46.

      Comment

      • aleksey.ishchenko
        Senior Member
        • May 2020
        • 187

        #3
        В триггере тоже должно быть регулярное выражение?
        {Monitoring Tomcat log Ibank:log["C:\iBank2\logs\tomcat.log","^.*ActiveMQ.*is shutting down.*$"].iregexp(^.*ActiveMQ.*is shutting down.*$,1m)}=1

        Comment

        • Hamardaban
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • May 2019
          • 2713

          #4
          Регулярка в log отбирает нужное на уровне агента - в забикс приходит только нужное.
          Регулярка в триггере срабатывает на сервере.
          Есть несколько способов построить триггер - вам выбирать как.

          Например можно использовать logcount и тогда в базу будут приходить не строки а целые числа (что меньше) с которыми проще работать(графики\триггеры)
          Last edited by Hamardaban; 23-06-2023, 10:21.

          Comment

          • aleksey.ishchenko
            Senior Member
            • May 2020
            • 187

            #5
            но я почему-то в последних данных не вижу историю этого эл-та данных, так и дожно быть?

            Comment

            • Hamardaban
              Senior Member
              Zabbix Certified SpecialistZabbix Certified Professional
              • May 2019
              • 2713

              #6
              Если данные поступают - конечно их должно быть видно.
              Если ничего нет - смотрите в первоисточнике были ли "подходящие" данные . Если да - нужно разбираться с регуляркой (подходит\нет) и траблшутить логи агента.

              Comment

              • Avgu
                Junior Member
                • Jun 2023
                • 5

                #7
                Originally posted by aleksey.ishchenko
                но я почему-то в последних данных не вижу историю этого эл-та данных, так и дожно быть?
                я у себя писал скрипты которые эмулировали событие - то есть тупо запихивали текст в в лог но такой который я знал что на него сработает regexp. Для начала - пока не освоил или не нашел правильный regexp vможно отлавливать просто по подстроке "is shutting down​". В ITEM типа log приедет вся строка целиком. Понять что оно работает и потом допиливать уже напильником. и потом обработку на count делать или на что то еще

                Comment

                • aleksey.ishchenko
                  Senior Member
                  • May 2020
                  • 187

                  #8
                  А как сделать выражение восстановления, log["C:\iBank2\logs\tomcat.log","^.*ActiveMQ.*.is shutting down.*$"], так работает,? Тоже через регулярное выражение ^.*ActiveMQ.*.is starting.*$ " или иначе?

                  Comment

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

                    #9
                    Originally posted by aleksey.ishchenko
                    А как сделать выражение восстановления, log["C:\iBank2\logs\tomcat.log","^.*ActiveMQ.*.is shutting down.*$"], так работает,? Тоже через регулярное выражение ^.*ActiveMQ.*.is starting.*$ " или иначе?
                    Ну я бы делал именно так. Только с некоторыми поправками.
                    Искать при помощи триггерной функции выражение "^.*ActiveMQ.*.is starting.*$ " в возвращаемом значении будет бесполезно, т.к. у вас регулярное выражение в самом элементе данных написано так, что оно будет присылать на сервер только сообщения об останове сервиса, но не о его старте.
                    Т.е. для начала нужно подкорректировать регулярное выражение в ключе элемента данных, например:
                    Code:
                    log["C:\iBank2\logs\tomcat.log","^.*ActiveMQ.* is (shutting down|starting)"]
                    Такой элемент данных будет пересылать на сервер Zabbix строки, содержащие либо "ActiveMQ[...] is shutting down", либо "ActiveMQ[...] is starting".
                    Тогда в условии триггера можно просто искать в строке фразу "is shutting down": если она есть - это проблема, соответственно если её нет (т.е. пришло "... is starting") - то восстановление.

                    Comment


                    • aleksey.ishchenko
                      aleksey.ishchenko commented
                      Editing a comment
                      Спасибо
                      Сделал выражение восстановления через отдельный элемент данных и указал его в триггере восстановления

                    • Kos
                      Kos commented
                      Editing a comment
                      Моя основная мысль заключалась в том, что дополнительный элемент данных не нужен. Нужно только подкорректировать исходный элемент данных, чтобы в него попадали строки не только о том, что (условно говоря) "стало плохо", но и о том, что "стало хорошо" (и ничего более). Тогда получается единственный элемент данных и единственный триггер с очень простым условием: нашли подстроку о том, что "стало плохо" - триггер срабатывает, не нашли - закрывается.
                  Working...