Ad Widget

Collapse

hostname macro в XML XPath

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • LennartP
    Junior Member
    • May 2020
    • 7

    #1

    hostname macro в XML XPath

    Здравствуйте

    Хочу подставить ZABBIX - переменную в XPath item-а

    Есть вот такой XML
    Code:
    <?xml version="1.0"?>
    <crm_mon version="1.1.21">
    
    <resources>
    <resource id="scheduled-tasks-service-ha" resource_agent="systemd:scheduled-tasks-service" role="Started" active="true" orphaned="false" blocked="false" managed="true" failed="false" failure_ignored="false" nodes_running_on="1" >
    <node name="app-02" id="1" cached="false"/>
    </resource>
    </resources>
    </crm_mon>
    вот с таким
    Code:
    string(/crm_mon/resources[./resource/node/@name = 'app-02']/resource/@id)
    возвращает значение
    scheduled-tasks-service-ha


    если подставляю
    Code:
    {HOST.HOST}
    или
    Code:
    {HOST.NAME}
    - не хочет -
    <empty string>
    пробовал с диезом ("решеткой") и двойными кавычками - всё равно не работает.

    Документацию читал, но не понял. Если можно - что работает в этом разделе и как он называется (items preprocessing?)
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    В препроцессинге раскрываются {$MACRO} и {#MACRO}, не раскрываются {MACRO}.

    Comment

    • LennartP
      Junior Member
      • May 2020
      • 7

      #3
      Originally posted by Semiadmin
      В препроцессинге раскрываются {$MACRO} и {#MACRO}, не раскрываются {MACRO}.
      О, спасибо. Интересно

      А в чём между ними разница? И где об этом написано?

      Потому что {#MACRO} я пробовал, безрезультатно.

      Есть готовый работающий вариант имени хоста?

      у меня версия
      Zabbix 4.2.6.

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        {#MACRO} - это не просто макрос, в который добавлен символ #, это макрос, используемый в LLD rule

        Comment

        • LennartP
          Junior Member
          • May 2020
          • 7

          #5
          Originally posted by Semiadmin
          {#MACRO} - это не просто макрос, в который добавлен символ #, это макрос, используемый в LLD rule
          понятней не стало :-(

          Comment

          • LennartP
            Junior Member
            • May 2020
            • 7

            #6
            HTML Code:
            cannot extract XML value with xpath "string({#HOST.HOST})": cannot parse xpath: Invalid expression

            Comment

            Working...