Monitoring

為 nagios 3 中的主機配置一個額外的 ip

  • October 28, 2010

我剛剛從 nagios2 遷移到 nagios3,基本上是為了自定義宏功能。

在我的網路中有兩種伺服器:

  • 單個 ip 伺服器(服務和 snmp 伺服器使用相同的 ip)
  • 雙IP伺服器(服務的公共IP和snmp伺服器的私有IP)

我嘗試做的是為宏設置一個預設值 $ _HOSTIPSNMP $ 在主機模板中..

define host {
      name linux-server
      ...
      _IPSNMP                 $HOSTADDRESS$
      ...
}

我假設所有主機都會自動設置 $ _HOSTIPSNMP $ 內容為 $ HOSTADDRESS $

如果我能讓這個工作,第二部分將是在每個主機的基礎上設置自定義值 $ _HOSTIPSNMP $ , 風格為:

define host {
      use linux-server
      address           123.123.123.123
      _IPSNMP        192.168.1.10
}

所以 $ _HOSTIPSNMP $ 始終具有合理的價值,我可以在需要時將其設置為我想要的任何值。

我面臨的錯誤是,似乎 _HOSTIPSNMP 沒有被正確替換為變數值,而是被替換為變數名。

cmd=[/usr/lib/nagios/plugins/check_snmp_storage.pl '-H' 'HOSTADDRESS'
'-C' 'comunity' '-m' '/' '-w' '80%' '-c' '85%']
output=[ERROR: Unable to resolve UDP/IPv4 address 'HOSTADDRESS'.

我試著改變引用 $ HOSTADDRESS $ 在模板中,但我沒有嘗試過。

謝謝你的幫助。

好吧,最後唯一的解決方案是在所有主機上通知 _IPSNMP 的值

似乎宏沒有遞歸解析,這是預期的行為(至少在 nagios 3 中)

至少我能夠做什麼我想要一個整潔的方式。我建議大家使用宏。

根據關於宏的 Nagios文件,引用上面定義的 _IPSNMP 的正確方法是 $ _HOSTIPSNMP $

引用自:https://serverfault.com/questions/187217