Ad Widget

Collapse

Триггер на содержание в лог файле Linux определенных строк

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • nevidomyy
    Junior Member
    • Nov 2021
    • 11

    #16
    Originally posted by Semiadmin

    Ну я же писал: вставляете этот макрос в регулярку в триггерной функции regexp (в 5.4 find)
    Да, недопонял про 5.4. Временно вышел из ситуации так
    PHP Code:
    {Shablon:logrt:["/var/log/syslog/","SerialNumber:","UTF-8",100].regexp(*Serial\sNumber:\s12332321)}=and
    {
    Shablon:logrt:["/var/log/syslog/","SerialNumber:","UTF-8",100].regexp(*Serial\sNumber:\s22222222)}=
    И такой список до бесконечности, в теории если искомая строка не содержит ни одного из номеров перечисленных через and - то получим срабатывание тригера

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #17
      Так все должно и в 4.0 работать

      Comment

      • nevidomyy
        Junior Member
        • Nov 2021
        • 11

        #18
        Originally posted by Semiadmin
        Так все должно и в 4.0 работать
        Ну вот бьюсь с функцией find( Пока ничего не выходит, и в конструкторе выражения она тоже отсутствует

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #19
          Originally posted by nevidomyy

          Ну вот бьюсь с функцией find( Пока ничего не выходит, и в конструкторе выражения она тоже отсутствует
          так нет ее в 4.0, там функция regexp

          Comment

          • nevidomyy
            Junior Member
            • Nov 2021
            • 11

            #20

            Вот тут я ее использую.
            {Shablon:logrt:["/var/log/syslog/","SerialNumber:","UTF-8",100].regexp(*Serial\sNumber:\s12332321)}=0 and
            {
            Shablon:logrt:["/var/log/syslog/","SerialNumber:","UTF-8",100].regexp(*Serial\sNumber:\s22222222)}=0


            Если сравнивать с макросом - то работает, только если в макросе записано одно значение, а не целый список
            [CODE]{Shablon:logrt:["/var/log/syslog/","SerialNumber:","UTF-8",100].regexp(*Serial\sNumber:\s{$MACRO})}=0
            А в #MACRO такая строка 111|2222|3333

            Comment

            • Semiadmin
              Senior Member
              • Oct 2014
              • 1625

              #21
              Ну у меня же не так регулярка написана: .*Serial\sNumber:\s(?:{$MACRO})$
              Проверьте правильность регулярки на https://regex101.com, как советовал коллега wins.
              И всю регулярку в функции стоит взять в кавычки.

              Comment

              • nevidomyy
                Junior Member
                • Nov 2021
                • 11

                #22
                Originally posted by Semiadmin
                Ну у меня же не так регулярка написана: .*Serial\sNumber:\s(?:{$MACRO})$
                Проверьте правильность регулярки на https://regex101.com, как советовал коллега wins.
                И всю регулярку в функции стоит взять в кавычки.
                Спасибо. Заработало, но есть один минус данной реализации. Если в макросе прописаны серийные номера 12345678|98765432, то при нахождении в логе номера с содержимым 123 - триггер не среагирует, так как найдет вхождение.Думаю, надо добавить символ | в regexp , что бы искало от | и до |.
                Спасибо

                Comment

                • Semiadmin
                  Senior Member
                  • Oct 2014
                  • 1625

                  #23
                  | - это не просто разделитель, это логическое "или" для регулярки

                  Comment

                  Working...