Ad Widget

Collapse

Переменные параметры ключа в шаблоне

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • selivan
    Junior Member
    • Jun 2011
    • 17

    #1

    Переменные параметры ключа в шаблоне

    Есть некоторый шаблон(несколько Zabbix_trapper), который предоставляет элементы вида nut.status[ups_name@host], и соответствующие им триггеры. Для хостов, к которым шаблон должен применяться, ups_name@host могут буть разными.

    Как сделать, чтобы ups_name@host можно было править после присвоения хосту шаблона?

    Сейчас я делаю так: присваиваю хосту шаблон, делаю Unlink, оставшиеся items правлю руками. Криво, неудобно, теряется весь смысл шаблонов: если что-то будет нужно поправить, придётся лезть руками во все хосты
  • zalex_ua
    Senior Member
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Oct 2009
    • 1286

    #2
    У меня есть классно запиленый шаблон под NUT.
    Только не могу его отэкспортировать, потому что в транке, которым я пользуюсь, экспорт не работает.
    Используйте пользовательские макросы как параметр в ключе, который будет содержать имя упса.
    Потом просто в каждом узле сети создаете этот макрос и пишите индивидуальное имя. Нечего вручную править не надо.

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

    Ключ со стороны агента: UserParameter=ups[*],/usr/local/bin/upsc $1 $2 2>&1
    Путь может быть другим на других ОС!
    Last edited by zalex_ua; 17-06-2011, 08:34.

    Comment

    • selivan
      Junior Member
      • Jun 2011
      • 17

      #3
      Не заработало

      ОС Debian GNU/Linux 6.0 squeeze
      Zabbix 1.8.5 (спечиально поставил версию из testing, т. к. судя по докам до 1.8.4 использовать пользовательские макросы в именах триггеров и описаниях items нельзя).

      Как делал: создавался шаблон, в нём - пользовательский макрос {$UPSNAME}, задавалось значение по-умолчанию. Для хоста, которому был назначен шаблон, макрос с таким же именем переопределялся собственным значением. Макрос использовался в описаниях и ключах items, в именах триггеров. Судя по результатам, макрос нигде не раскрывался. При замене макроса в айтемах и триггерах на явно заданную строку всё работает

      Comment

      • zalex_ua
        Senior Member
        Zabbix Certified Trainer
        Zabbix Certified SpecialistZabbix Certified Professional
        • Oct 2009
        • 1286

        #4
        Originally posted by selivan
        Есть некоторый шаблон(несколько zabbix_trapper), который предоставляет элементы вида nut.status[ups_name@host],
        А почему траппер? я надеюсь это уже исправлено?

        Originally posted by selivan
        Не заработало
        Как делал: создавался шаблон, в нём - пользовательский макрос {$upsname}, задавалось значение по-умолчанию. Для хоста, которому был назначен шаблон, макрос с таким же именем переопределялся собственным значением. Макрос использовался в описаниях и ключах items, в именах триггеров. Судя по результатам, макрос нигде не раскрывался. При замене макроса в айтемах и триггерах на явно заданную строку всё работает
        Включайте дебаглог у агента и смотрите лог, что там у вас приходит. У меня же работает. Я правда пользуюсь последним транком, но когда я создавал шаблон у себя то актуальной стабильной версией была наверное 1.8.3. То что макросы не раскрываются в нескольких местах ГУИ это не значит что их не раскрывает сервер.
        Проверьте еще раз все настройки - должно работать.

        Comment

        • selivan
          Junior Member
          • Jun 2011
          • 17

          #5
          А почему траппер? я надеюсь это уже исправлено?
          Потому что я не собираю статистику с помощью upsc. Я сделал nut_notify.sh, прописал его в nutmon.conf как NOTIFYCOMMAND, для всех событий добавил NOTIFYFLAG EXEC, и посылаю мониторингу сообщения о переходе UPS'ов online/on_battery и принудительном выключении хостов средствами NUT

          ОК, дебаг врублю и посмотрю что происходит

          Comment

          • zalex_ua
            Senior Member
            Zabbix Certified Trainer
            Zabbix Certified SpecialistZabbix Certified Professional
            • Oct 2009
            • 1286

            #6
            Originally posted by selivan
            Потому что я не собираю статистику с помощью upsc. Я сделал nut_notify.sh, прописал его в nutmon.conf как notifycommand, для всех событий добавил notifyflag exec, и посылаю мониторингу сообщения о переходе ups'ов online/on_battery и принудительном выключении хостов средствами nut

            ОК, дебаг врублю и посмотрю что происходит
            аааааа, понятно. Неожиданно, жаль что я этот момент не уточнил сразу.

            Не знаю пытался ли ктонибудь использовать макросы в параметрах ключа с типом траппер.
            Логика такова что когда тим элемента данных - Агент, то сервер при попытке опроса читает ключ, и все что там похоже на синтаксис макросов пытается раскрыть. Что касается траппера - сервер получает значение и пытается найти элемент данных с совпадающим ключем. Мне сложно представить как он может интеллектуально пересмотреть все существующие ключи узла сети, в которых есть макросы, рассказать все макросы и потом может быть найти совпадающий ключ., да и так чтобы не нагрузить БД сотнями запросов.

            Мне кажется для траппера раскрытие макросов в ключах не производится.

            В таком случае вам нужно смотреть дебаглог сервера а не агента. Хотя в этой части там ничего полезного вы наверное не увидите (я имею опыт изучения дебага).
            Хотя нужно проверить.

            Comment

            • selivan
              Junior Member
              • Jun 2011
              • 17

              #7
              интеллектуально пересмотреть все существующие ключи узла сети, в которых есть макросы, рассказать все макросы и потом может быть найти совпадающий ключ., да и так чтобы не нагрузить БД сотнями запросов
              О_о ИМХО логичнее было бы при изменении макросов для хоста одноразово прошерстить все его айтемы/триггеры, сохранить то, что получается с учётом раскрытия макросов и использовать до следующего изменения. И макросы всегда работали бы, и по производительности так выгоднее.

              В любом случае, стоит эту особенность в документации осветить.

              Спасибо за помощь

              Comment

              Working...