基於混合架構的分布式集群監控代理及方法與流程
2023-05-20 10:36:41
本發明涉及分布式集群技術,尤其涉及一種基於混合架構的分布式集群監控代理。
背景技術:
目前,主流的分布式集群都運行在基於X86架構伺服器上,故對集群的監控都採用X86架構上可以實現的技術。如果分布式集群同時部署在X86、ARM混合架構集群上,原先的監控技術對ARM伺服器將不再起作用。如需對ARM伺服器進行監控則需要重新再實現一套基於ARM架構的監控技術。此時完成X86、ARM混合架構的分布式集群監控需要兩套技術,增加了集群部署及維護的複雜性。
技術實現要素:
發明目的:本發明針對現有技術存在的問題,提供一種基於混合架構的分布式集群監控代理,實現對X86、ARM混合架構的分布式集群軟硬體進行監控。
技術方案:本發明所述的基於混合架構的分布式集群監控代理安裝於混合架構平臺中的X86伺服器或ARM伺服器中,該代理包括:
HTTP接口模塊,具體包括硬體狀態獲取接口、軟體進程啟停接口和軟體進程狀態獲取接口;其中,硬體狀態獲取接口、軟體進程啟停接口和軟體進程狀態獲取接口用於根據外部調用系統的請求參數,分別調用硬體資源運行狀態獲取模塊、軟體進程啟停模塊和軟體進程運行狀態獲取模塊,並將調用的模塊返回的數據傳輸至外部調用系統;
硬體資源運行狀態獲取模塊,用於按照硬體狀態獲取接口的請求,採用與當前平臺結構匹配的sigar動態庫,獲取並返回當前平臺硬體資源的運行狀態信息;
軟體進程啟停模塊,用於按照軟體進程啟停接口的請求,啟停止當前平臺的軟體進程;
軟體進程運行狀態獲取模塊,用於按照軟體進程狀態獲取接口的請求,獲取並返回當前平臺的軟體進程的運行狀態信息。
進一步的,所述軟體進程啟停接口請求的啟停類型包括一鍵啟停本機進程、啟停單個進程和一鍵啟停集群所有進程;所述軟體進程啟停模塊具體用於:若接收到的啟停類型為一鍵啟停本機進程,則依據定義的進程啟停命令順序先後進行進程的啟停;若啟停類型為啟停單個進程,則依據啟停的進程名稱在配置文件中找到該進程的啟停腳本,然後調用該腳本進行進程啟停;若啟停類型為一鍵啟停集群所有進程,則依據定義的集群機器順序列表依次發送請求給每臺機器進行進程啟停。
進一步的,所述軟體進程狀態獲取接口請求的類型包括一鍵獲取本機進程狀態、獲取單個進程運行狀態和一鍵獲取集群所有進程運行狀態;所述軟體進程運行狀態獲取模塊具體用於:若接收的請求類型為一鍵獲取本機進程狀態,則依據定義的進程狀態獲取命令的先後順序進行狀態獲取;若類型為獲取單個進程運行狀態,則依據進程名稱在配置文件中找到該進程的狀態獲取腳本,然後調用該腳本進行狀態獲取;若類型為一鍵獲取集群所有進程運行狀態信息,則依據定義的集群機器順序列表依次發送請求給每臺機器進行進程狀態獲取並將狀態結果依次返回給外部調用系統。
進一步的,所述硬體資源運行狀態獲取模塊獲取的硬體資源狀態信息具體包括平臺的CPU、內存、磁碟和網卡的運行狀態信息。
本發明還提供了一種基於上述的監控代理的監控方法,包括步驟:
(1)使用Jetty作為內嵌的Web伺服器提供HTTP接口;
(2)在配置文件中定義集群機器啟停順序的IP位址,定義每臺機器部署的軟體進程名稱、進程啟停腳本、進程狀態獲取腳本,通過HTTP接口發送至監控代理;
(3)當監控代理收到硬體狀態獲取請求時,根據當前平臺架構選擇匹配的sigar動態庫進行硬體狀態信息的獲取,並將結果返回給外部調用系統;
(4)當監控代理收到軟體啟停請求時,依據請求類型進行相應的操作,具體為:若啟停類型為一鍵啟停本機進程,依據配置文件中定義的進程啟停命令順序先後進行進程的啟停;若啟停類型為啟停單個進程,依據啟停的進程名稱在配置文件中找到該進程的啟停腳本,然後調用該腳本進行進程啟停;若啟停類型為一鍵啟停集群所有進程,依據定義的集群機器順序列表依次發送請求給每臺機器進行進程啟停;
(5)當監控代理收到軟體運行狀態請求時,依據請求類型進行相應的操作,具體為:若類型為一鍵獲取本機進程狀態,依據配置文件中定義的進程狀態獲取命令的先後順序進行狀態獲取;若類型為獲取單個進程運行狀態,依據進程名稱在配置文件中找到該進程的狀態獲取腳本,然後調用該腳本進行狀態獲取;若類型為一鍵獲取集群所有進程運行狀態信息,依據定義的集群機器順序列表依次發送請求給每臺機器進行進程狀態獲取並將狀態結果依次返回給外部調用系統。
有益效果:本發明與現有技術相比,其顯著優點是:實現了對X86、ARM混合架構的分布式集群軟硬體進行監控,降低了基於X86、ARM混合架構的分布式集群監控模塊部署及維護的複雜性。
附圖說明
圖1是本發明的一個實施例的系統框圖。
具體實施方式
如圖1所示,本實施例的監控代理安裝於混合架構平臺中的X86伺服器或ARM伺服器中,該代理包括HTTP接口模塊、硬體資源運行狀態獲取模塊、軟體進程啟停模塊和軟體進程運行狀態獲取模塊。
HTTP接口模塊具體包括硬體狀態獲取接口、軟體進程啟停接口和軟體進程狀態獲取接口;其中,硬體狀態獲取接口、軟體進程啟停接口和軟體進程狀態獲取接口用於根據外部調用系統的請求參數,分別調用硬體資源運行狀態獲取模塊、軟體進程啟停模塊和軟體進程運行狀態獲取模塊,並將調用的模塊返回的數據傳輸至外部調用系統。軟體進程啟停接口請求的啟停類型包括一鍵啟停本機進程、啟停單個進程和一鍵啟停集群所有進程;軟體進程狀態獲取接口請求的類型包括一鍵獲取本機進程狀態、獲取單個進程運行狀態和一鍵獲取集群所有進程運行狀態。
硬體資源運行狀態獲取模塊用於按照硬體狀態獲取接口的請求,採用與當前平臺結構匹配的sigar動態庫,獲取並返回當前平臺硬體資源(CPU、內存、磁碟和網卡)的運行狀態信息。
軟體進程啟停模塊用於按照軟體進程啟停接口的請求,啟停止當前平臺的軟體進程。具體為:若接收到的啟停類型為一鍵啟停本機進程,則依據定義的進程啟停命令順序先後進行進程的啟停;若啟停類型為啟停單個進程,則依據啟停的進程名稱在配置文件中找到該進程的啟停腳本,然後調用該腳本進行進程啟停;若啟停類型為一鍵啟停集群所有進程,則依據定義的集群機器順序列表依次發送請求給每臺機器進行進程啟停。
軟體進程運行狀態獲取模塊用於按照軟體進程狀態獲取接口的請求,獲取並返回當前平臺的軟體進程的運行狀態信息。具體為:若接收的請求類型為一鍵獲取本機進程狀態,則依據定義的進程狀態獲取命令的先後順序進行狀態獲取;若類型為獲取單個進程運行狀態,則依據進程名稱在配置文件中找到該進程的狀態獲取腳本,然後調用該腳本進行狀態獲取;若類型為一鍵獲取集群所有進程運行狀態信息,則依據定義的集群機器順序列表依次發送請求給每臺機器進行進程狀態獲取並將狀態結果依次返回給外部調用系統。
基於上述的監控代理的監控方法的步驟為:
(1)使用Jetty作為內嵌的Web伺服器提供HTTP接口;
(2)在配置文件中定義集群機器啟停順序的IP位址,定義每臺機器部署的軟體進程名稱、進程啟停腳本、進程狀態獲取腳本,通過HTTP接口發送至監控代理;
(3)當監控代理收到硬體狀態獲取請求時,根據當前平臺架構(X86或ARM)選擇匹配的sigar動態庫進行硬體狀態信息的獲取,並將結果返回給外部調用系統;
(4)當監控代理收到軟體啟停請求時,依據請求類型進行相應的操作,具體為:若啟停類型為一鍵啟停本機進程,依據配置文件中定義的進程啟停命令順序先後進行進程的啟停;若啟停類型為啟停單個進程,依據啟停的進程名稱在配置文件中找到該進程的啟停腳本,然後調用該腳本進行進程啟停;若啟停類型為一鍵啟停集群所有進程,依據定義的集群機器順序列表依次發送請求給每臺機器進行進程啟停;
(5)當監控代理收到軟體運行狀態請求時,依據請求類型進行相應的操作,具體為:若類型為一鍵獲取本機進程狀態,依據配置文件中定義的進程狀態獲取命令的先後順序進行狀態獲取;若類型為獲取單個進程運行狀態,依據進程名稱在配置文件中找到該進程的狀態獲取腳本,然後調用該腳本進行狀態獲取;若類型為一鍵獲取集群所有進程運行狀態信息,依據定義的集群機器順序列表依次發送請求給每臺機器進行進程狀態獲取並將狀態結果依次返回給外部調用系統。
以上所揭露的僅為本發明一種較佳實施例而已,不能以此來限定本發明之權利範圍,因此依本發明權利要求所作的等同變化,仍屬本發明所涵蓋的範圍。