Ad Widget

Collapse

Помогите прикрутить скрипт

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • arut55
    Member
    • Mar 2013
    • 41

    #1

    Помогите прикрутить скрипт

    Добрый день.
    У меня задача, вроде-бы понимаю как должно работать но не знаю как это реализовать.

    Работаю с DSL пулами..
    средствами snmp получаю текущее состояние телефонной линии..
    все это работает.
    Но мне надо сравнивать это значение с контрактом..
    то есть, у клиента в контракте скорость 2042 kbps, а пропускная способность линии например 1580 kbps, в этом случае должен срабатывать сторонний скрипт..

    как вы думаете? как можно это реализовать?
    версия забикса 2.2
  • ArtemK
    Senior Member
    • May 2013
    • 232

    #2
    Если у вас триггер уже настроен и работает, что вам мешает настроить action, который будет срабатывать на этот триггер и выполнять какой-либо внешний скрипт на каком-либо хосте?

    Думаю remote command (здесь подробнее) вам может помочь

    Comment

    • vvlad
      Member
      • Apr 2011
      • 83

      #3
      Самое простое - иметь тут же, в отдельном item, скорость по контракту для порта (тянуть из базы биллинга либо внешней проверкой, либо через ODBC). В выражении тригера эти два числа сравнивать. Если фактическая скорость меньше контрактной - тригер в состояние "Проблема". На тригере настроить действие с удаленной командой (ссылку дали)

      Comment

      • arut55
        Member
        • Mar 2013
        • 41

        #4
        Спасибо за ответы.
        Дело в том что я не могу настроить тригер.
        У меня 10 шаблонов и в каждом по 770 элементов данных.
        Когда я пытаюсь создать тригер то поле "Элемент данных" обязательно.
        получается что я должен создать 770 тригеров для каждого шаблона.
        это ведь неудобно.

        Comment

        • ArtemK
          Senior Member
          • May 2013
          • 232

          #5
          Ну как-то 770 item'ов в 10 шаблонов вы добавили, тоже наверно ужасно неудобно? В общем, непонятно пока. Как уже сказали, контрактную скорость можно откуда-либо чем-нибудь тянуть, и ставить в опреденный item, или в макрос через api (я правда api никогда не пользовался, но думаю, это возможно). Ну и сравнивать текущую с контрактной.

          Comment

          • arut55
            Member
            • Mar 2013
            • 41

            #6
            Originally posted by ArtemK
            Ну как-то 770 item'ов в 10 шаблонов вы добавили, тоже наверно ужасно неудобно?
            Генерировал с помощью php скрипта.
            Спасибо.. думаю это и есть ответ ) не додумался )

            Comment

            • arut55
              Member
              • Mar 2013
              • 41

              #7
              Нет.. не пойдет... (((((((((
              слишком уж нестабильный механизм получиться..
              мне нужно передать значение полученный шаблоном в свой скрипт.
              то есть не важно какое значение получил элемент данных пусть он сделает что-то вроде "php /path/script.php ITEM.NAME ITEM.VALUE"
              это возможно?
              где копать?

              Comment

              • ArtemK
                Senior Member
                • May 2013
                • 232

                #8
                Так триггер сработает по условию какому-нибудь, и item'ы, которые участвуют в условии, вы можете передать в remote command, как раз ITEM.VALUE

                Comment

                • arut55
                  Member
                  • Mar 2013
                  • 41

                  #9
                  Originally posted by ArtemK
                  Так триггер сработает по условию какому-нибудь, и item'ы, которые участвуют в условии, вы можете передать в remote command, как раз ITEM.VALUE

                  я это понял но для этого надо будет создать множество тригеров..
                  потом это станет причиной проблем так как при смене слотов OID меняется.. шаблоны буду генерировать снова и обновлю а вот с тригерами будет проблемка.
                  нельзя как нибудь без тригеров обойтись? просто передать значения которые получает N item шаблона в сторонний скрипт?

                  Comment

                  • ArtemK
                    Senior Member
                    • May 2013
                    • 232

                    #10
                    Видимо писать скрипт, который будет через API дёргать значения нужных айтемов. Либо может стоит в сторону LLD посмотреть, чтоб item'ы и триггеры генерить автоматом. Тогда можно делать автоматом ещё и item для контрактной скорости, и через external check выцеплять значение из базы какой-нибудь.

                    Comment

                    • arut55
                      Member
                      • Mar 2013
                      • 41

                      #11
                      Originally posted by artemk
                      Видимо писать скрипт, который будет через api дёргать значения нужных айтемов. Либо может стоит в сторону lld посмотреть, чтоб item'ы и триггеры генерить автоматом. Тогда можно делать автоматом ещё и item для контрактной скорости, и через external check выцеплять значение из базы какой-нибудь.

                      если скриптам дергать из базы данные увеличиться и то большая нагрузка на бд, я там держу огромное количество информации..
                      скрипт нужно вызывать в момент получении данных..

                      Comment

                      • ArtemK
                        Senior Member
                        • May 2013
                        • 232

                        #12
                        Ну тогда вам прямой дорогой в дебри Low Level Discovery.

                        Comment

                        • arut55
                          Member
                          • Mar 2013
                          • 41

                          #13
                          Originally posted by artemk
                          Ну тогда вам прямой дорогой в дебри low level discovery.
                          а нельзя один тригер на все элементы данных?

                          Comment

                          • ArtemK
                            Senior Member
                            • May 2013
                            • 232

                            #14
                            /me представил себе триггер с 770 элементами

                            в LLD фигачите прототип триггера, а оно уже само создаёт 770 триггеров по обнаруженным c помощью discovery item'ам

                            Comment

                            • vvlad
                              Member
                              • Apr 2011
                              • 83

                              #15
                              Originally posted by arut55
                              если скриптам дергать из базы данные увеличиться и то большая нагрузка на бд, я там держу огромное количество информации..
                              скрипт нужно вызывать в момент получении данных..
                              Вам и рыбку съесть, и хвост не намочить

                              Вам правильно посоветовали - пользуйте lld. Создавайте правило обнаружения с прототипами фактической и контрактной скорости на порту и прототипом тригера. После отработки правила получите искомые 770 тригеров. Настраивайте на сработку этих тригеров выполнение внешней команды. Получится вполне надежная схема без значительных трудозатрат.

                              Один тригер на почти тысячу итемов - лучше не стоит, выражение будет тормозным и с его читабельностью будут проблемы. Плюс - меньшая гибкость при настройке действия.

                              Comment

                              Working...