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

    Мониторинг файла

    сть триггер vfs.dir.count["C:\TWPPay\Trace",,,file,,0,1,,360,,].last()}>0 и элемент данных, мне нужно мониторить, что если файл ен менялся больше 5 минут, то алерт
    Он работает, но триггер не закрывается, как сделать выражение восстановления?
    На тестовом с win11 все коректно, а на бое на 2003 сервере ложные сработки и не закрывается триггер. Какой-то другой синткакис надо?
    Zabbix 4.4​
  • Answer selected by aleksey.ishchenko at 07-06-2023, 07:54.
    Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    Originally posted by aleksey.ishchenko
    А что не так в элементе данных?
    В элементе данных всё так. Коллега иронизирует по поводу того, что возвращаемое этим элементом данных значение - это время в формате unixtime, т.е. количество секунд, прошедшее с 1 января 1970 года по Гринвичу. Соответственно, сравнивать его надо не с константой (300), а с текущим временем на сервере. Таки да, триггерная функция fuzzytime() (делающая именно это) спасёт вас.

    Comment

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

      #2
      Originally posted by aleksey.ishchenko
      сть триггер vfs.dir.count["C:\TWPPay\Trace",,,file,,0,1,,360,,].last()}>0 и элемент данных, мне нужно мониторить, что если файл ен менялся больше 5 минут, то алерт​
      Насколько я понимаю документацию, метрика vfs.dir.count считает количество записей в директории по заданным фильтрам - например, как в вашем случае, только файлов, только в данной директории (не углубляясь в поддиректории) и только имеющих размер больше 1 байта и появившихся там не менее 6 минут (360 секунд) назад.
      Однако, эта метрика никак не учитывает изменения этих файлов: изменился ли файл час назад или только что - это неважно; важно лишь когда он был создан.
      Могу ошибаться, т.к. всё, что в документации об этом параметре сказано, это следующее:
      min_age - minimum age (in seconds) of directory entry to be counted. More recent entries will not be counted.​
      Возможно, под "age" (возрастом) в данном контексте подразумевается разница между текущим временем и временем последней модификации, но, к сожалению, явно это не оговорено.

      Если нужно следить за каким-то конкретным файлом (с заранее известным именем), то более логично использовать метрику vfs.file.time​.

      А какие причины заставляют держаться версии 4.4, которая не поддерживается уже несколько лет?

      Comment

      • aleksey.ishchenko
        Senior Member
        • May 2020
        • 187

        #3
        Originally posted by Kos


        А какие причины заставляют держаться версии 4.4, которая не поддерживается уже несколько лет?
        Жду согласования для перехода на 6,0)

        А как в 6 версии мониторинг время изменения файла? Там вроде точно такой же ключ

        сделал элемент данных vfs.file.time[fC:\TWPPay\Trace\smpp.log,<mode>] и триггер {TWPP Log:vfs.file.time[fC:\TWPPay\Trace\smpp.log,<mode>].last()}>300
        Но почему-то не работает в логах пишет
        active check "vfs.file.time[fC:\TWPPay\Trace\smpp.log,<mode>]" is not supported: Cannot obtain file information: [2] No such file or directory
        Last edited by aleksey.ishchenko; 06-06-2023, 08:03.

        Comment

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

          #4
          Originally posted by aleksey.ishchenko
          А как в 6 версии мониторинг время изменения файла? Там вроде точно такой же ключ
          Да, в данном конкретном случае, действительно, вроде бы хватает и возможностей версии 4.4.
          Просто в нынешних версиях:
          • исправляются найденные недочёты (на мой взгляд, основное преимущество);
          • добавляются новые "фичи" (например, метрики vfs.dir.get и vfs.file.get, которые неожиданно могут оказаться полезными, если по-другому не получается);
          • просто уже как-то привычнее (с версии 5.4 поменялся синтаксис триггерных выражений).
          Originally posted by aleksey.ishchenko
          сделал элемент данных vfs.file.time[fC:\TWPPay\Trace\smpp.log,<mode>] и триггер {TWPP Log:vfs.file.time[fC:\TWPPay\Trace\smpp.log,<mode>].last()}>300
          Но почему-то не работает

          А данные туда поступают? В последних данных что-то видно?
          Надеюсь, что подчёркнутое ниже - результат неудачного копипаста, и на самом деле всё прописано корректно (включая реальное значение для параметра <mode>)
          Code:
          vfs.file.time[fC:\TWPPay\Trace\smpp.log,<mode>]
                        ^                         ^^^^^^

          Comment

          • aleksey.ishchenko
            Senior Member
            • May 2020
            • 187

            #5
            Originally posted by Kos
            Надеюсь, что подчёркнутое ниже - результат неудачного копипаста, и на самом деле всё прописано корректно (включая реальное значение для параметра <mode>)
            Code:
            vfs.file.time[fC:\TWPPay\Trace\smpp.log,<mode>]
            ^ ^^^^^^
            vfs.file.time[fC:\TWPPay\Trace\smpp.log,modify] вот так ключ элемента данных и вот такой триггер {TWPP Log:vfs.file.time[fC:\TWPPay\Trace\smpp.log,modify].last()}>300
            Или триггер через fuzzy time?


            Comment

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

              #6
              Originally posted by aleksey.ishchenko
              vfs.file.time[fC:\TWPPay\Trace\smpp.log,modify] вот так ключ элемента данных
              Т.е. действительно с буквой "f" перед именем диска ("C:") ?
              Данные-то приходят?

              Comment

              • aleksey.ishchenko
                Senior Member
                • May 2020
                • 187

                #7
                Originally posted by Kos
                Т.е. действительно с буквой "f" перед именем диска ("C:") ?
                Данные-то приходят?
                Блин бкву то я и не заметил, спасибо. А как сделать выражение восстановления, сейчас выстввлено выражение, но триггер не закрывается. Через nodata ?

                Comment

                • Semiadmin
                  Senior Member
                  • Oct 2014
                  • 1625

                  #8
                  Еще бы ему закрываться, <300 было, когда в 1970 Новый год праздновали

                  Comment

                  • aleksey.ishchenko
                    Senior Member
                    • May 2020
                    • 187

                    #9
                    Originally posted by Semiadmin
                    Еще бы ему закрываться, <300 было, когда в 1970 Новый год праздновали
                    А что не так в элементе данных?

                    Comment

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

                      #10
                      Originally posted by aleksey.ishchenko
                      А что не так в элементе данных?
                      В элементе данных всё так. Коллега иронизирует по поводу того, что возвращаемое этим элементом данных значение - это время в формате unixtime, т.е. количество секунд, прошедшее с 1 января 1970 года по Гринвичу. Соответственно, сравнивать его надо не с константой (300), а с текущим временем на сервере. Таки да, триггерная функция fuzzytime() (делающая именно это) спасёт вас.

                      Comment

                      Working...