Ad Widget

Collapse

Регулярные выражения

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Vellis
    Junior Member
    • Apr 2020
    • 7

    #1

    Регулярные выражения

    Добрый день.
    Существует задача, мониторить логи и получать уведомления, в случае обнаружения ошибок.
    В случае с наличием абсолютного пути до лог-файла (например C:\Product.Logs\Web\Pool1\log.txt, или C:\Product.Logs\Win\Service12\log.txt) никаких проблем не возникает:
    Click image for larger version

Name:	Снимок.PNG
Views:	257
Size:	34.5 KB
ID:	399834
    Однако, часть сервисов пишут лог с именем файла по дате, например log22042020.txt. Следовательно, использование абсолютного пути невозможно, так как он будет меняться каждый день.
    Составляем регулярное выражение, в нашем случае это ^log[0-9]{8}\.txt$, и следовательно, наш ключ и элемент данных должны выглядеть примерно следующим образом:
    Click image for larger version

Name:	2.PNG
Views:	276
Size:	23.1 KB
ID:	399835
    Однако, мы получаем ошибку:
    Cannot obtain information for file "C:/Product,Logs/Win/Service3/^log[0-9]{8}\.txt$": [2] No such file or directory

    Что делаю не так?
  • wins
    Senior Member
    • Sep 2014
    • 307

    #2
    Может надо использовать logrt?

    Comment

    • Vellis
      Junior Member
      • Apr 2020
      • 7

      #3
      Originally posted by wins
      Может надо использовать logrt?
      https://www.zabbix.com/documentation...ypes/log_items
      Вот элемент данных:
      Click image for larger version

Name:	2.PNG
Views:	256
Size:	18.0 KB
ID:	399851
      Вот непосредственно каталог с логом:
      Click image for larger version

Name:	Снимок.PNG
Views:	217
Size:	5.9 KB
ID:	399852
      Но получаю ошибку "Non-existing disk or directory".
      Last edited by Vellis; 22-04-2020, 16:15.

      Comment

      • Vellis
        Junior Member
        • Apr 2020
        • 7

        #4
        UPDATE:
        Регулярные выражения заработали, все корректно. Виндовые пути были указаны не корректно...
        Однако, после пересоздания всех необходимых триггеров и элементов данных - триггеры перестали попадать в проблемы.
        То есть, триггер есть и активен:
        Click image for larger version

Name:	тригер.PNG
Views:	243
Size:	43.1 KB
ID:	399938
        В "Последние данные", интересующие нас данные попадают:
        Click image for larger version

Name:	События.PNG
Views:	219
Size:	46.5 KB
ID:	399939
        Но почему-то не создается проблема:
        Click image for larger version

Name:	п1.PNG
Views:	201
Size:	53.3 KB
ID:	399940
        Click image for larger version

Name:	п2.PNG
Views:	209
Size:	47.3 KB
ID:	399941

        Comment

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

          #5
          У вас в триггере значение функции last() сравнивается с единицей. Но last() возвращает значение всего элемента данных, которое в данном случае - длинная текстовая строка (никак не равная единице).
          Тут нужна какая-то другая триггерная функция - например, str() или regexp() (для поиска нужной подстроки или регулярного выражения).

          Comment

          • Vellis
            Junior Member
            • Apr 2020
            • 7

            #6
            Originally posted by Kos
            У вас в триггере значение функции last() сравнивается с единицей. Но last() возвращает значение всего элемента данных, которое в данном случае - длинная текстовая строка (никак не равная единице).
            Тут нужна какая-то другая триггерная функция - например, str() или regexp() (для поиска нужной подстроки или регулярного выражения).
            Да, уже заметил ласт и начал фиксить свои 100500 тригеров которых копипастом сделал. Спасибо).

            Comment

            • Vellis
              Junior Member
              • Apr 2020
              • 7

              #7
              Можно закрывать топик.

              Comment

              • Eugene2012
                Member
                • Apr 2020
                • 31

                #8
                При мониторинге лога я хочу чтобы zabbix отбирал строку полностью которая содержит слово, например "myhost". Как может выглядеть регулярка? Вернее что указать в предообработке в поле output?
                Last edited by Eugene2012; 27-09-2021, 12:48.

                Comment

                Working...