zabbix宏(macro)使用:自定義監控閾值


一.簡單應用場景

zabbix在監控cpu load時並沒有考慮客戶端cpu的個數和核心數量,當平均5分鍾的負載達到5時zabbix執行報警動作,這樣是非常不合理的,筆者的被監控機器有四核和單核,現在單核機器我希望閾值仍然是5,四核機器192.168.17.107上調為10,怎么辦呢?用宏變量可以很好的解決這個問題

 

二.宏介紹

宏是一種抽象概念(Abstraction),它根據一些列預定義的規則替換一定的文本模式,而解釋或編譯器在遇到宏時會自動進行這一模式替換。類似地,zabbix基於宏保存預設文本模式,並且在調用時將其替換為其中的文本。

zabbix宏變量優先級:

  • 主機宏(checked first)
  • 主機模板定義的宏,如果有多個模板,那么按照模板越靠前那么宏的優先級越高
  • 全局宏(checked last)

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

自定義宏

定義全局宏, Administration → General → Macros,zabbix3.2中已有的全局宏名稱{$SNMP_COMMUNITY},值public

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

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

宏的命名規范:大寫字母、數組、下划線的組合,只能大寫字母開頭。

內置{MACRO}    不需要加$就可以引用:

zabbix有許多內置的宏,如{HOST.NAME}、{HOST.IP}、{TRIGGER.DESCRIPTION}、{TRIGGER.NAME}、{TRIGGER.EVENTS.ACK}等。

三.宏變量使用

3.1 上調四核機器192.168.17.107cpu load閾值到10

 

 

 

 

3.2 設置單核機器cpu load閾值為5

Template OS Windows模板的cpu load閾值已經從5被改動為宏變量,這將會影響其他使用這個模板的主機,使用該模板的主機都得像四核機器一樣單獨設置一個宏變量,是不是十分不方便?

其實可直接在模板中定義一個宏變量,這樣zabbix在找不到主機宏時就會自動使用模板宏。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM