Ad Widget

Collapse

item возвращает несколько значений

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pic16f874
    Member
    • Nov 2012
    • 61

    #16
    на мой взгляд, разделить строку внешним скриптом на несколько элементов данных - самое оптимальное решение.
    таким образом Вы будете нагружать парсингом внешний скрипт (его можно запустить вообще на другой машине, отдельно от заббикса, и загрузить значения zabbix-sender -ом)
    а не сам заббикс-сервер.

    это не важно когда у Вас мало объектов мониторинга, и очень важно
    когда много. Тогда простота триггеров существенно повышает производительность системы.

    Comment

    • zubrag
      Junior Member
      • Jul 2015
      • 20

      #17
      Originally posted by pic16f874
      на мой взгляд, разделить строку внешним скриптом на несколько элементов данных - самое оптимальное решение.
      А ещё оптимальней было бы использовать встроенные средства парсинга.
      Тогда можно было бы вставлять их в разные места: заголовки итемов, ключи, комментарии. На пример что-то вроде {#snmpvalue // [1-9]* /} или как-то так.

      Originally posted by yukra
      А дошло, интерестно. Немного спорно, но интерестно.

      Comment

      • Jimson
        Senior Member
        • Jan 2008
        • 1327

        #18
        Originally posted by zubrag
        А дошло, интерестно. Немного спорно, но интерестно.
        Это не спорно, это рабочее и единственное решение для случая когда надо в забиксе получить несколько итемов связанных между собой. Например, как я уже писал, мониторинг ISG сессии, там нет одного OID по которому можно выгрести "все данные" и потом распарсить, надо выбирать несколько OID в один момент времени, что бы состояние сессии и активные сервисы соответствовали друг другу. У Zabbix нет возможности синхронизировать опрос нескольких элементов данных между собой.

        Или другой пример, мониторинг цискового SLA монитора. Там примерно полтора десятка OID на основании которых можно рассчитать математически латенси и девиацию. Если эти OID пулить забиксом то запросто получается так что часть из этих OID получают данные относящиеся к одному замеру SLA, а часть к другому, и, как следствие, вычисления затем дают эпические результаты.

        Предложенным способом можно не только синхронизировать сбор данных, но и сократить объем хранимых данных, например, хранить сумму квадратов и квадрат суммы задержек SD/DS в забиксе смысла нет никакого, нас интересует только результат - латенси и девиация, которые посчитает скрипт (а не вычисляемый элемент данных) и отправит в забикс.

        Разговоры о том что скриптовые решения грузят сервер смысла в настоящее время не имеют. Если речь идет о миллионах скриптовых проверок в секунду, то я еще готов согласится, но когда речь идет о нескольких десятков форков в секунду, то это ниочем. Вот у меня в кластере утилизация CPU в среднем не превышает 5%. Другой вопрос что когда продукт обрастает скриптами, то сопровождать это крайне сложно, поэтому, например, биллинговая система X + куча парсеров на перлах хуже чем тот же BGB с динамическим java кодом. И поэтому я до сих пор живу на zabbix 2.0

        Comment

        • Zentarim
          Senior Member
          • Mar 2012
          • 526

          #19
          Originally posted by viktorkho
          Коллега, вы не одинок.
          Плюсуйте в один из этих реквестов:
          Zabbix Lua Master Ticket
          Ability to transform item values before they are processed and stored to DB

          А лучше - в оба.
          Еще лучше - пригласите друзей человек пятьдесят, пусть тоже голосуют.

          Нам этот функционал тоже нужен. В принципе, могу вынести один из них в Development Services на оценку ресурсов на разработку.
          Проголосовал за оба. Было бы неплохо давать возможность прогонять полученное значение через простейшие преобразования. Так как некоторые производители имеют весьма СПЕЦИФИЧЕСКОЕ представление о том, что и в каком формате пользователю должно отдаваться в мониторинге.

          Как вариант: прогонять полученное значение через внешнюю команду (bash\awk\sed\perl\etc).

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #20
            Кстати, по-моему вполне реально изобразить патч для добавления функции вычисляемого айтема, вида doregexp("host:key", regexp_expression) - в коде есть, что позаимствовать для нее из схожих функций (regexp, iregexp).

            Comment

            • viktorkho
              Member
              • Jul 2013
              • 90

              #21
              Originally posted by sadman
              Кстати, по-моему вполне реально изобразить патч для добавления функции вычисляемого айтема, вида doregexp("host:key", regexp_expression) - в коде есть, что позаимствовать для нее из схожих функций (regexp, iregexp).
              Этому патчу скоро 10 лет как, а функционал всё никак не примут
              PATCH: Lua Scripts in Zabbix

              Comment

              • sadman
                Senior Member
                • Dec 2010
                • 1611

                #22
                Там создается новый тип данных и в него не попадает принятая инфа, насколько я понимаю. Я же имел в виду функцию вычисляемого типа, в который будут попадать уже принятые данные. Т.е. можно будет подстроку получить, к примеру.
                Конечно, он не совсем красиво впишется в систему существующих функций...

                Comment

                • viktorkho
                  Member
                  • Jul 2013
                  • 90

                  #23
                  Originally posted by Jimson
                  Это не спорно, это рабочее и единственное решение для случая когда надо в забиксе получить несколько итемов связанных между собой...
                  Давайте называть вещи своими именами - это костыль, и только ввиду отсутствия нативного функционала - "рабочее и единственное решение для случая когда надо.."

                  И, кстати, еще один очень важный, и тоже отсутствующий функционал, озвученный вами тут же:
                  Originally posted by Jimson
                  Если эти OID пулить забиксом то запросто получается так что часть из этих OID получают данные относящиеся к одному замеру SLA, а часть к другому, и, как следствие, вычисления затем дают эпические результаты.
                  Предложенным способом можно не только синхронизировать сбор данных...
                  Если перефразировать - Zabbix в принципе не может за один запрос к внешней системе получить и записать в БД более одного значения одного айтема самостоятельно.

                  Можно много спорить о необходимости такой возможности в Zabbix, но её отсутствие никогда не позволит заббиксу встать на один уровень с самыми захудалыми SCADA-системами.

                  В этом месте внимание - я не позиционирую Zabbix на место промышленного контроллера автоматики. Но даже место агрегирующего сервера (с контроллеров атоматики) для элементарных HMI и эскалаций Zabbix занять не сможет.

                  Далее на примере. Контроллер за один запрос может отдать 500 параметров, но ответить по сети (Modbus, например) может не чаще одного раза в 5 секунд. Требуется обеспечить сбор значений этих 500 параметров с дискретом раз в 10 секунд. Сам по себе заббикс с 500 айтемами и частотой опроса 0.1Гц заддосит контроллер 50-ю запросами в секунду.

                  Внешний скрипт, конечно, как всегда придёт на выручку админу.

                  Но мало кто на реальном предприятии купит этот скрипт вместе с Zabbix, купят адекватную (в данном случае) систему, где всё есть "из каробки", с техподдержкой и дороже в 5 раз, чем скрипт и годовая поддержка в Zabbix SIA того же одного сервера. Проверено.

                  Comment

                  • sadman
                    Senior Member
                    • Dec 2010
                    • 1611

                    #24
                    А о чем спор-то? Заббикс тащит за собой исторически сформировавшуюся архитектуру. Он изначально не был нацелен на жестко связанные с таймлайном системы. Можно в нем найти сколь угодно много несоответствий своим взглядам на "правильный" мониторинг и в этом случае выхода два - купить подходящую систему или написать что-то самому. Однако, мы почему-то здесь и обсуждаем проблемы заббикса, а не другой системы. Значит он удовлетворяет нашим задачам и нам по карману.

                    А если Zabbix SIA еще существует, то и бизнес-модель вполне отвечает их требованиям. То есть - всем хорошо. Или неплохо, во всяком случае ))

                    Comment

                    • viktorkho
                      Member
                      • Jul 2013
                      • 90

                      #25
                      Originally posted by sadman
                      А о чем спор-то?
                      Да это и не спор. Во-первых, что-то вроде вброса. (Да, признаюсь.)
                      Во-вторых, я таки планирую на этот функционал собрать единомышленников. Zabbix SIA не отказывается его реализовать и даже называет цену. Но мне таки кажется, что это может оказаться полезным более чем одной стороне.

                      Comment

                      • oscar
                        Senior Member
                        • Dec 2010
                        • 141

                        #26
                        Originally posted by viktorkho
                        Далее на примере. Контроллер за один запрос может отдать 500 параметров, но ответить по сети (Modbus, например) может не чаще одного раза в 5 секунд. Требуется обеспечить сбор значений этих 500 параметров с дискретом раз в 10 секунд. Сам по себе заббикс с 500 айтемами и частотой опроса 0.1Гц заддосит контроллер 50-ю запросами в секунду.
                        +100500
                        Тоже мониторю контроллер по modbus. Для этого писал "драйвер" на С. 144
                        параметра в 2 запроса с интервалом 9 сек. ИМХО было бы классно если бы zabbix умел возвращать объект, а не просто значение.
                        Last edited by oscar; 07-09-2015, 09:00.

                        Comment

                        • Jimson
                          Senior Member
                          • Jan 2008
                          • 1327

                          #27
                          Originally posted by viktorkho
                          Но мало кто на реальном предприятии купит этот скрипт вместе с zabbix, купят адекватную (в данном случае) систему, где всё есть "из каробки", с техподдержкой и дороже в 5 раз, чем скрипт и годовая поддержка в zabbix sia того же одного сервера. Проверено.
                          И это система из коробки либо будет написана под узко специализированную задачу, либо это будет тот же скрипт (точнее целая коллекция бандлед "костылей"), про который вам не напишут в буклете, а вы сделаете вид что не догадываетесь как же это на самом деле реализовано. Поверьте, я тоже видел не мало коммерческих "промышленных" систем.

                          Comment

                          • viktorkho
                            Member
                            • Jul 2013
                            • 90

                            #28
                            Item возвращает несколько значений

                            Originally posted by Jimson
                            И это система из коробки либо будет написана под узко специализированную задачу, либо это будет тот же скрипт (точнее целая коллекция бандлед "костылей")
                            Тоже не могу не согласиться, решения встречаются всякие.

                            Уважаемые коллеги и единомышленники.
                            Нас таки больше 2, кому нужен обсуждаемый функционал.
                            Прошу писать в топик конструктивные предложения и скептические замечания к функционалу "Item возвращает несколько значений".

                            Прошу так же подсказать наиболее подходящий таск в трекере. (Что-то я сомневаюсь, что из найденных мною (одного) ZBXNEXT-103 2009 (!) самый подходящий.)

                            Тема для форумов и трекера не нова. Собрать сам ссылки в один пост не смогу (ввиду лимита в 2 ссылки).

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

                            Comment

                            • zubrag
                              Junior Member
                              • Jul 2015
                              • 20

                              #29
                              Originally posted by Jimson
                              И это система из коробки либо будет написана под узко специализированную задачу, либо это будет тот же скрипт (точнее целая коллекция бандлед "костылей"), про который вам не напишут в буклете, а вы сделаете вид что не догадываетесь как же это на самом деле реализовано. Поверьте, я тоже видел не мало коммерческих "промышленных" систем.
                              Очень зря Вы скриптовые решения так страшно хаете. Очень удобная и легко поддерживаемая вещь. Примером чему является IBM PowerHA (он же HACMP)(Кластер под AIX). Очень гибкая и кастомизируемая система. И его скриптовость пару раз сильно выручала.

                              Comment

                              • sadman
                                Senior Member
                                • Dec 2010
                                • 1611

                                #30
                                Originally posted by viktorkho

                                Предлагаю собрать юскейсов.
                                Так же в каком-нибудь подходящем англоязычном топике.
                                Какой алгоритм прохождения данных от обьекта до записи в БД вам видится?

                                Comment

                                Working...