前提:
-->實現的流程步驟:
-->zabbix上超融合監控展示結果
所需軟件:1、zabbix 2、python 3、node.js環境
所需資料:1、超融合平臺API接口(通過廠家獲取)
關聯zabbix知識點:1、zabbix監控類型使用外部檢查 2、zabbix採集後數據預處理,使用功能:JSONPath、javascrip 3、zabbix自動發現規則
一、解析文件進行API獲取信息開發
1、超融合的公鑰內容:
url連接:https://ip地址//vapi/json/public_key
2、用公鑰把監控用戶的密碼加密(參考API文檔):
需要讓廠家提供2份文件,ras.js、encrypt.js
3、解析超融合平臺API文件,找到涉及到相關API功能,
本次開發4個API接口,分別是獲取超融合基本狀態,存儲信息,外部存儲信息(具體可查看API接口說明文檔)
①、超融合登錄認證
②、獲取超融合詳情信息
③、獲取超融合虛擬存儲信息
④、獲取超融合其它存儲信息
--> 開發注意:
1、登錄後seesion持久化問題,當前是把session相關參數保存文件,如果不保留會導致超融合記錄每一分鐘登錄日誌,把重要日誌刷掉 2、首次執行監控腳本時,其它腳本需要判斷seesion參數存在纔會執行,不然會導致首次執行腳本zabbix監控參數會報錯
二、製作zabbix模板
1、基礎信息監控類型:
①、新增主監控項,監控類型選擇 外部檢查,鍵值爲 腳本 + 參數方式傳參
腳本執行:monitor_sangfordevinfo.py[{HOST.IP},{$SANGFOR.USERNAME},{$SANGFOR.PASWWORD},{$SANGFOR.HOSTID}]
②、新增子監控項,監控類型選項 相關項目,主要項選項 主監控項
③、主監控項返回的數據是json格式數據,需要從json數據獲取對應key值
腳本返回的數據(使用在線json格式化):在子監控項,選擇預處理,使用jsonpath方式對key進行取證
2、存儲監控類型:
①、新增主監控項,監控類型選擇 外部檢查,鍵值爲 腳本 + 參數方式傳參
腳本執行:monitor_sangforother.py[{$SANGFOR.IP},{$SANGFOR.USERNAME},{$SANGFOR.PASWWORD}]
②、新增自動發現規則,解決多個存儲類型監控參數
③、主監控項返回數據包含多個類型的存儲和多個存儲空間信息
使用jsonpath的正則表達式對iscsi類型存儲信息獲取獲取到的iscsi類型存儲盤信息對上述數據使用JavaScript腳本添加索引後執行完JavaScript腳本情況zabbix自動發現後的監控項
三、製作zabbix報警項
1、添加觸發器:
當虛擬存儲剩餘空間:sangfor.hci.volumes.ratio 剩下20%
四、總結
1、超融合獲取監控腳本還有優化的空間,如存儲空間存在多臺設備收集,改進思路:只需要輸入集羣IP就能自動採集所有集羣下設備情況
2、本次難點是掌握zabbix監控項值預處理方式,對超融合監控採集後數據才能轉換處理存儲,
3、只要能採集數據,zabbix都能完美實現監控。最後,zabbix功能很強大,等待我們進一步探索!
感謝作者投稿!
延伸閱讀
本文分享自微信公衆號 - Zabbix開源社區(china_zabbix)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。