Ad Widget

Collapse

LLD, как использовать один ключ для обнаружения и прототипа элемента данных?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Griboed0ff
    Senior Member
    • Sep 2022
    • 153

    #1

    LLD, как использовать один ключ для обнаружения и прототипа элемента данных?

    Всем доброго времени суток! Версия заббикса 4.2. Создал на стороне агента элемент данных, который отвечает json. Его я бы хотел его ставить на мониторинг через LLD. Создал правило обнаружения с ключом из конфига агента, а далее я хотел бы создать прототип эд из этого же ключа, который был в правиле обнаружения. Думал создать прототип эд и далее создать кучу зависимых эд, в которых буду вытаскивать нужные поля из json. Но как мы знаем, нельзя использовать один и тот же ключ.
    Ранее в LLD всегда использовался один ключ, а прототипах были уже другие и проблем не было.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Я отвечал на подобный вопрос всего месяц назад (ссылка); посмотрите ту ветку, пожалуйста.

    Меня, правда, смущает версия 4.2 (которая давно уже не поддерживается): в ней может не хватать каких-то вещей, которые появились позже.
    Но, вроде бы, и зависимые элементы данных, и предобработка с помощью JSONPath-выражений там уже есть (как минимум, с версии 4.2.5); хотя я бы рекомендовал обновляться до текущей LTS-версии (6.0.х, на данный момент - 6.0.12).

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #3
      Надо, наверно, алгоритм отсюда поместить в какие-нибудь FAQ. Есть еще статья в блоге, но там упущен один важный момент, инструкция коллеги Hamardaban​ на форуме лучше.

      Comment

      • Griboed0ff
        Senior Member
        • Sep 2022
        • 153

        #4
        Получается, чтобы сделать правило lld нужно изначально создать эд 1 и потом уже плясать от него, создавая правило lld зависимое от эд1 с предпроцессингом и макросом, далее создавать зависимые от эд 1 с использованием макроса lld? Если так, то и нет никакого смысла в lld. Вся суть моей проблемы сводится к тому, чтобы обнаруживать эд, если он есть и его же разбирать через json-path. Мне часто хочется так поступить, через lld поставить на мониторинг какой-нибудь эд, если он есть у хоста. Если нет, то и суда нет. Возможно я не понимаю чего-то, но для какой-то части хостов такого эд не существует, он просто будет висеть как неподдержваемый.
        Last edited by Griboed0ff; 30-01-2023, 18:54.

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #5
          В таком случае, возможно, вам нужно Singleton discovery

          Comment

          • Griboed0ff
            Senior Member
            • Sep 2022
            • 153

            #6
            В общем возможно я не до конца разобрался в singleton, но все снова свелось к тому, что сначала нужен эд, а уже потом из него рождается много зависимых. Пока решил задачу на стороне скрипта powershell, добавил Param(), который принимает любое значение и нигде потом не используется. Получилось добавить lld, а так же эд с одним и тем же ключом используя lld макрос, ну а потом кучу зависимых. Задача решена, но все же как я понял singleton должен решать мои проблемы. Но везде примеры нашел только когда эд уже существует. Пример.

            Comment

            Working...