1. 程式人生 > >zabbix使用者巨集變數詳解macro

zabbix使用者巨集變數詳解macro

zabbix巨集變數讓zabbix變得更靈活,變數可以定義在主機、模板以及全域性,變數名稱類似:{$MACRO},巨集變數都是大寫的。認識了巨集變數,你會感嘆zabbix越發的強大。

變數可以用於如下地方:

  • item名稱
  • item key引數
  • 觸發器名稱和描述
  • 觸發器表示式
  • 其他地方

巨集名稱

巨集變數名稱定義只允許後面包含後面的字元: A-Z , 0-9 , _ , .

zabbix巨集變數優先順序:

  • 主機巨集(checked first)
  • 主機模板定義的巨集,如果有多個模板,那麼按照模板越靠前那麼巨集的優先順序越高
  • 全域性巨集(checked last)

話句話說,zabbix找一個巨集的值,首先檢查hosts有沒有,如果沒有那麼找當前主機的第一個模板,如果還不在找第二個模板,一直到最後一個模板,如果還是沒有找到那將會使用全域性巨集。如果全域性巨集也不存在,那麼巨集變數不會被替換掉。

自定義巨集

定義全域性巨集, Administration → General → Macros,例如巨集名稱${TTLSA_SITE},值www.ttlsa.com.

定義主機/模板級巨集變數,編輯主機或者模板,找到Macros選項卡,定義巨集變數

巨集變數經常用於替代賬號、埠、密碼等,例如你的某個監控想有用到賬號、密碼,可以定義為巨集,假如下次賬號密碼有修改,只需要修改巨集即可。而不需要每個監控項都去修改賬號密碼。

巨集變數使用例項

示例一

主機SSH服務:

 

1

net.tcp.service[ssh,{$SSH_PORT}]

如果你監控的ssh埠可能會有不同,那麼你只需要定義host級別巨集變數SSH_PORT

示例二

主機CPU負載觸發器

 

1

{ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}

例如有三臺主機A\B\C,A主機定義的MAX_CPULOAD為1,B定義的MAX_CPULOAD為2,C定義MAX_CPULOAD為3,這三臺link同一個模板即可。

示例三

主機CPU負載觸發器(使用2個巨集)

 

1

{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}

巨集可以作為function的一個引數。