Ad Widget

Collapse

Формирование SNMP OID

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vania01
    Junior Member
    • Feb 2019
    • 16

    #1

    Формирование SNMP OID

    Всем привет.

    есть допустим OID вида iso.3.6.1.2.1.1.8.ZZZ
    ZZZ использую для автообнаружения
    соответственно ZZZ zabbix заворачивает в #SNMPINDEX + создаю для полученного значения свой макрос #DATA

    есть еще один OID вида вида iso.3.6.1.2.1.1.45.ZZZ.Y.Y.Y.Y.Y
    где часть Y.Y.Y.Y.Y формируется случайно
    причем каждому ZZZ соответствует только одна строка значения


    В прототипе элемента задаю имя с использованием #DATA ключ с #SNMPINDEX
    вопрос в SNMP OID я как-то могу задать значение ключа
    типа iso.3.6.1.2.1.1.45.{#SNMPINDEX}.* чтоб он сам взял значение которое первое идет дальше? Маску какую прописать или еще как то?
    типа как делает вывод snmpwalk когда не весь OID задаешь?








  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3406

    #2
    Насколько я знаю, такой возможности нет. То, что делает при опросе Zabbix, скорее является аналогом snmpget, а не snmpwalk. Т.е. надо явно задавать полный OID.
    Тут бы вложенное автообнаружение присобачить, но такого, по-моему, тоже нет :-(
    Разве что писать собственные скрипты для этого, но тогда теряется вся прелесть штатного SNMP-опроса Zabbix-а, где все настройки делаются централизованно.

    Comment

    • vania01
      Junior Member
      • Feb 2019
      • 16

      #3
      Originally posted by Kos
      Насколько я знаю, такой возможности нет. То, что делает при опросе Zabbix, скорее является аналогом snmpget, а не snmpwalk. Т.е. надо явно задавать полный OID.
      Тут бы вложенное автообнаружение присобачить, но такого, по-моему, тоже нет :-(
      Разве что писать собственные скрипты для этого, но тогда теряется вся прелесть штатного SNMP-опроса Zabbix-а, где все настройки делаются централизованно.
      Спасибо за пояснение.

      Решил пойти по пути внешенго скрипта. Даные в zabbix скрипт отдает. Но теперь вопрос как я могу из существующего элемента его значение в скрипт пихнуть? чтоб потом ответ в текущий элемент положить?
      Во внешеней проверки скрипт задал
      Пробовал так:
      scritpt.py["-param","{HOSTNAME}:my.item"]
      Но что то глухо, HOSTNAME разворачивает, но в скрипт значение не падает.

      Можете пояснить такой момент?

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3406

        #4
        А какое значение вы пытаетесь передать? Боюсь, что так тоже не выйдет.
        Я бы делал вызов скрипта прямо в прототипе нового айтема, передавая ему в качестве параметров {HOST.CONN}, iso.3.6.1.2.1.1.45.{#SNMPINDEX} и {$SNMP_COMMUNITY}. С тем, чтобы скрипт, сделав какой-нибудь snmpwalk, вернул бы одно значение.

        Comment

        • vania01
          Junior Member
          • Feb 2019
          • 16

          #5
          Originally posted by Kos
          А какое значение вы пытаетесь передать?
          Ну получает допустим элемент с агента строку "TEST", хранит ее в ключе своем. Вот этот "TEST" мне в скрипт нового элемента пихнуть, чтоб на основании его уже получить уже значение для него.
          В вычисляемых же элементах можно по ключу получить значения, думал как-то можно их наружу подобным образом вывести. А тут выходит в систему вариантов загрузить значения много, а вы вывести наружу как-то кисло.
          За вариант спасибо, но уже предполагаю будет мешанина из прототипов и множества вспомогательных ключей.



          Comment

          • Kos
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Aug 2015
            • 3406

            #6
            Originally posted by vania01
            Ну получает допустим элемент с агента строку "TEST", хранит ее в ключе своем. Вот этот "TEST" мне в скрипт нового элемента пихнуть, чтоб на основании его уже получить уже значение для него.
            Нет, ключ элемента данных - вещь достаточно статичная, в нём ничего не хранится. Он формируется либо один раз руками, либо (в случае LLD) генерируется из прототипа. Полученные же значения хранятся в истории, они доступны через API либо через триггерные функции (например, last()), но в ключ другого элемента данных их не вставить. В вычисляемых элементах данных их тоже можно использовать (поскольку там используются те же триггерные функции), но оттуда не вызвать внешний скрипт.

            Originally posted by vania01
            За вариант спасибо, но уже предполагаю будет мешанина из прототипов и множества вспомогательных ключей.
            Ну, мне не кажется так уж страшно. Тем более, что других рабочих вариантов я пока не вижу. Если у вас получится что-то придумать - поделитесь, пожалуйста.

            Comment

            • vania01
              Junior Member
              • Feb 2019
              • 16

              #7
              В общем решил через скрипт на питоне и API:

              Сам скрипт который получает ключ Внешней проверки ( script.py["-key","{HOST.HOST}::key.test"] ), ищет его по всей базе и возвращает последнее занчение. Которое уже можно использовать как хочешь

              Может кому сгодится
              Attached Files
              Last edited by vania01; 15-02-2019, 16:18.

              Comment

              Working...