Ad Widget

Collapse

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

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • _=Alex=_
    Junior Member
    • Apr 2012
    • 26

    #1

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

    Zabbix 2.2.x

    Планируется использовать Item'ы, которые возвращают несколько значений, разделитель пробел, вида:a b c ...
    Подскажите, как в триггерах/графиках использовать только некоторые значения из ряда возвращаемых, например a и с ?
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Насколько мне известно - разбор входящей строки и разбрасывание ее частей по элементам данных Zabbix-ом не осуществляется.
    Last edited by sadman; 03-09-2015, 07:50.

    Comment

    • zubrag
      Junior Member
      • Jul 2015
      • 20

      #3
      Вот хорошее предложение для расширения функционала в следующих версиях.

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        С самого начала было "1 айтем = 1 числу". Это не "недоработка" а "выбранная архитектура"

        Comment

        • zubrag
          Junior Member
          • Jul 2015
          • 20

          #5
          Но так не хватает возможности выполнять хотя бы простые преобразования (выделять подстроку, объединять строки, конвертировать значения, преобразовывать форматы и т.д.) при формировании прототипов. Какой-нибудь встроенный язык, или хотя бы возможность использования внешних скриптов не только при дискавери. Хотя бы прикручивать регулярные выражения для преобразований.

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #6
            Можете начать копать отсюда: http://www.zabbix.com/img/zabconf201...for_Zabbix.pdf

            Comment

            • yukra
              Senior Member
              • Apr 2013
              • 1359

              #7
              Originally posted by zubrag
              Но так не хватает возможности выполнять хотя бы простые преобразования (выделять подстроку, объединять строки, конвертировать значения, преобразовывать форматы и т.д.) при формировании прототипов. Какой-нибудь встроенный язык, или хотя бы возможность использования внешних скриптов не только при дискавери. Хотя бы прикручивать регулярные выражения для преобразований.
              Я видимо живу в каком то другом мире, но в моем мире строка - это чисто строка, например версию mysql сервера. На нее только 1 триггер завязан: diff ... да и то чисто ради интереса. А все более менее используемое - число. 1 число на 1 айтем. И его не нужно не из подстроки выделять, не регуляркой искать. А если его нужно преобразовать формат, то у меня есть пользовательский множитель.

              Comment

              • zubrag
                Junior Member
                • Jul 2015
                • 20

                #8
                Вот пример:


                Ещё пример:
                AIX возвращает
                IF-MIB::ifDescr.5= STRING: en0; Product: ..............
                И для заголовка или ключа мне более чем достаточно en0, а вот для inventory, мне первая часть не обязательна (хотя это как смотреть).

                Comment

                • Jimson
                  Senior Member
                  • Jan 2008
                  • 1327

                  #9
                  Обсуждалось уже. Единственный в настоящее время вариант это ЭД типа "внешняя проверка", скрипт, кроме того что отдает данные по этому ЭД, еще отсылает на траппе данные по нескольким ЭД. Получается одна проверка = несколько ЭД. Я таким образом мониторю isg сессии.

                  Comment

                  • zubrag
                    Junior Member
                    • Jul 2015
                    • 20

                    #10
                    ЭД как переводится?
                    Поподробнее про это можно?

                    Comment

                    • yukra
                      Senior Member
                      • Apr 2013
                      • 1359

                      #11
                      Originally posted by zubrag
                      ЭД как переводится?
                      ЭД = item

                      А что подробней вас интересует?

                      Comment

                      • viktorkho
                        Member
                        • Jul 2013
                        • 90

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

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

                        Нам этот функционал тоже нужен. В принципе, могу вынести один из них в Development Services на оценку ресурсов на разработку.

                        Comment

                        • zubrag
                          Junior Member
                          • Jul 2015
                          • 20

                          #13
                          Originally posted by yukra
                          ЭД =
                          А что подробней вас интересует?
                          Как я понимаю, item создаём типа "external check", скрипт возвращает JSON, с определёнными {#MACRO}, и ещё что-то делает? Здесь поподробнее, пожалуйста.

                          Я делал discovery скрипт, который получал нужную информацию, обрабатывал и возвращал в удобочитаемом формате пять {#MACRO}, три из которых использовал в "prototype item" (остальные были на всякий случай, чтобы если что не переписывать).


                          Originally posted by viktorkho
                          Коллега, вы не одинок.
                          Плюсанул оба.
                          Last edited by zubrag; 03-09-2015, 20:01.

                          Comment

                          • yukra
                            Senior Member
                            • Apr 2013
                            • 1359

                            #14
                            Originally posted by zubrag
                            Как я понимаю, item создаём типа "external check", скрипт возвращает JSON, с определёнными {#MACRO}, и ещё что-то делает? Здесь поподробнее, пожалуйста.
                            Нее, не так.
                            Например у вас есть строка типа 'A B C', вы делаете 3 айтема: A-name: "external check", B-name: "zabbix-trapper" и C-name: "zabbix-trapper"

                            И пишете примерно такой скрипт для external check
                            Code:
                            #!/bin/bash
                            
                            LINE='A B C'
                            A=`echo $LINE | awk '{print $1}'`
                            B=`echo $LINE |awk '{print $2}'`
                            C=`echo $LINE |awk '{print $3}'`
                            zabbix_sender -k B-name -o $B
                            zabbix_sender -k C-name -o $C
                            echo $A

                            Comment

                            • viktorkho
                              Member
                              • Jul 2013
                              • 90

                              #15
                              Originally posted by yukra
                              Нее, не так.
                              Например у вас есть строка типа 'A B C', вы делаете 3 айтема: A-name: "external check", B-name: "zabbix-trapper" и C-name: "zabbix-trapper"

                              И пишете примерно такой скрипт для external check
                              Code:
                              #!/bin/bash
                              
                              LINE='A B C'
                              A=`echo $LINE | awk '{print $1}'`
                              B=`echo $LINE |awk '{print $2}'`
                              C=`echo $LINE |awk '{print $3}'`
                              zabbix_sender -k B-name -o $B
                              zabbix_sender -k C-name -o $C
                              echo $A
                              Соответственно, айтемов тоже три:
                              B - типа zabbix-траппер
                              C - типа zabbix-траппер
                              A - типа внешняя проверка

                              Comment

                              Working...