2016-06-09 29 views
1

我在Zabbix中使用預定義的宏時遇到問題。我已經定義了兩個宏如下:在項目鍵定義中使用MACROS

{$ HOSTNAME} = 2008-Windows的服務器 {$ IPADDRESS} = 192.168.1.1

我想在項目名稱和項目重點使用它們。宏{$ HOSTNAME}在項目的Name部分中使用時正確映射其值。但是當我在該項目的鍵中使用{$ IPADDRESS}時,它不會轉換爲IP地址,因此我得到不支持的錯誤!我使用它如下: getNetFlowProto [{$ IPADDRESS},udp]

getNetFlowProto是我在zabbix_agend.conf文件中定義的UserParameter。

任何幫助表示讚賞。

+0

如果用文字IP地址替換usermacro,它是否工作?如果不是,那麼這是用戶參數的問題,而不是宏用法。 – Richlv

+0

謝謝Richlv。是的,如果我把它的IP地址的作品。但是因爲我想創建一個模板,所以我需要使用宏而不是字面IP地址。按照我使用Zabbix 3.0的方式 – Sinai

+0

從代理配置文件中顯示您的用戶參數定義。這是否可以在項目鍵之後省略[*]? – Richlv

回答

0

基於一個相當長的通信,如下所示發生:

  • 您使用的zabbix宏(變量)在這兩個項目的名稱和主要
  • 您檢查,在項目名稱的宏解決監視和配置部分,但項目密鑰中的宏未解析(在配置部分中)

這可能是由於Zabbix未解析所有配置頁面中的所有宏而造成的。這不是很一致,也沒有明確記錄。

  • 你看到的不是工作

可能由一個錯字,並可能通過配置緩存的延遲而導致的項目 - 如您更改項目的zabbix服務器可能仍然與以前的操作配置長達一分鐘。您可能已經看到了以前的錯誤,但認爲它是由最新配置生成的。這種猜測得到了這樣一個事實的支持,即它最終可以用你所認爲的同一個宏來工作。

+0

看起來就像你描述的@Richlav一樣。該項目正在工作,當我使用所需的宏,如下所示:getNetFlowProto [[{$ IPADDRESS}],udp]它不解析爲文字值,但它的工作。我知道我應該使用HOST.IP和HOST.NAME,但這些宏使用爲主機定義的主機名和IP地址。但我想使用與主機主IP地址不同的IP地址,所以我必須創建自己的宏。 – Sinai

+0

啊,謝謝澄清 - 我誤讀了一些宏名。我刪除了關於HOST.IP/NAME的建議,因爲這可能是誤導性的,並且不相關。 – Richlv

相關問題