Ad Widget

Collapse

Мониторинг наличия файлов в каталоге

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • aleksey.ishchenko
    Senior Member
    • May 2020
    • 187

    #1

    Мониторинг наличия файлов в каталоге

    Есть задача проверять файлы в каталоге и если они старше 60 дней то алерт, вооще любых файлов,а не определенного типа.
    vfs.dir.count["D:\BACKUP"","(?i)^.+\.*$",,file,,,,,,60d] правильное ли выражение? Zabbix 6.4
  • Answer selected by aleksey.ishchenko at 09-04-2025, 09:36.
    Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    Originally posted by aleksey.ishchenko
    Есть задача проверять файлы в каталоге и если они старше 60 дней то алерт, вооще любых файлов,а не определенного типа.
    vfs.dir.count["D:\BACKUP"","(?i)^.+\.*$",,file,,,,,,60d] правильное ли выражение? Zabbix 6.4
    Не совсем правильное, на мой взгляд:
    • в первом параметре лишняя закрывающая кавычка, делающая весь ключ некорректным;
    • во втором параметре зачем-то задано регулярное выражение, требующее оканчивать имя файла любым количеством необязательных точек. Зачем? Если имя файла не важно, этот параметр можно просто не указывать;
    • "60d" задано 10-м параметром, т.е. ограничивающим максимальный возраст файла (более старые файлы учитываться не будут). Для вашей задачи нужно обратное: посчитать файлы возрастом не менее 60 дней (чтобы убедиться, что таких файлов нет, а если есть, то тогда алерт), то есть это должно быть не 10-м, а 9-м параметром.
    Я бы оставил так:
    Code:
    vfs.dir.count["D:\BACKUP",,,file,,,,,60d]

    Comment

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

      #2
      Originally posted by aleksey.ishchenko
      Есть задача проверять файлы в каталоге и если они старше 60 дней то алерт, вооще любых файлов,а не определенного типа.
      vfs.dir.count["D:\BACKUP"","(?i)^.+\.*$",,file,,,,,,60d] правильное ли выражение? Zabbix 6.4
      Не совсем правильное, на мой взгляд:
      • в первом параметре лишняя закрывающая кавычка, делающая весь ключ некорректным;
      • во втором параметре зачем-то задано регулярное выражение, требующее оканчивать имя файла любым количеством необязательных точек. Зачем? Если имя файла не важно, этот параметр можно просто не указывать;
      • "60d" задано 10-м параметром, т.е. ограничивающим максимальный возраст файла (более старые файлы учитываться не будут). Для вашей задачи нужно обратное: посчитать файлы возрастом не менее 60 дней (чтобы убедиться, что таких файлов нет, а если есть, то тогда алерт), то есть это должно быть не 10-м, а 9-м параметром.
      Я бы оставил так:
      Code:
      vfs.dir.count["D:\BACKUP",,,file,,,,,60d]

      Comment

      • Pochinok
        Senior Member
        • Oct 2024
        • 114

        #3
        Kos vfs.dir.count["D:\BACKUP","",,file,,30d] а этот будет работать? или перед ,,file две кавычки верхних лишние будут?

        Comment

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

          #4
          Originally posted by Pochinok
          Kos vfs.dir.count["D:\BACKUP","",,file,,30d] а этот будет работать? или перед ,,file две кавычки верхних лишние будут?
          Разумеется, не будет. Но не из-за второго параметра, а из-за шестого (где должно быть число, а у вас указана строка - "30d").

          Comment

          • Pochinok
            Senior Member
            • Oct 2024
            • 114

            #5
            Kos Благодарю, а то случайно зашел, увидел ваш ответ, я +- таким же делом занят, тогда сейчас поменяю на число и буду проверять. Спасибо вам

            Comment

            • Pochinok
              Senior Member
              • Oct 2024
              • 114

              #6
              Kos vfs.dir.count["D:\BACKUP","",,file,,2592000] вот так получается? 2592000 - 30 дней × 24 часа × 60 минут × 60 секунд

              Comment

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

                #7
                Originally posted by Pochinok
                Kos vfs.dir.count["D:\BACKUP","",,file,,2592000] вот так получается? 2592000 - 30 дней × 24 часа × 60 минут × 60 секунд
                Нет, я имел в виду другое: шестой параметр - это не вообще не про возраст файла, это максимальная глубина сканируемых поддиректорий (ссылка).
                Возраст файлов, которые нужно посчитать (минимальный или максимальный) - это девятый и десятый параметры соответственно, и там можно использовать суффиксы времени.
                Что же касается того, можно ли использовать пустую строку в качестве регулярного выражения (второй параметр) - честно говоря, фиг его знает, надо пробовать. Навскидку кажется, что можно (пустое регулярное выражение должно совпадать с чем угодно), но зачем?

                Comment

                • Pochinok
                  Senior Member
                  • Oct 2024
                  • 114

                  #8
                  Kos Как всегда, Спасибо за подробное пояснение

                  Comment

                  • aleksey.ishchenko
                    Senior Member
                    • May 2020
                    • 187

                    #9

                    Originally posted by Kos

                    Не совсем правильное, на мой взгляд:
                    • в первом параметре лишняя закрывающая кавычка, делающая весь ключ некорректным;
                    • во втором параметре зачем-то задано регулярное выражение, требующее оканчивать имя файла любым количеством необязательных точек. Зачем? Если имя файла не важно, этот параметр можно просто не указывать;
                    • "60d" задано 10-м параметром, т.е. ограничивающим максимальный возраст файла (более старые файлы учитываться не будут). Для вашей задачи нужно обратное: посчитать файлы возрастом не менее 60 дней (чтобы убедиться, что таких файлов нет, а если есть, то тогда алерт), то есть это должно быть не 10-м, а 9-м параметром.
                    Я бы оставил так:
                    Code:
                    vfs.dir.count["D:\BACKUP",,,file,,,,,60d]
                    А если в каталоге имеются еще каталоги с кучей подкаталогов то item пишет не поддерживается, как еще можно проверять?

                    Comment

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

                      #10
                      Originally posted by aleksey.ishchenko
                      А если в каталоге имеются еще каталоги с кучей подкаталогов то item пишет не поддерживается, как еще можно проверять?
                      Переходить в неподдерживаемое состояние элемент данных может в случае, когда не удаётся выполнить проверку. Скорее всего, такое может быть либо из-за отсутствия прав у пользователя zabbix на проверяемую папку, либо из-за превышения тайм-аута. В свою очередь, по тайм-ауту может отваливаться из-за того, что приходится сканировать слишком много файлов (как вы сами пишете: "каталоги с кучей подкаталогов"). В этом случае можно ставить какие-то дополнительные ограничения - например, по глубине вложенности подкаталогов (шестой параметр в ключе).

                      Comment

                      • aleksey.ishchenko
                        Senior Member
                        • May 2020
                        • 187

                        #11
                        Проблема в интервале почему-то была, если ставлю по расписанию, и интервал 15ч, то статус не поддерживается, если переменный то почему-то все нормально

                        Comment

                        Working...