Ad Widget

Collapse

мониторить наличие файлов с определенным расширением в каталоге

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • aleksey.ishchenko
    Senior Member
    • May 2020
    • 187

    #1

    мониторить наличие файлов с определенным расширением в каталоге

    Добрый день
    подскажите возможно ли мониторить наличие файлов с определенным расширением в каталоге и если файлы находятся там дольше 15 минут то это алерт. Имена файлов уникальные.
    Папка не пустая, имеются другие файлы и папки. Необходимо оповещение если файл(ы) лежат в папке более 15 минут (брать время создания первого файла, если будут появляться новые файлы). Сброс триггера при удалении или перемещении файла.

    Делаю шаблон, создаю элемент данных
    vfs.dir.count ["D: \ ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,,900]

    Создаю триггер
    vfs.dir.count["D: \ ABS \ EXPORT \ iBank",,,file,,0,1,,900,,].last(#1)}>0

    Но получаю ошибку
    • Некорректное выражение триггера. Проверьте часть выражения начиная с "vfs.dir.count["D: \ ABS \ EXPORT \ iBank",,,file,,0,1,,900,,].last(#1)}>0".

    В чем ошибка?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Если это не опечатка, то вы в триггере пытаетесь сослаться на другой элемент данных (возможно, несуществующий).
    У вас элемент данных указан с ключом:
    Code:
    vfs.dir.count ["D: \ ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,,900]
    А в триггере используется:
    Code:
    vfs.dir.count["D: \ ABS \ EXPORT \ iBank",,,file,,0,1,,900,,]
    К тому же в выражении триггера есть закрывающая фигурная скобка, но нет открывающей.

    Comment

    • aleksey.ishchenko
      Senior Member
      • May 2020
      • 187

      #3
      ключ вот такой
      vfs.dir.count["D: \ ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,,900]
      Триггер изменил конструктором стал так
      {Template exchange IBANK -ABS:vfs.dir.count["D: \ ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,,900].count(900)}>0
      Но все равно неправильно
      задаю условие, выбираю элемент данных функция count, при проверке item ошибка
      • Не удалось отправить запрос: узел сети без наблюдения. В списке Item ошибка Cannot obtain directory information: [2] No such file or directory

      Click image for larger version  Name:	trig.jpg Views:	0 Size:	79.4 KB ID:	403555
      Attached Files
      Last edited by aleksey.ishchenko; 18-06-2020, 12:16.

      Comment

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

        #4
        В списке Item ошибка Cannot obtain directory information: [2] No such file or directory
        Ну так человеческим же языком говорит, что не может найти такую директорию. С пробелами, обрамляющими с обеих сторон первый обратный слэш в пути. Если, конечно, это не опечатка.
        Code:
        "D: \ ABS\EXPORT\iBank"
        Т.е. проблема не в том, что триггер не срабатывает, а в том, что элемент данных переходит в неподдерживаемое состояние.

        Comment

        • aib
          Senior Member
          • Jan 2014
          • 1615

          #5
          In addition: You cannot send the request because you are configuring TEMPLATE, not the real HOST to which template was linked.
          Because if that you are receiving error message "Не удалось отправить запрос: узел сети без наблюдения"
          Sincerely yours,
          Aleksey

          Comment

          • aleksey.ishchenko
            Senior Member
            • May 2020
            • 187

            #6
            В конструкторе получаю такое выражение триггера, пробелы убрал. Это верное выражение для триггера? Срабатывание по условию, что файлы с расширением .uxf находятся в каталоге больше 15 минут.

            {Template exchange IBANK -ABS:vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,,9 00].count(900)}>0

            Comment

            • aib
              Senior Member
              • Jan 2014
              • 1615

              #7
              Для начала, мне кажется немного неточное выражение было применено для Элемента данных
              vfs.dir.count["D: \ ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,,900]
              Описание:
              vfs.dir.count[директория,<regex_вкл>,<regex_искл>,<типы_вкл>,<ти пы_искл>,<макс_глубина>,<мин_размер>,<макс_размер> ,<мин_возраст>,<макс_возраст>]
              Подставляем ваши данные
              - Директория - "D:\ABS\EXPORT\iBank"
              - <regex_вкл> - "(?i)^.+\.uxf$"
              - <regex_искл> - ПРОПУСК
              - <типы_вкл> - file
              - <типы_искл>,<макс_глубина>,<мин_размер>,<макс_разм ер>,<мин_возраст> - ПРОПУСК
              - <макс_возраст> - 900

              Я бы предложил удалить одну запятую перед числом 900, чтобы этот параметр стал параметром <мин_возраст>
              мин_возраст - минимальный возраст подсчитываемой записи директории. Записи, которые изменены раньше не будут подсчитаны. Целочисленное значение в виде секунд. Можно использовать суффиксы времени.
              Тогда этот Элемент данных будет подсчитывать количество файлов, которые были созданы более, чем 900 секунд (или 15 минут) назад

              В этом случае триггер будет создать проще - нам надо оценивать Последнее значение и реагировать, если оно больше 0
              Code:
              {Template exchange IBANK -ABS:vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,900].last(0)}>0
              Sincerely yours,
              Aleksey

              Comment

              • aleksey.ishchenko
                Senior Member
                • May 2020
                • 187

                #8
                как вернуть триггер в состояние ок?
                ключ элемента данных вот такой vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,, ,,900]
                сам триггер вот так выглядит {Exchange IBANK -ABS:vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,, ,,900].last(0)}>0.
                Он срабатывает если файлы не менялись больше 15 минут, если каталог пустой и нет ничего то по условию восстановления {Exchange IBANK -ABS:vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,, ,,900].nodata(10)}<>1 и нет папок в каталоге триггер закрывается, если есть папки, триггер не закрывается.
                Attached Files
                Last edited by aleksey.ishchenko; 23-11-2020, 12:28.

                Comment

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

                  #9
                  Originally posted by aleksey.ishchenko
                  как вернуть триггер в состояние ок?
                  ключ элемента данных вот такой vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,, ,,900]
                  сам триггер вот так выглядит {Exchange IBANK -ABS:vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,, ,,900].last(0)}>0.
                  Он срабатывает если файлы не менялись больше 15 минут, если каталог пустой и нет ничего то по условию восстановления {Exchange IBANK -ABS:vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,, ,,900].nodata(10)}<>1 и нет папок в каталоге триггер закрывается, если есть папки, триггер не закрывается.
                  Честно говоря, я не вижу смысла в таком выражении восстановления - на мой взгляд, оно избыточно и ничего полезного не делает.
                  Что же касается того, что при наличии подпапок триггер не закрывается, то видимо, это следствие не того, что есть подпапка, а того, что в этой подпапке есть файлы, попадающие под исходный шаблон (т.е. с расширением ".uxf"). Проверьте по последним данным (экран Latest data), возвращаются ли нулевые значения, когда внутри искомой папки файлов нет, но есть подпапка, о которой Вы пишите.
                  Если файлы во вложенных подпапках считать не надо, то добавьте в ваш ключ ещё и параметр max_depth (шестой по счёту), выставив его в ноль. По умолчанию он равен "-1" (т.е. считать все файлы во всех вложенных подпапках на неограниченную глубину).

                  Comment

                  • aleksey.ishchenko
                    Senior Member
                    • May 2020
                    • 187

                    #10
                    Originally posted by Kos

                    Честно говоря, я не вижу смысла в таком выражении восстановления - на мой взгляд, оно избыточно и ничего полезного не делает.
                    Что же касается того, что при наличии подпапок триггер не закрывается, то видимо, это следствие не того, что есть подпапка, а того, что в этой подпапке есть файлы, попадающие под исходный шаблон (т.е. с расширением ".uxf"). Проверьте по последним данным (экран Latest data), возвращаются ли нулевые значения, когда внутри искомой папки файлов нет, но есть подпапка, о которой Вы пишите.
                    Если файлы во вложенных подпапках считать не надо, то добавьте в ваш ключ ещё и параметр max_depth (шестой по счёту), выставив его в ноль. По умолчанию он равен "-1" (т.е. считать все файлы во всех вложенных подпапках на неограниченную глубину).
                    вот так vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,90 0 max_depth=0] ?
                    Last edited by aleksey.ishchenko; 23-11-2020, 14:45.

                    Comment

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

                      #11
                      Originally posted by aleksey.ishchenko
                      вот так vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,,,,90 0 max_depth=0] ?
                      Нет, вот так:
                      Code:
                      vfs.dir.count["D:\ABS\EXPORT\iBank","(?i)^.+\.uxf$",,file,,0,,,900]

                      Comment

                      • aleksey.ishchenko
                        Senior Member
                        • May 2020
                        • 187

                        #12
                        А закрывать только вручную получается теперь или он сам закроется?

                        Comment

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

                          #13
                          Originally posted by aleksey.ishchenko
                          А закрывать только вручную получается теперь или он сам закроется?
                          А как вам надо?
                          Если оставите только выражение проблемы, убрав выражение восстановления (соответственно, переставив переключатель "OK event generation" из положения "Recovery expression" в положение "Expression") - закроется сам, когда искомых файлов в данной папке не будет. Оставите выражение восстановления - закроется в соответствии с ним. Только, повторюсь, нынешнее выражение восстановления бессмысленно: оно у вас всегда выполняется, поэтому ничего полезного не добавляет.

                          Comment


                          • aleksey.ishchenko
                            aleksey.ishchenko commented
                            Editing a comment
                            Спасибо большое. Все получилось
                        Working...