Ad Widget

Collapse

Проверка наличия файлов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • bga83
    Senior Member
    • Sep 2011
    • 268

    #1

    Проверка наличия файлов

    ситуация следующая: надо проверять есть ли в определенном каталоге на Solaris файлы. И выдавать оповещение если там появились файлы и лежат на протяжении определенного времнеи. Проблема в том, что имена могут быть произвольными. Пробовал использовать vfs.file.exists, но он по маске * возвращает значение, соответсвующее отсутсвию файлов даже при ихналичии. В теории можно использовать logrt, и вытаскивать содержимое и уже на основании того поступили данные или нет делать вывод о появлении файла. Но вариант тоже не особо хорош, так как появление файла приведет к поступлению данных и можно этот момент отследить. А вот с исчезновением не все столь гладко. Да и файлы могут довольно объемными.
    Есть конечно универсальный вариант - скрипты, но есть некоторая проблема с распространением по серверам, внутренняя бюрократия зделает этот процесс долгим и муторным.

    Поэтому собственно вопрос: есть ли еще какие-нибудь способы/функции, которые мне не пришли пока в голову?
  • SergeniuS
    Member
    • Jan 2012
    • 68

    #2
    Что если использовать пользовательские параметры? Требует внесения изменений в конфигурацию агентов Zabbix, но не требует создания скриптов на хостах (используются стандартые утилиты). Например, создать параметр такого вида:

    Считаем кол-во файлов в директории, если их стало больше нуля, то включаем триггер
    Code:
    UserParameter=check-file-exist, ls /path/to/files/ -la | grep '^-' | wc -l
    Или ещё проще - считаем размер папки, в которой могут лежать файлы. Если размер отличается от нуля - у нас появился файл (исключение - файлы нулевого размера):
    Code:
    UserParameter=check-file-exist, du /path/to/files/

    Comment

    • bga83
      Senior Member
      • Sep 2011
      • 268

      #3
      Originally posted by sergenius
      Что если использовать пользовательские параметры? Требует внесения изменений в конфигурацию агентов zabbix, но не требует создания скриптов на хостах (используются стандартые утилиты). Например, создать параметр такого вида:

      Считаем кол-во файлов в директории, если их стало больше нуля, то включаем триггер
      Code:
      userparameter=check-file-exist, ls /path/to/files/ -la | grep '^-' | wc -l
      Или ещё проще - считаем размер папки, в которой могут лежать файлы. Если размер отличается от нуля - у нас появился файл (исключение - файлы нулевого размера):
      Code:
      userparameter=check-file-exist, du /path/to/files/
      я же писал, что скрипты вариант универсальный, но требует модификации на стороне наблюдаемых хостов, с чем собственно проблема. У уж где именно скрипт быдет располагаться в конфиге забикса в виде пользовательсткого параметра или отдельным файлом не принципиально.

      Comment

      • SergeniuS
        Member
        • Jan 2012
        • 68

        #4
        Как на счёт мониторинга за параметром
        Code:
        vfs.file.time[/path/to/folder,access]
        для папки, в которой лежат файлы? При появлении файлов в папке дата последнего доступа к ней должна будет обновиться.

        Comment

        • ableev
          Senior Member
          Zabbix Certified Specialist
          • Oct 2012
          • 276

          #5
          Вам поможет system.run, в котором будет использоваться stat / find.

          Comment

          • bga83
            Senior Member
            • Sep 2011
            • 268

            #6
            Originally posted by SergeniuS
            Как на счёт мониторинга за параметром
            Code:
            vfs.file.time[/path/to/folder,access]
            для папки, в которой лежат файлы? При появлении файлов в папке дата последнего доступа к ней должна будет обновиться.
            не понятно как в таком случапе установить факт того, что файлов в каталоге нет.

            Originally posted by ableev
            Вам поможет system.run, в котором будет использоваться stat / find.
            EnableRemoteCommands выставлено в 0 принудително по требованиям безопасности.

            В общем по всей видимости придется долго и нудно пытаться обновиться, раскидав скрипты.

            Comment

            Working...