Ad Widget

Collapse

Проверка файлов

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

    #1

    Проверка файлов

    Есть два каталога, в них находится файлы
    \\f01fs\Other_imp\CB\DragMetDynamic\out.xml
    \\f01fs\Other_imp\CB\GetCursOnDate\out.xml​
    Проверка файлов в 9-00 и в 12-00 дата создания файла не превышает 24 часа назад.
    Как сделать двойную проверку в определенное время?
    zabbix 6.4
  • aleksey.ishchenko
    Senior Member
    • May 2020
    • 187

    #2
    что-то вроде
    vfs.dir.count["D:\ABS\IMPORT\Other\CB\DragMetDynamic","(?i)^ out. xml$",,file,,,]
    триггер должен сработать если файлу больше 24ч
    {DragMetDynamic:vfs.dir.count["D:\ABS\IMPORT\Other\CB\DragMetDynamic","(?i)^ out. xml$",,file,,2].last(#86400)}>0
    Правильно или нет?
    vfs.dir.count["D:\ABS\IMPORT\Other\CB\DragMetDynamic","(?i)^out. xml$",,file,,86400] вот так правильно
    Last edited by aleksey.ishchenko; 11-04-2024, 13:03.

    Comment

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

      #3
      Originally posted by aleksey.ishchenko
      что-то вроде
      vfs.dir.count["D:\ABS\IMPORT\Other\CB\DragMetDynamic","(?i)^ out. xml$",,file,,,]
      триггер должен сработать если файлу больше 24ч
      {DragMetDynamic:vfs.dir.count["D:\ABS\IMPORT\Other\CB\DragMetDynamic","(?i)^ out. xml$",,file,,2].last(#86400)}>0
      Правильно или нет?
      Нет, неправильно. Функция last(#86400) вернёт 86400-е с конца значение метрики vfs.dir.count[...] из истории (если оно вообще существует и хранится так долго).
      К тому же вы используете старый синтаксис триггерных выражений, он поменялся с версии 5.4.

      На самом деле тут всё просто и непросто.
      В случае, если вы обращаетесь к агенту на сервере, на котором эта файловая система и расположена, вы вполне можете использовать упомянутую вами метрику vfs.dir.count[...]. Только нужно добавить параметр макс_возраст, чтобы убедиться, что файл нужного возраста там есть:
      Code:
      vfs.dir.count["D:\ABS\IMPORT\Other\CB\DragMetDynamic","(?i)^out. xml$",,file,,,,,,1d]
      Тип элемента данных - "Zabbix agent" (т.е. пассивные проверки), интервал обновления выставить в ноль и добавить пользовательское расписание для проверок в 09:00 и 12:00.
      Если всё в порядке (есть указанный файл возрастом менее суток), то должна возвращаться единица, в противном случае - ноль.
      Триггер:
      Code:
      last(/DragMetDynamic/vfs.dir.count["D:\ABS\IMPORT\Other\CB\DragMetDynamic","(?i)^out. xml$",,file,,,,,,1d])=0
      Если файлы расположены в разных папках, то два элемента данных (по одному на каждую папку, поскольку она указывается первым параметром ключа).
      В одном триггерном выражении можно проверить два условия, соединив их через and или or (смотря как вам надо).

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

      (добавлено)
      Ещё рекомендую обратиться к нашему старому FAQ (ссылка) - там и про функцию last(), и про "грабли" в случае триггера с несколькими элементами данных (хотя последнее к данному случаю и не относится).
      Last edited by Kos; 11-04-2024, 13:11.

      Comment

      Working...