Zabbix 5.0:通過LLD方式自動化監控阿里雲RDS
Blog:部落格園 個人
之前做了RDS監控,由於 RDS 實例梳理增多,手動添加的方式已經不夠效率,故改為LLD(Low-level discovery)方式做監控。
什麼是LLD
LLD(Low-level discovery),即低級發現,提供了一種在電腦上為不同實體自動創建監控項,觸發器和圖形的方法。例如,Zabbix可以在你的機器上自動開始監控文件系統或網路介面,而無需為每個文件系統或網路介面手動創建監控項。此外,可以配置Zabbix根據定期執行發現後的得到實際結果,來移除不需要的監控。
用戶可以自己定義發現類型,只要它們遵循特定的JSON協議。
採集數據腳本
調用阿里雲Api,採集RDS相關數據,相關配置可參考之前的文章,採集腳本略。
需要將Api返回的數據處理,將欄位修改為{#MACRO}
形式的LLD宏,最後生成json格式的數據:
例如:
[{
"{#DBINSTANCEID}": "rr-XXX",
"{#DBNAME}": "XXX"
}, {
"{#DBINSTANCEID}": "rm-XXX",
"{#DBNAME}": "XXX"
}, {
"{#DBINSTANCEID}": "rm-XXX",
"{#DBNAME}": "XXX"
}]
說明:
{#DBINSTANCEID}
:RDS實例ID{#DBNAME}
:RDS實例名稱
💡Tips:LLD宏必須大寫,否則會報錯。
配置模板
新建模板,創建自動發現規則:
說明:
參數 | 說明 |
---|---|
名稱 | 規則名稱 |
類型 | 發現的檢查類型 |
鍵值 | 可以是內置鍵值,也可以是自定義 |
更新間隔 | 執行發現的時間間隔 |
自定義時間間隔 | 非必選, 靈活:允許重定義默認更新間隔,調度:可以使監控項在特定時間或時間序列生效 |
資源周期不足 | 資源失效時間,若資源失效則刪除,如果設置為「0」,將立即刪除實體。不建議使用「0」 |
創建監控原型:
創建觸發器原型:
創建圖形原型:
以此類推,把需要監控的項目都加上去。
查看效果:
總結
LLD方式,大大減輕了人為添加監控的負擔,RDS實例的變更也不需要人為去增刪監控,真正做到自動化監控。
但也帶來一些問題,比如性能問題,實例越多,監控原型越多,同時執行的監控採集腳本進程就越多,伺服器的負載壓力越大,而且頻繁調用阿里雲Api也會帶來一些費用成本。
因此,這個監控方案僅限於阿里雲RDS實例數量不太多的場景。若實例數量很多,可以考慮增加快取,一次性讀取數據,將數據存於快取,然後監控客戶端從快取中讀取數據,減少調用採集腳本的頻率。