Ad Widget

Collapse

Можно ли передавать значение в discover rule из host macro?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Ilya Evseev
    Junior Member
    • Feb 2019
    • 7

    #1

    Можно ли передавать значение в discover rule из host macro?

    По умолчанию JSON для Discovery Rule передаётся серверу агентом.

    Вопрос: можно ли этот JSON хранить прямо на сервере в свойствах хоста?

    Например, создаём в host macros:
    Code:
     
     {$PORTMON_TCP} = { "data" : [ { "{#PORT}" : "22" }, { "{#PORT}" : "80" }, { "{#PORT}" : "443" } ] }
    ..и discovery rule автоматически создаст для этого хоста метрики "net.tcp.listen[]" для указанных портов.
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    При желании можно, начиная с 4.2. Пользовательский макрос раскрывается в JS в препроцессинге, так что можно использовать его и для создания LLD.

    Comment

    • Ilya Evseev
      Junior Member
      • Feb 2019
      • 7

      #3
      Originally posted by Semiadmin
      Пользовательский макрос раскрывается в JS в препроцессинге
      Как именно?

      В препроцессинге можно использовать JavaScript, но текст функции вставляется непосредственно в правило, а не читается из макроса.

      И JS-функция не умеет читать макросы, судя по тому, что https://support.zabbix.com/browse/ZBXNEXT-5185 ещё открыт.

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        Ну, открыт ZBXNEXT...А кто мешает проверить, работает ли оно на самом деле?
        В вашем случае, когда в макросе - готовый Zabbix-style JSON, достаточно этого:
        Code:
        return '{$PORTMON_TCP}';

        Comment

        • Navoyenok
          Senior Member
          • Dec 2011
          • 101

          #5
          Добрый вечер. Использую 4.2.4. Не могу сказать с какой версии, но на этой точно можно. Просто в LLD правиле нужно указать в [] параметры (кстати, можно указать и макрос), а в самом скрипте принимай параметры и генери в JSON-ответ.

          Comment

          Working...