對於zabbix 我們並不陌生 他是開源的監控系統,現在的一部分企業都在用zabbix,今天給大家分享的是企業級監控zabbix的自動發現規則,有了它我們自定義健康的時候根據宏值可以讓他自動發現對應的value 從而省去我們一部分的重復代碼 .
現需求 需要自定義一個監控腳本,目的是取各服務器三線ip地址 進行向另一端源服務器進行ping rtt和loss的請求進行判斷是否存在丟包行為。
1:不同業務,對應不同的模板,我們需要現創建一個模板,用於我們這個特殊的業務
2:創建完成后,點擊我們創建好的模板的右邊自動發現規則,右上角創建發現規則:
其中的鍵值就是我們自定義的腳本,這個腳本會在下面給大家呈現,這個腳本的目的就是取到三線的ip傳遞到另一個腳本進行ping rtt值和loss率,注意:這個腳本數出來的格式必須是json格式,用於zabbix去識別發現,而且里面的鍵要是data,下面會給大家看實例
3:到被監控主機的其中一台的script下定義剛才自動發現規則定義的鍵值的腳本:

其中UserParamter就是我zabbix 定義腳本位置的地方,最上面chk_kuaishou_delay[*] 就是我上面創建規則的對應鍵值,下面就是我腳本輸出的結果,大家可以看到
這是一個字典,最外面是data,data對面的value是每一個相同的key{#IPADDRES} 對面不同的value 當然蓋上的就是我的三線ip,這就是zabbix能自動發現的格式,而
key{#IPADDRES}也是固定的格式 這個格式需要待會我們在zabbix頁面上指定,這樣的話 就會為我們省去不少的功夫 他會判斷出 ipaddres是對面3個ip地址,從而達到我們要求的I效果
4:編寫腳本,將zabbix自動發現的value傳進去從而達到自動發現value去get值:

腳本如下第二個腳本就是我們的正式監控項以及觸發器,我們需要把上面的{#IPADDRES}的valu(ip) 傳遞到下面的腳本進行測試,當然這個整個過程我們只需要把第二個腳本寫出來至於參數怎么辦 完全不需要我們去考慮,因為后面我們會在頁面上定義,定義{#IPADDRES}的宏值他會自動去找着這個宏對應的三個ip然后我們再把腳本填進去就可以了
5:定義宏值,添加監控項原型,觸發器類型,以及額外的圖形:





