2017-08-20 38 views
0

現在我用下面的配置爲Icinga2主機服務器的工作:如何聲明一個變量並在icinga2 hosts部分重用它?

vars.health_check["my_module1"]={ 
    host = "HEALTH_CHECK_SERVER_URL" 
    module = "my_module1" 
} 

vars.health_check["my_module2"]={ 
    host = "HEALTH_CHECK_SERVER_URL" 
    module = "my_module2" 
} 

如您所看到的問題是,我必須重新聲明同一個主機地址。當我把主機地址服務以外象下面這樣,它不工作和​​重裝失敗:

end_url = "HEALTH_CHECK_SERVER_URL" 
    vars.health_check["my_module1"]={ 
     host = "$end_url$" 
     module = "my_module1" 
    } 

    vars.health_check["my_module2"]={ 
     host = "$end_url$" 
     module = "my_module2" 
    } 

我甚至嘗試使用vars.end_url卻又同樣的情景。我應該如何在​​中聲明一個變量。

回答

0

您可以使用主機與$地址$地址,所以如果主機的地址是什麼URL解析它應該像:

end_url = "HEALTH_CHECK_SERVER_URL" 
    vars.health_check["my_module1"]={ 
     host = "$address$" 
     module = "my_module1" 
    } 

    vars.health_check["my_module2"]={ 
     host = "$address$" 
     module = "my_module2" 
    } 

你有沒有看着Icinga2 Director?。它很方便,主機配置更容易管理。此外,monitoring-portal.org是Icinga社區的良好資源。

如果您使用導向器,您可以對該命令進行克隆,然後將參數設置爲像$ end_url $這樣的變量,然後創建該字段。然後,您可以將該字段添加到您的模板(導入)並在此處輸入。

例如,我們對SNMP社區字符串使用此方法。我們有一個用於$ snmp_community $的字段附加到我們的模板。因此,在我們需要社區的任何命令中,我們只使用這個變量。這就是Icinga2如何知道我們的所有LAN Distro的社區字符串,如果我們需要改變它,我們只需更改一次。

enter image description here

enter image description here

enter image description here

+1

'$地址$'是指主機配置文件中的地址。我想要的是一個像'example.com'這樣具有不同值的變量。感謝'Icinga2導演',這非常棒,但它仍然無法解決我的問題。我現在將配置移到了命令部分。 +1 – ALH

+0

您是否需要最終網址始終保持不變? – cflinspach

+0

是的,現在我已經將它移動到命令部分來使用它一次。 – ALH

相關問題