Ad Widget

Collapse

lld шаблон - динамический комьюнити snmp

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • zotovp
    Junior Member
    • Mar 2013
    • 14

    #1

    lld шаблон - динамический комьюнити snmp

    Добрый день!
    Проблема в следующем:
    Есть шаблон с правилом обнаружения в режиме "Внешняя проверка". В качестве проверки в нем выступает написанный на bash скрипт, который генерирует json из обнаруженных абонентских комплектов (SU). Дело в том, что мониторинг значений в дальнейшем должен осуществляться по шаблону [email protected]_SU, где COMMUNITY и SU - неизменные строки, а MAC_SU - это мак-адрес абон. комплекта, который меняется для каждого элемента данных, порожденого шаблоном. При попытке использовать макрос из json в поле SNMP комьюнити, аналогично полям "Ключ" или "Имя", в которых все отрабатывает отлично, (в моем случае поле "Имя" выглядит так: {#SNMPDESCR}[{#SNMPMAC}].ifAirInOctets ), например строка в поле SNMP комьюнити public@SU.{#SNMPMAC}, шаблон не подставляет значение из макроса, оставляя текст как есть.
    Есть ли возможность обойти эту проблему, подскажите, будьте добры!
    Заранее благодарю за участие в решении проблемы.
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    Хачить код надо, подстановки макросов во всех местах разные, в каждом случае дополнительные ограничения вводятся, в тригерах разрешено одно, в ключах итемов другое, в именах третье и тд и тп. В данном случае для параметра community расширение LLD макросов не делается, для этого параметра поддерживаются только глобальные и пользовательские макросы опеределнные в темплейтах и хостах.

    P.S. не совсем понял зачем использовать разные SNMP community

    P.P.S. еще одно решение это делать каждый SU отдельных хостом, но тогда прийдется использовать не LLD дискаверинг, а внешний дискаверинг скриптом и заведение хостов через API. У меня как раз последний вариант в ходу: VSAT хоть и является отдельной железкой, но все данные по нему вытягиваются из NMS спутникового хаба, можно сделать SNMP LLD и получить внутри одного "хоста" данные по всем VSAT, получится хост "ХАБ" на 20k+ элементов данных с которыми хз что дальше делать Поэтому каждый VSAT заводится отдельным хостом, у которого определяется макрос-идентификатор, а итемы без всякого дискаверинга собираются по SNMP (правда с раскрытием макросов в SNMP_OID у забикса тоже проблема, пришлось пачить).

    Comment

    • zotovp
      Junior Member
      • Mar 2013
      • 14

      #3
      > to P.P.S

      Отдельным хостом делать несподручно, потому что все опрашиваемые железки это абон. комплекты базовой станции WiMAX, и периодически необходимо опрашивать количество подключенных комплектов и далее мониторить их параметры.

      > to P.S

      Разные комьюнити используются по той причине, что в MIB базовой станции WiMAX нельзя вложить опрос димамически линкуемых к ней абон. комлектов, поэтому опрос каждого комплекта производится путем использования особого комьюнити, определяющего собой, какой из абон. комплектов мониторить, а так как уникальным значением в этом случае является mac-адрес этой SU, производителем заложена идентификация следующего формата bs_community @ su.mac_su, и при дискаверинге у меня в забикс возвращается json с параметром Алиаса и MAC-адреса найденной SU. Далее согласно прототипам, должны создаваться элементы данных, и для каждого набора прототипов свой уникальный комьюнити.

      Сейчас у меня версия zabbix 2.0.5, и в поле SNMP_OID как раз макрос работает.
      Я тоже уже прихожу к мнению, что нужно изменить немного код забикса, добавить обработку макроса из json и к полю SNMP community, но поскольку я не знаком с архитектурой его написания, боюсь поиск займет уйму времени, поэтому прошу опытных в этом деле подсказать, где искать функции подстановки макроса при парсинге json zabbix'ом.
      Last edited by zotovp; 23-03-2013, 08:26.

      Comment

      • zotovp
        Junior Member
        • Mar 2013
        • 14

        #4
        Найдено решение проблемы, подробнее здесь

        Comment

        Working...