Ad Widget

Collapse

Как "заставить" zabbix "понимать" переменные среды?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dezhnevo
    Member
    • Sep 2018
    • 91

    #1

    Как "заставить" zabbix "понимать" переменные среды?

    Есть путь: D:\Users\Ivanov\Appdata............... и так далее до конечной папки. Так вот, пользователей много, а путь совершенно одинаковый кроме имени пользователя. Чтобы не городить много элементов данных, как дать Z понять что нужно смотреть в эту папку не обращая внимания на имя пользователя в пути? Пробовал %USERPROFILE% и %USERNAME% вставлять, не работает.
    Спасибо.
  • dezhnevo
    Member
    • Sep 2018
    • 91

    #2
    нет решения?

    Comment

    • max.ch.88
      Senior Member
      • Oct 2018
      • 206

      #3
      ТЗ непонятно. что хочется получить в мониторинге?

      Comment

      • dezhnevo
        Member
        • Sep 2018
        • 91

        #4
        Мониторить "появление" файла в папке и по сработке триггера, отсылать письмо. Вопрос в том, чтобы не создавать много элементов данных (так как разница в пути до папки только в имени пользователя), а, например один D:\Users\%userprofile%\.......и т.д., но Zabbix с переменными средами не работает на прямую. Вот как обойти, мой вопрос в этом. Спасибо.
        Может в какой-то файл поместить все пути и "скормить" его Z. Кучу вариантов просмотрел, как-то все не то, или слишком накручено или не то что нужно.

        Comment

        • max.ch.88
          Senior Member
          • Oct 2018
          • 206

          #5
          Понятнее не стало. Файл имеет постоянное имя? Появляется в любом каталоге? Во всех сразу?
          Интуиция подсказывает, что нужен скрипт, выполняющий поиск по всему дереву каталогов и возвращающий количество найденных по шаблону файлов. Это будет один item. Соответственно триггер на найдено >0.

          Comment

          • dezhnevo
            Member
            • Sep 2018
            • 91

            #6
            Файлы, конечно имеют разные имена, одинаковое расширение и путь где лежит. Появляется только там (у пользователя), где в какой-то момент, из-за ошибки, падает 1С.
            Путь до файлов одинаковый D:\Users\Ivanov\Appdata\Local\1C\1cv\dumps
            Внутри формируются только эти файлы, больше ни какие. Можно даже только папку dumps мониторить на предмет ее изменения (размер, время изменения).
            Как все это проделать для одного пути понятно. Это даже реализовано и прекрасно работает. Дело в том, что пользователей 100 человек, соответственно, путей до этой папки тоже 100. Я не хочу создавать 100 элементов данных.
            Надеюсь понятно рассказал.

            Comment

            • dezhnevo
              Member
              • Sep 2018
              • 91

              #7
              вот. и так далее
              Attached Files

              Comment

              • max.ch.88
                Senior Member
                • Oct 2018
                • 206

                #8
                Если не важно в каком каталоге появился файл, тогда скрипт с поиском по шаблону. И это один item.
                Если триггер должен показывать путь до файла, то discovery в помощь. Автоматом создадутся и item и trigger.

                Comment

                • dezhnevo
                  Member
                  • Sep 2018
                  • 91

                  #9
                  Решение не ясно.
                  Подробнее, если не сложно расписать есть возможность?

                  Comment

                  • max.ch.88
                    Senior Member
                    • Oct 2018
                    • 206

                    #10

                    дискаверить можно всё. в данном случае пользовательские каталоги в D:\Users\. нужен скрипт, который пройдет по всему дереву D:\Users\ и вернет json вида "имя пользователя, каталог"

                    Comment

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

                      #11
                      Тут красивого решения, боюсь, не получится.

                      Можно, как пишет max.ch.88, делать автообнаружение, что позволит автоматизировать создание элементов данных и триггеров для них. Однако, это приведёт к периодическому запуску 100 штук скриптов (правда, с разными параметрами). Если ваша ситуация это допускает - то такое решение может быть приемлемо.

                      Если же обрабатывать все 100 директорий за один вызов батника, то тут можно либо переписать сам исходный батник (чтобы он сам делал обход дерева), либо написать ещё один, который будет обходить директорию D:\Users и для каждой поддиректории вызывать первый батник. Однако, в любом случае, надо иметь в виду, что обход директорий, где более десятка-другого файлов или поддиректорий, - это дорогостоящая (по времени) операция, и такой батник может по времени элементарно не укладываться в отведённые по умолчанию 3 или 4 (в зависимости от версии Zabbix) секунды, а максимальное значение для тайм-аута, которое можно выставить, ограничено 30 секундами. Так что, начиная с определённого порога, единственным вариантом останется такой батник, который запускается независимо от Zabbix-агента (скажем, по Windows Scheduler-у), при этом работает столько, сколько ему надо, а результаты отсылает на Zabbix-сервер с помощью утилиты zabbix_sender.

                      Comment

                      • dezhnevo
                        Member
                        • Sep 2018
                        • 91

                        #12
                        Понял, спасибо. Воспользовался для выполнения этой задачи сторонним ПО. Все работает замечательно. Действительно, в Zabbix изящного решения я так и не нашел

                        Comment

                        • max.ch.88
                          Senior Member
                          • Oct 2018
                          • 206

                          #13
                          В 3.4 есть vfs.dir.size. Если создаваемые файлы не нулевого размера, то как раз подходит. Kos, скрипт автообнаружения один и может запускаться с периодичностью в зависимости от добавления новых пользовательских каталогов (раз в день, в неделю). А автообнаружение уже создаст item vfs.dir.size[найденный каталог] (или vfs.file.time, если у автора это работает) и триггер. Красивое штатное решение.

                          Comment

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

                            #14
                            max.ch.88, полностью с Вами согласен.
                            Я писал лишь о ситуации, когда хочется видеть имя нового появившегося файла (а не только сам факт того, что что-то там добавилось).
                            Тогда без внешних скриптов не обойтись, и если обнаружение автоматически сгенерирует нам сотню элементов данных для сотни пользователей (цифры из приведённого автором темы примера), то и скрипт будет запускаться 100 раз (по разу для каждого элемента данных).
                            Если же видеть конкретные имена файлов не надо - то да, ставить агентов версии 3.4 или новее, и vfs.dir.size (или, даже, vfs.dir.count) с правильным выражением для имён файлов вполне решит проблему.

                            Comment

                            Working...