Ad Widget

Collapse

Переменная в имени триггера

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Connected
    Member
    • Mar 2015
    • 39

    #1

    Переменная в имени триггера

    Доброго времени суток!

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

    Сделал прототипы элементов данных для трапов по каналам , и прототипы для именён групп.
    Сделал прототипы триггеров.

    В дашборде "хотелось бы видеть" аварию в виде например :
    Code:
    Группа X.X.X.X канал "Супер ТВ" артефакты.
    Но вместо этого вижу:

    Code:
    IPTV: ARTEFACT Channel 230.200.201.185 {iptv-analyzer:Channel.name["230.200.201.185$"].last(0)}
    Конфиг элементов данных:

    Трапы

    Code:
    Имя: Channel $1 trap
    Тип: SNMP trap
    Ключ: snmptrap["{#SNMPVALUE}$"]
    Тип информации: Журнал (лог)
    Имена

    Code:
    Имя: Channel name $1
    Тип: SNMPv2 агент
    Ключ: Channel.name["{#SNMPVALUE}$"]
    Тип информации: Символ


    Имена нормально отображаются в последних данных.

    Как решить такую проблему?
    Спасибо за помощь!


    PS {#SNMPVALUE}$ написан со знаком $ специально , чтобы корректно матчились трапы .
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Имена каналов и групп в одном lld приходят или в разных? Если в разных, то в одном триггере вы их не сможете использовать.

    Comment

    • Connected
      Member
      • Mar 2015
      • 39

      #3
      Originally posted by sadman
      Имена каналов и групп в одном lld приходят или в разных? Если в разных, то в одном триггере вы их не сможете использовать.
      Если я правильно понял - в одном . Это одно правило обнаружения с несколькими элементами данных.

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        В таком случае что мешает сделать триггеру имя вида: "Группа {#groupname} канал '{#channelname}' артефакты" или "Канал '{#snmpvalue}' артефакты"?

        Как lld обнаруживает каналы/группы, какие переменные приходят в это правило?

        Comment

        • Connected
          Member
          • Mar 2015
          • 39

          #5
          Во вложении скриншоты
          Attached Files

          Comment

          • Connected
            Member
            • Mar 2015
            • 39

            #6
            "Канал '{#snmpvalue}' артефакты"
            Так работает .

            Интересует как сделать
            "Группа {#groupname} канал '{#channelname}' артефакты"

            Comment

            • sadman
              Senior Member
              • Dec 2010
              • 1611

              #7
              Придется опять натирать магический хрустальный шар.

              Раз у вас траппер SNMPv2, то имя группы вы наврядли получаете, в правило приходит только имя канала через {#SNMPVALUE}. Т.е. в триггере будет возможность сослаться исключительно на него.

              Рассказывайте теперь, где и как можно увидеть имя группы:
              Помимо списка групп отдаются имена каналов.

              Comment

              • Connected
                Member
                • Mar 2015
                • 39

                #8
                Originally posted by sadman

                Как lld обнаруживает каналы/группы, какие переменные приходят в это правило?
                Сделано одно правило для обнаружения : обнаруживаются ip адреса групп. К обнаруженному адресу создается трап и элемент данных "имя группы".

                Во вложении темплейт
                Attached Files

                Comment

                • Connected
                  Member
                  • Mar 2015
                  • 39

                  #9
                  Originally posted by sadman
                  Придется опять натирать магический хрустальный шар.

                  Раз у вас траппер SNMPv2, то имя группы вы наврядли получаете, в правило приходит только имя канала через {#SNMPVALUE}. Т.е. в триггере будет возможность сослаться исключительно на него.

                  Рассказывайте теперь, где и как можно увидеть имя группы:
                  Кажется до меня дошли ваши слова.
                  Т.е. если поменять значение {#SNMPVALUE} на {#Channelname} - соответсвенно корректно вставить в триггер должно заработать.... сейчас попробую - отпишусь

                  Comment

                  • Connected
                    Member
                    • Mar 2015
                    • 39

                    #10
                    Нет видимо не дошло до меня ....
                    Теперь вижу только :
                    Code:
                    IPTV: ARTEFACT Channel 230.200.201.201 {#CHNAME}
                    В элементе данных поменял ключ на Channelname["{#CHNAME}"]

                    Comment

                    • sadman
                      Senior Member
                      • Dec 2010
                      • 1611

                      #11
                      Не поможет. Я посмотрел ваш темплейт и не увидел ни одного упоминания имени группы - только имя канала, получаемое через SNMP Discovery в макросе {#SNMPVALUE}.

                      Для Zabbix 2.x справедливо следующее:
                      В отличие от обнаружения файловых систем и сетевых интерфейсов - этот элемент данных не требует наличия ключа “snmp.discovery”, а достаточно указать что тип элемента данных - SNMP агент.

                      Также в отличие от предыдущих примеров, этот элемент данных обнаружения будет генерировать два макроса для каждого обнаруженного объекта: {#SNMPINDEX} и {#SNMPVALUE}.
                      Таким образом, штатным способом, в одном правиле обнаружения вы не можете получать два значения - имя и группу канала, только что-то одно.

                      Для обхода данной ситуации необходимо писать скрипт, расширяющий возможности SNMP дискаверинга, который будет подсовывать правилу LLD макросы {#groupname} и {#channelname} c соответствующими значениями, выдернутыми из исследуемого устройства. ...или переписывать правило под Zabbix v3, где, по-моему, уже можно получать множественные значение с разных OID одним запросом.

                      Comment

                      • sadman
                        Senior Member
                        • Dec 2010
                        • 1611

                        #12
                        Насколько я понял из описания IPTV (сам его не использую и не знаком с технологией), ТВ канал == multicast address. Получается, что имя канала эквивалентно адресу мультикаст группы и эквивалентно {#SNMPVALUE}.

                        Если это так, то название "Канал '{#snmpvalue}' артефакты" вполне себе самодостаточно.

                        Можно, конечно, сделать такое: "Канал {#SNMPINDEX} группа '{#SNMPVALUE}' - артефакты", но насколько SNMPINDEX будет отражать реальность - вопрос.

                        ...или под именем группы имеется что-то особенное и оно как-то вытаскивается из потока?

                        Comment

                        • Connected
                          Member
                          • Mar 2015
                          • 39

                          #13
                          На самом деле дело не в самом IPTV.

                          Можно переиначить на интерфейсы.
                          Например у меня строятся графики интерфейсов , в которых используется имя интерфейса IFDescr и IFAlias - Zabbix без проблем отрисовывает график вида port 8 - uzel15 . Где port 8 получено из IfDescr , а uzel15 из ifAlias .

                          Comment

                          • Connected
                            Member
                            • Mar 2015
                            • 39

                            #14
                            То есть , график с таким именем : Non Unicast traffic GigabitEthernet3/1/0.2010 {{HOST.HOST}:ifAlias[GigabitEthernet3/0/1].last(0)}

                            отображается как :



                            Вероятно это относится только к графикам.
                            Attached Files

                            Comment

                            • sadman
                              Senior Member
                              • Dec 2010
                              • 1611

                              #15
                              Не вижу противоречий.

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

                              Вопрос только в том - как берутся имена групп и как они взаимоотносятся с именами каналов. Всё остальное в большей мере решаемо.

                              Comment

                              Working...