Ad Widget

Collapse

Нужна помощь, мониторинг папки

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • demon-yo
    Junior Member
    • Dec 2015
    • 6

    #1

    Нужна помощь, мониторинг папки

    День добрый коллеги.
    Нужен скрипт или шаблон такого плана:
    есть сетевая папка windows в которой появляются xml файлы, обрабатываются сервисом и переносятся в папку архив. Иногда файлы "застревают" и начинают накапливаться в этой папке(в идеале папка пустая).
    Итак нужно следить (считать) количество файлов в папке и если пересекает допустимое значение, то по тригеру отсылать мыло.
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    http://www.cyberforum.ru/cmd-bat/thread278915.html + UserParameter

    Comment

    • Zentarim
      Senior Member
      • Mar 2012
      • 526

      #3
      Originally posted by demon-yo
      День добрый коллеги.
      Нужен скрипт или шаблон такого плана:
      есть сетевая папка windows в которой появляются xml файлы, обрабатываются сервисом и переносятся в папку архив. Иногда файлы "застревают" и начинают накапливаться в этой папке(в идеале папка пустая).
      Итак нужно следить (считать) количество файлов в папке и если пересекает допустимое значение, то по тригеру отсылать мыло.

      +


      Словами:
      Считаем консольной командой число файлов в папке через cmd и подключаем ее через UserParameter zabbix агента

      Comment

      • Zentarim
        Senior Member
        • Mar 2012
        • 526

        #4
        Originally posted by sadman
        Опередил... Даже ссылки те же самые

        Comment

        • demon-yo
          Junior Member
          • Dec 2015
          • 6

          #5
          Originally posted by Zentarim
          Опередил... Даже ссылки те же самые
          Видел эту статью
          как раз вопрос как дальше в заббих это вставить через userparam
          нет готового шаблончика?

          Comment

          • Zentarim
            Senior Member
            • Mar 2012
            • 526

            #6
            Originally posted by demon-yo
            Видел эту статью
            как раз вопрос как дальше в заббих это вставить через userparam
            нет готового шаблончика?
            Завернуть все в bat\cmd файл, а ссылку на этот файл засунуть в UserParameter?

            Comment

            • demon-yo
              Junior Member
              • Dec 2015
              • 6

              #7
              Originally posted by Zentarim
              Завернуть все в bat\cmd файл, а ссылку на этот файл засунуть в UserParameter?
              Я с zabbix неделю общаюсь, еще все нюансы не понял, можно чуть поподробнее как куда добавлять пошагово, если не сложно

              Comment

              • demon-yo
                Junior Member
                • Dec 2015
                • 6

                #8
                Originally posted by zentarim
                Завернуть все в bat\cmd файл, а ссылку на этот файл засунуть в userparameter?
                тут даже изменилась задача.
                нужно отмониторить задержку обработки службы, т.е сколько именно времени находится файл(или файлы, если их несколько) перед пермещением в данной папке, это уже видимо совсем другая история

                Comment

                • aib
                  Senior Member
                  • Jan 2014
                  • 1615

                  #9
                  Originally posted by demon-yo
                  тут даже изменилась задача.
                  нужно отмониторить задержку обработки службы, т.е сколько именно времени находится файл(или файлы, если их несколько) перед пермещением в данной папке, это уже видимо совсем другая история
                  Да нет, всё решаемо с помощью триггеров.
                  Теоретически это выглядит так:
                  1) на том сервере, где находится подопытная папка, пишете скрипт, проверяющий количество .XML файлов. Например:
                  Code:
                  c:\ > notepad c:\file_count.bat[INDENT]attrib.exe $1/*.* |find /c /v ""[/INDENT]
                  2) на этом же сервер устанавливаете Zabbix Agent и в его конфигурационный файл добавляете строку
                  Code:
                  UserParameter=how_many_files[*], c:\file_count.bat $1
                  и перезапускаете агент
                  3) проверяете, что Zabbix Server получает данные от агента, выполнив команду в консоли сервера:
                  Code:
                  zabbix_get -s ip_address_подопытного -k how_many_files["c:\xml_directory_name"]
                  Если выдает правильные цифры (поиграйтесь, подкладывая и убирая временно какие-то файлы) - то идем дальше.
                  Если нет - увеличиваем на агенте LogLevel=4, перезапускаем агента, проверям ошибки.
                  4) на Zabbix Server, в описании конфигурации подопытного, добавляете элемент данных
                  Code:
                  Name: XML directory control
                  Type: Zabbix Agent
                  Key: how_many_files["c:\xml_directory_name"]
                  Type of information:  Numeric(unsigned)
                  Data type: Decimal
                  5) Ждем какое-то время, накапливая статистику (день-неделю-месяц)
                  6) На основании статистики строим Триггеры :
                  - на долгое отсутствие файлов,
                  - на накопление файлов
                  - на недоступность подопытного сервера
                  - и т.п.

                  Так понятнее стало?
                  Sincerely yours,
                  Aleksey

                  Comment

                  • demon-yo
                    Junior Member
                    • Dec 2015
                    • 6

                    #10
                    Originally posted by aib
                    Да нет, всё решаемо с помощью триггеров.
                    Теоретически это выглядит так:
                    1) на том сервере, где находится подопытная папка, пишете скрипт, проверяющий количество .XML файлов. Например:
                    Code:
                    c:\ > notepad c:\file_count.bat[INDENT]attrib.exe $1/*.* |find /c /v ""[/INDENT]
                    2) на этом же сервер устанавливаете Zabbix Agent и в его конфигурационный файл добавляете строку
                    Code:
                    UserParameter=how_many_files[*], c:\file_count.bat $1
                    и перезапускаете агент
                    3) проверяете, что Zabbix Server получает данные от агента, выполнив команду в консоли сервера:
                    Code:
                    zabbix_get -s ip_address_подопытного -k how_many_files["c:\xml_directory_name"]
                    Если выдает правильные цифры (поиграйтесь, подкладывая и убирая временно какие-то файлы) - то идем дальше.
                    Если нет - увеличиваем на агенте LogLevel=4, перезапускаем агента, проверям ошибки.
                    4) на Zabbix Server, в описании конфигурации подопытного, добавляете элемент данных
                    Code:
                    Name: XML directory control
                    Type: Zabbix Agent
                    Key: how_many_files["c:\xml_directory_name"]
                    Type of information:  Numeric(unsigned)
                    Data type: Decimal
                    5) Ждем какое-то время, накапливая статистику (день-неделю-месяц)
                    6) На основании статистики строим Триггеры :
                    - на долгое отсутствие файлов,
                    - на накопление файлов
                    - на недоступность подопытного сервера
                    - и т.п.

                    Так понятнее стало?
                    Спасибо, стало понятнее. Но не работает.
                    из конслоли все ок выдает правильное число, в веб морде пишет
                    Received value [C:\Windows\system32>attrib.exe %1*.xml | find /c /v "*.xml" ] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]

                    Comment

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

                      #11
                      Originally posted by demon-yo
                      Спасибо, стало понятнее. Но не работает.
                      из конслоли все ок выдает правильное число, в веб морде пишет
                      Received value [C:\Windows\system32>attrib.exe %1*.xml | find /c /v "*.xml" ] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]
                      Дык, добавьте первой строчкой батника
                      Code:
                      @echo off
                      , чтобы не "светить" выполняемые команды в стандартный вывод, а отображать только результат (конкретное число).

                      Comment

                      • demon-yo
                        Junior Member
                        • Dec 2015
                        • 6

                        #12
                        Originally posted by Kos
                        Дык, добавьте первой строчкой батника
                        Code:
                        @echo off
                        , чтобы не "светить" выполняемые команды в стандартный вывод, а отображать только результат (конкретное число).
                        Спасибо, уже сами доперли Итак bat файл такой:
                        @echo off
                        attrib.exe %1*.xml |find /c /v "*.xml"

                        Comment

                        • Ksingh
                          Junior Member
                          • Nov 2014
                          • 6

                          #13
                          Пост удален
                          Last edited by Ksingh; 31-12-2015, 07:04. Reason: Проблема решилась

                          Comment

                          • Tallo23
                            Member
                            • Oct 2018
                            • 57

                            #14
                            Originally posted by demon-yo

                            Спасибо, уже сами доперли Итак bat файл такой:
                            echo off
                            attrib.exe %1*.xml |find /c /v "*.xml"
                            а что это такое "%1" в строчке (attrib.exe %1*.xml |find /c /v "*.xml")?

                            Comment

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

                              #15
                              Originally posted by Tallo23
                              а что это такое "%1" в строчке (attrib.exe %1*.xml |find /c /v "*.xml")?
                              Браво за поднимание в 2020 году темы, обсуждавшейся в 2015 ;-)

                              По сути вопроса: "%1" в батнике - это переменная, вместо которой подставляется первый передаваемый этому батнику параметр.
                              В данном случае (через UserParameter) значением этого параметра будет параметр из квадратных скобок ключа элемента данных в Zabbix.

                              Т.е. в приведённых примерах:

                              ключ:
                              Code:
                              how_many_files["c:\xml_directory_name"]
                              приведёт к такому вызову батника:
                              Code:
                              c:\file_count.bat c:\xml_directory_name
                              что, в свою очередь, приведёт к исполнению команд:
                              Code:
                              @echo off
                              attrib.exe c:\xml_directory_name\*.xml |find /c /v "*.xml"
                              (там в предыдущих сообщениях в батнике перед "*.xml" должен быть обратный слэш, который куда-то съелся).

                              Comment


                              • Tallo23
                                Tallo23 commented
                                Editing a comment
                                спасибо за ответ) просто возникла потребность мониторить содержание папок, считать сколько файлов в папке) попал сюда) я кстати обошелся без переменных
                                Code:
                                UserParameter=check_files_counter,attrib "C:\Program Files\iQ-WEBX\PACS\php\thumbnails\*.*" | find /c /v "*.*"
                                кстати можно ли значение полученное из UserParameter передать в сообщение триггера, среагировавшего на него?
                                Last edited by Tallo23; 07-02-2020, 16:52.
                            Working...