Ad Widget

Collapse

Мониторинг создания новых файлов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #16
    Originally posted by LeoZepp
    Задача немного иная: уведомлять что в папке c:\xxx\yyy\ появился новый файл. Расширение может быть произвольным, как и имя, и размер. Отключение триггера при удалении файла или автозакрытие спустя скажем 10мин.
    Ну, я ж написал про "доработать напильником" :-)
    Чем задача-то отличается? Тем, что не только XML-ы, а любые файлы? Ну так поменяйте в скрипте
    Code:
    dir /b C:\WORK\%DIR%\*.XML
    на
    Code:
    dir /b C:\WORK\%DIR%\*.*
    делов-то...
    Существеннее другая проблема, о которой я писал в комментарии этого скрипта:
    rem Скрипт корректно работает только с файлами, имеющими непересекающиеся имена.
    rem Например, если один файл называется 1.XML, а другой - 01.XML,
    rem то могут быть некорректные срабатывания.
    Но и она, по-моему, решаема. Скрипт, правда, ещё немного усложнится.

    Originally posted by Semiadmin
    А если так: написать LLD (например, парсинг вывода dir), прототип айтема: имя - имя файла, значение - размер. Прототип триггера на то, что размер >0.
    Да, через LLD тоже можно сделать. Но с LLD есть другие проблемы.

    1) работа самого механизма LLD занимает некоторое время (около 30-60 секунд). Другими словами, если есть скрипт, который отсылает используемый этим механизмом список (например, имён файлов), на основе которого генерируются элементы данных, то пересылать значения для этих элементов данных (размер файла, его дата последней модификации или ещё что-либо) можно только через минуту. Если раньше - значение просто пропадёт (соответствующего элемента данных на этом хосте ещё нет). Другими словами, между пересылкой списка и пересылкой самих значений должна пройти хотя бы минута.

    2) для данной задачи это не очень хорошо подходит, поскольку нас не интересует ни дата, на размер, ни содержимое этих файлов. Т.е. по сути нас интересует только их наличие. Ну ладно, можно совать в качестве значения, например, имя файла. Но, в любом случае, при пропадании такого файла если уже был сработавший триггер, то он не закроется, а перейдёт в состояние "unsupported" (и в своё время просто удалится). Т.е. если нужно оповещение при закрытии триггера - то в данном случае сделать это не получится.

    Originally posted by LeoZepp
    Тоже думал над этим, ведь при добавлении файла в папку меняется время изменения всей папки, соответственно сделать триггер на это: если последнее полученное значение отличается от текущего - аларм, автозакрытие после 10 минут.
    Проблема возникла в другом
    делаю Элемент данных (айтем) следующий:

    Тип:zabbix-agent
    ключ: vfs.file.time[c:\xxx\yyy\]
    Тип информаии: текст (не понял что именно указать, возможно числовой целый)

    Триггер:
    {dir:vfs.file.time[D:\Download].date()}>20161027

    И понятное дело - не отрабатывает как надо.
    Тут тип информации нужно выставлять "числовой, целое", а в качестве единиц измерения прописывать ключевое слово unixtime.
    Но возможна другая "засада": при удалении файла из папки её дата последней модификации тоже будет меняться или нет? В Unix/Linux - да, под Windows - не скажу, не знаю.

    Comment

    • LeoZepp
      Member
      • Jun 2016
      • 47

      #17
      Originally posted by Kos
      Тут тип информации нужно выставлять "числовой, целое", а в качестве единиц измерения прописывать ключевое слово unixtime.
      Но возможна другая "засада": при удалении файла из папки её дата последней модификации тоже будет меняться или нет? В Unix/Linux - да, под Windows - не скажу, не знаю.
      Да, меняется. В принципе - срабатывание на удаление появившегося файла не критично. Вопрос в том, как прописать триггер что бы он срабатывал на изменение даты?
      Code:
      {dir:vfs.file.time[D:\Download,modify].last(0)}<{dir:vfs.file.time[D:\Download,modify].date()}

      Comment

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

        #18
        Originally posted by LeoZepp
        Да, меняется. В принципе - срабатывание на удаление появившегося файла не критично. Вопрос в том, как прописать триггер что бы он срабатывал на изменение даты?
        Code:
        {dir:vfs.file.time[D:\Download,modify].last(0)}<{dir:vfs.file.time[D:\Download,modify].date()}
        Использовать триггерную функцию diff(). Но как Вы будете отличать срабатывание триггера оттого, что файл появился, от срабатывания триггера по причине удаления файла?

        Comment

        • LeoZepp
          Member
          • Jun 2016
          • 47

          #19
          Originally posted by kos
          Использовать триггерную функцию diff(). Но как Вы будете отличать срабатывание триггера оттого, что файл появился, от срабатывания триггера по причине удаления файла?
          Удаление файла происходит руками. Соответственно "удалил - увидел сообщение."

          Comment

          • LeoZepp
            Member
            • Jun 2016
            • 47

            #20
            Сделал мониторинг по дате,времени изменения файла, триггер на автозакрытие аларма через 10мин

            (шаблон в аттаче)
            Attached Files

            Comment


            • dezhnevo
              dezhnevo commented
              Editing a comment
              Спасибо, помогли!
          • mgkmgk
            Member
            • Apr 2020
            • 54

            #21
            Доброго дня, спасибо за шаблон !

            Есть задача парсить лог на предмет определенной записи в нем, плюс файл должен быть последним созданным в этой папке, может быть есть у кого то готовое решение ?

            Comment

            • mgkmgk
              Member
              • Apr 2020
              • 54

              #22
              Доброго дня, спасибо за шаблон !

              Есть задача парсить лог на предмет определенной записи в нем, плюс файл должен быть последним созданным в этой папке, может быть есть у кого то готовое решение ?

              Comment

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

                #23
                Originally posted by mgkmgk
                Доброго дня, спасибо за шаблон !

                Есть задача парсить лог на предмет определенной записи в нем, плюс файл должен быть последним созданным в этой папке, может быть есть у кого то готовое решение ?
                Ваша задача существенно отличается от той, которая обсуждалась в данной теме: вам нужно анализировать содержимое файла, а не просто ослеживать факт его появления.
                Для вашей задачи вполне можно использовать штатную метрику агента logrt[...].

                Comment


                • mgkmgk
                  mgkmgk commented
                  Editing a comment
                  Согласен, задача иная но я не стал создавать новый топик, может здесь подскажите ?
                  к примеру в C:\temp с различной периодичностью генеряться файлы формата ex12345.txt(в имени файлов 2 буквы и 5 цифр), нужно просматривать эти файлы и выводит алерт при обнаружении к примеру слова error.
                  Пробую: logrt[C:\temp\.*[0-9]{2,5}.log,"error"] - некорректный синтаксис около ".log,"error"]".
                  Что я делаю не так ?
                  Last edited by mgkmgk; 17-03-2021, 16:12.

                • Kos
                  Kos commented
                  Editing a comment
                  Вообще, лучше не комментировать чужие реплики, а отвечать отдельным сообщением (иначе вашу реплику почти никто не увидит, она не обновляет ветку обсуждения).

                  > Пробую: logrt[C:\temp\.*[0-9]{2,5}.log,"error"] - некорректный синтаксис около ".log,"error"]".

                  Попробуйте так:
                  Code:
                  logrt["C:/temp/.*[0-9]{2,5}\.log","error"]
                  Иначе кажется, что первая точка, заэкранированная обратным слэшем, - это часть имени файла, которое начинается с "temp".
              • mgkmgk
                Member
                • Apr 2020
                • 54

                #24
                Да, забыл ковычки, спасибо.
                Но скрипт не ловит файлы, т.е. и в последних событиях, нет реакции на создание любых файлов, что то не верно указано, можно указать, что бы прсматривал во обще любой вновь созданный файл в папке, без указания имени ?

                Comment

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

                  #25
                  Originally posted by mgkmgk
                  Да, забыл ковычки, спасибо.
                  Но скрипт не ловит файлы, т.е. и в последних событиях, нет реакции на создание любых файлов, что то не верно указано, можно указать, что бы прсматривал во обще любой вновь созданный файл в папке, без указания имени ?
                  Во-первых, там не только кавычки, но и слэши в другую сторону, а также экранирование точки перед расширением файла.
                  Во-вторых, метрика logrt имеет вполне конкретное описание в документации, в частности, первый параметр - это:
                  absolute path to file and regular expression describing the file name pattern
                  Т.е. для "любого" файла в папке "C:\temp" это параметр может выглядеть, например, так:
                  Code:
                  "C:/temp/^.*$"
                  В-третьих, если у вас в этой папке много файлов, то не ожидайте, что будет мониториться каждый из них. Мониториться будет только один, последний (см. также эту тему, где я совсем недавно разъяснял, как это работает).
                  Наконец, в четвёртых - ваша задача явно отличается от исходной, которая обсуждалась в этой ветке. Не лучше ли начать её обсуждение, открыв новую тему? Опишете свою задачу, что делаете, что ожидаете получить, что получается (а что - не получается); тогда будет больше вероятность ответить по существу.

                  Comment

                  • mgkmgk
                    Member
                    • Apr 2020
                    • 54

                    #26
                    Хорошо, создал новый топик:


                    Comment

                    Working...