Ad Widget

Collapse

Общий элемент данных - действие для конкрk

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • friis
    Member
    • Sep 2016
    • 65

    #1

    Общий элемент данных - действие для конкрk

    Посоветуйте пожалуйста как организовать мою задачу

    я мониторю диски Windows

    элемент данных: ключ- \LogicalDisk(_Total)\Disk Bytes/sec который возвращает среднюю нагрузку на всю дисковую систему в байтах
    этот элемент данных прописан в шаблоне - этот шаблон накрывает все сервера.

    Естественно критическое значение у каждой Windows своё - у кого то 30Мбайт, у кого то 100 Мбайт

    Посоветуйте как организовать триггеры и действия на каждый Windows ?
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Originally posted by friis
    Естественно критическое значение у каждой Windows своё - у кого то 30Мбайт, у кого то 100 Мбайт

    Comment

    • friis
      Member
      • Sep 2016
      • 65

      #3
      Можно ли развить тему ?

      Спасибо за направление - Можно ли развить тему ?

      Данные:
      Шаблон: Shablon, в этом шаблоне элемент данных с ключом {\LogicalDisk(_Total)\Disk Bytes/sec, 60}

      Серверы:
      m1
      m2
      m3

      Критические значения:
      для сервера m1 - 30 Mb\s
      для сервера m2 - 60 Mb\s
      для сервера m3 - 100 Mb\s


      как надо написать (допустим глобальны макрос) макрос?
      {$Hostname} = или что ? я так понимаю тут надо макрос с 2 значениями - именем машины и значением предельной нагрузки?

      что то вроде :
      {!!!!какой то макрос???!!!: perf_counter["\LogicalDisk(_Total)\Disk Bytes/sec",180].avg(300)}>!!!какой то макрос??!!

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Пример 2

        Использование макроса уровня узла сети в триггере “Загрузка CPU слишком высокая”:

        {ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}

        Такой триггер можно создать у шаблона, он не будет изменен у отдельных узлов сети.
        Code:
        {my_win_template:perf_counter["\LogicalDisk(_Total)\Disk Bytes/sec",180].avg(300)}>{$MAX_DISKLOAD}
        m1, {$MAX_DISKLOAD} = 30
        m2, {$MAX_DISKLOAD} = 60
        ...

        Только, пожалуйста, найдите, что такое "макрос уровня узлов сети" самостоятельно.

        Comment

        • friis
          Member
          • Sep 2016
          • 65

          #5
          Спасибо что няньчиетесь

          Что такое - что вы указали как :
          m1, {$max_diskload} = 30
          m2, {$max_diskload} = 60
          Это так набивать макрос ?
          имя понятно - $max_diskload, значения 30, 60, 100.
          А где связь что 30 соответствует м1 и т.д.

          в макросе ведь только 2 поля ?
          Last edited by friis; 24-10-2016, 15:38.

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #6
            Originally posted by friis
            Что такое


            Это так набивать макрос ?
            имя понятно - $max_diskload, значения 30, 60, 100ю
            А где связь что 30 соответствует м1 и т.д.

            в макросе ведь только 2 поля ?
            Откройте хост m1, перейдите на макросы, набейте {$max_diskload} => 30
            Откройте хост m2, перейдите на макросы, набейте {$max_diskload} => 60
            ...
            Так лучше?

            Comment

            • friis
              Member
              • Sep 2016
              • 65

              #7
              аааааа

              Так значительно лучше, доктор!!!

              1. Заходим на каждый узел и набиваем в макросах его значение
              например {$MAX_DISKLOAD}=30

              2. Заходим на искомый шаблон и создаем один триггер(например Trig1) с ключом :
              {ForNotebookserf_counter["\LogicalDisk(_Total)\Disk Bytes/sec",180].avg(300)}>{$MAX_DISKLOAD}

              Т.о. Этот шаблон(а соотвественно и триггер) накроет всех к кому применен шаблон "ForNotebooks"

              3. Заходим в действия и создаем действие где условия Триггер=Trig1

              Если все верно - спасибо огромное !!!
              Вы просто профи !!!

              Comment

              • friis
                Member
                • Sep 2016
                • 65

                #8
                Мне нужно вынести в отдельную тему или можно здесь ?

                Чуть по сложнее задача - тут перебор не просто разных узлов.ю а параметров внутри каждого узла

                у Azire microsoft - Есть ограничение на дисковую систему вида 5х500
                где 5 - число дисков (с: d: e: и т.д.) 500 - IOPS

                решил использовать счетчик \LogicalDisk(c:)\Disk Transfers/sec
                но в каждой машине свой набор дисков (с: d: и т.д.) где то их 2, где то 5, где 1

                как тут быть? как указать что на той машине такие диски, а на другой такие. Соответственно элементов данных будет разное количество

                Comment

                • friis
                  Member
                  • Sep 2016
                  • 65

                  #9
                  Из того мануала в который Вы ткнули меня носом :

                  В случае, если zabbix не удалось найти макрос, макрос не будет заменен на значение.
                  надеюсь это не значит что будет сформирован ключ где вместо значения будет вставлено текстовое имя макроса ? - бред конечно но все же спросил

                  Надеюсь что если
                  В случае, если zabbix не удалось найти макрос, макрос не будет заменен на значение.
                  ключ\условие\выражение просто не будет сформирован

                  Comment

                  • sadman
                    Senior Member
                    • Dec 2010
                    • 1611

                    #10
                    Ну, положим, что найти подключенные диски - это не проблема. С этим вполне справляется LLD: Template OS Windows -> Discovery rules -> Mounted filesystem discovery.

                    Но вот узнать, сколько дисков (в штуках) обнаружено, на мой взгляд, возможности нет. Т.е. автоматически (не выходя за рамки Zabbix Server) посчитать максимально допустимый IOPS нельзя.

                    Впрочем, если на каждый лог. диск нужно контролировать иопсы, а не всё кучей - то по примеру прототипов триггеров из Mounted filesystem discovery слепите свой.

                    Comment

                    • friis
                      Member
                      • Sep 2016
                      • 65

                      #11
                      общий не надо считать
                      надо именно по каждому диску и проверять каждый диск на ""не больше 500"

                      т.е я в своем шаблоне создаю правило обнаружения с ключом vfs.fs.discovery
                      которое запихивает все найденные диски на всех машинах куда-то в in global regular expression "File systems for discovery".

                      затем создаю прототип элемента данных с ключом \LogicalDisk({#FSNAME})\Disk Transfers/sec

                      Затем создаю прототип триггера с выражением {ForNotebooks:[\LogicalDisk({#FSNAME})\Disk Transfers/sec, 180].max(180)}>500

                      Ну и действие где Триггер=(имени прототипа триггера )

                      Я правильно описал ?

                      Comment

                      • sadman
                        Senior Member
                        • Dec 2010
                        • 1611

                        #12
                        Originally posted by friis
                        которое запихивает все найденные диски на всех машинах куда-то в in global regular expression "File systems for discovery".
                        Это фильтр для отсечки ненужных файловых систем. Под виндой, вроде бы, особого смысла в нем нет.
                        Administration -> General -> Regular expressions

                        Ну и действие где Триггер=(имени прототипа триггера )
                        Это наврядли сработает. v2.4, во всяком случае, прототипы в Действия не показывает. Скорее всего придется хосты в какую-то группу сгонять и действие на группу натравливать. Или делать Trigger name like ...

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

                        Comment

                        • friis
                          Member
                          • Sep 2016
                          • 65

                          #13
                          Это фильтр для отсечки ненужных файловых систем. Под виндой, вроде бы, особого смысла в нем нет.
                          Ну если так - то все остальное смысла не имеет

                          Придется каждый диск каждой ОС - как отдельный элемнт данных, отдельный триггер, отдельное действие

                          насчет гистерезиса - вроде же - среднее за период - не должно же быть много чихов ?

                          у меня 3.2
                          Last edited by friis; 07-10-2016, 21:42.

                          Comment

                          • Semiadmin
                            Senior Member
                            • Oct 2014
                            • 1625

                            #14
                            Originally posted by friis
                            общий не надо считать
                            надо именно по каждому диску и проверять каждый диск на ""не больше 500"
                            Насколько я понимаю, задача интереснее: надо как раз посчитать общее IOPS и сравнить с предельным, рассчитанным по формуле Nx500.
                            _total IOPS можно получить perfmon'ом, а вот количество обнаруженных дисков - запросом к БД забббикса, например через database monitoring. Потом получить разницу реального и предельного iops через calculated item и сделать для нее триггер.

                            Comment

                            • friis
                              Member
                              • Sep 2016
                              • 65

                              #15
                              не не нет,

                              как анализировать общий IOPS системы мы уже разобрались в первой части топика.

                              "NxMMM" - это всего лишь формулировка тарифа майкрософт, которая говорит что к Вирт машине можно подстегнуть такое то количество дисков с таким то IOPS каждый (есть тарифы с общим IOPS - но с ним уже разобрались - ибо не надо выделять диски),

                              сейчас взял дефолтовый темплейт для Win - распотрошил его - оставил только обнаружение с ключом vfs.fs.discovery. И что я вижу - корректно организуется элемент данных (название: Free disk space on $1(Free disk space on {#FSNAME}), ключ:vfs.fs.size[{#FSNAME},free] ) -- на ноуте видится диск с: --- см. скрин
                              В то же время подстегнутая флешка не видится , попытка создать еще один прототип элемента с именем Free disk space on $2,с ключом vfs.fs.size[{#FSNAME},free] - закнчивается ошибкой - что подобный ключ уже используется (он действительно используется в $1)
                              Last edited by friis; 24-10-2016, 15:38.

                              Comment

                              Working...