Ad Widget

Collapse

Требуется помощь в модернизации триггера

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Tallo23
    Member
    • Oct 2018
    • 57

    #1

    Требуется помощь в модернизации триггера

    Всем доброго дня,

    имеется триггер, который читает лог одной утилиты


    Code:
    {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str(ERROR:)}=1
    если он находит строку ERROR: , то он срабатывает.

    Условие восстановления

    Code:
    {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str("Received Echo Response (Success)")}=1
    если находит слово Received Echo Response (Success) , то проблема решена!

    вопрос следующий, как сделать триггер, что бы он срабатывал не после первого ERROR:, а после двух подряд?
  • teddy
    Senior Member
    • Dec 2017
    • 234

    #2
    Originally posted by Tallo23
    Всем доброго дня,

    имеется триггер, который читает лог одной утилиты


    Code:
    {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str(ERROR:)}=1
    если он находит строку ERROR: , то он срабатывает.

    Условие восстановления

    Code:
    {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str("Received Echo Response (Success)")}=1
    если находит слово Received Echo Response (Success) , то проблема решена!

    вопрос следующий, как сделать триггер, что бы он срабатывал не после первого ERROR:, а после двух подряд?
    Выражение триггера должно быть где так:
    Code:
    {4VIEW1:logrt.COUNT[C:\dcmtk\bin\LOG_KURAGINO.log,"*ERROR:*",,,skip]}>2
    Только если у вас нет ротации логов ( а судя по фиксированному имени то нет ) то быстрее работает:
    Code:
    {4VIEW1:log.COUNT[C:\dcmtk\bin\LOG_KURAGINO.log,"*ERROR:*",,,skip]}>2

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #3
      Правда, есть нюанс. log.count посчитает количество ошибок за интервал обновления, но не факт, что эти записи будут идти подряд. Впрочем, это, наверное, и не требуется.

      Comment

      • Tallo23
        Member
        • Oct 2018
        • 57

        #4
        Originally posted by teddy

        Выражение триггера должно быть где так:
        Code:
        {4VIEW1:logrt.COUNT[C:\dcmtk\bin\LOG_KURAGINO.log,"*ERROR:*",,,skip]}>2
        Только если у вас нет ротации логов ( а судя по фиксированному имени то нет ) то быстрее работает:
        Code:
        {4VIEW1:log.COUNT[C:\dcmtk\bin\LOG_KURAGINO.log,"*ERROR:*",,,skip]}>2
        у меня же используется logrt , это же логи с ротацией

        наверное нужно добавить , что утилита делает проверку доступности по эху пакс раз в 10 минут, прошло эхо или не прошло

        Comment

        • Tallo23
          Member
          • Oct 2018
          • 57

          #5
          Originally posted by Semiadmin
          Правда, есть нюанс. log.count посчитает количество ошибок за интервал обновления, но не факт, что эти записи будут идти подряд. Впрочем, это, наверное, и не требуется.
          думаю что все таки требуется, если два еррора подряд, то триггер должен среагировать, если один еррор , а потом саксес, то не должен среагировать

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #6
            Если перефразировать ваше условие, 2 error подряд - то же самое, что ни одного success за 2 проверки. Тогда триггер
            {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str("Received Echo Response (Success)",#2)}=0

            Comment

            • Tallo23
              Member
              • Oct 2018
              • 57

              #7
              Originally posted by Semiadmin
              Если перефразировать ваше условие, 2 error подряд - то же самое, что ни одного success за 2 проверки. Тогда триггер
              {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str("Received Echo Response (Success)",#2)}=0
              а это мысль, попробую! а как часто стоит проверку делать , если логи дописываются раз в 10 минут?

              Comment

              • Semiadmin
                Senior Member
                • Oct 2014
                • 1625

                #8
                думаю, и проверять можно раз в 10 мин.

                Comment

                • Tallo23
                  Member
                  • Oct 2018
                  • 57

                  #9
                  Originally posted by Semiadmin
                  Если перефразировать ваше условие, 2 error подряд - то же самое, что ни одного success за 2 проверки. Тогда триггер
                  {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str("Received Echo Response (Success)",#2)}=0
                  вопрос -

                  Code:
                  {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str("ERROR:",#2)}=1
                  не тоже самое?

                  Comment

                  • Semiadmin
                    Senior Member
                    • Oct 2014
                    • 1625

                    #10
                    Нет, т.к. этот триггер сработает при хотя бы одном error в последних 2 проверках, т.е. как при одном, так и при двух. См. описание функции str.

                    Comment

                    • Tallo23
                      Member
                      • Oct 2018
                      • 57

                      #11
                      Originally posted by Semiadmin
                      Нет, т.к. этот триггер сработает при хотя бы одном error в последних 2 проверках, т.е. как при одном, так и при двух. См. описание функции str.
                      да, прочитал, понял! а последними 2мя проверками считается 2 последних изменения лога или 2 интервала чтения лога?

                      Comment

                      • Semiadmin
                        Senior Member
                        • Oct 2014
                        • 1625

                        #12
                        2 последних полученных из лога значения

                        Comment

                        • Tallo23
                          Member
                          • Oct 2018
                          • 57

                          #13
                          Originally posted by Semiadmin
                          Если перефразировать ваше условие, 2 error подряд - то же самое, что ни одного success за 2 проверки. Тогда триггер
                          {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str("Received Echo Response (Success)",#2)}=0
                          такой триггер работал как-то не корректно, срабатывал и тут же восстанавливался, не понял почему. Чуток переделал и вроде работает нормально, теперь так он выглядит

                          Code:
                          {4VIEW1:logrt[C:\dcmtk\bin\LOG_KURAGINO.log].str("Received Echo Response (Success)",1200)}=0
                          решил ко времени привязать, если за последние 20 минут условие не выполняется, тогда возникает проблема. в целом спасибо за помощь.

                          Comment

                          Working...