本發(fā)明涉及數據處理領域,具體地說是一種分布式數據中心統(tǒng)一監(jiān)控架構及方法。
背景技術:
信息系統(tǒng)的監(jiān)控管理技術一直存在并持續(xù)穩(wěn)定的發(fā)展著,無論是小到單獨的it系統(tǒng),還是大到成千上萬臺的服務器、存儲設備和網絡設備,都有適應不同規(guī)模的的監(jiān)控系統(tǒng)來應用。如ganglia、nagios、splunk等的開源監(jiān)控軟件,也被越來越多單位的信息化部門采用。當前,隨著云計算、大數據和互聯網的快速發(fā)展,信息化的基礎設施發(fā)生了根本轉變,監(jiān)控管理的需求從一些單獨的系統(tǒng)要求轉化為整體平臺化、統(tǒng)一平臺、統(tǒng)一管理的系統(tǒng)要求。各項應用服務器不再是單獨的計算模塊,而是通過云計算、大數據等平臺將計算、存儲資源統(tǒng)一起來,跨越數據中心范圍形成規(guī)模龐大、統(tǒng)一監(jiān)控與管理的資源池。
現有技術中,主要是通過zabbix實現。zabbix是開源社區(qū)的一種開源監(jiān)控軟件,它融合了snmp、agent、ipmi等多種數據采集方式,在不同應用環(huán)境中使用方便,標準化程度高,并提供了眾多服務,比如:完善的監(jiān)控和圖形化顯示;zabbix軟件具備一定的分布式系統(tǒng)管理能力,可以監(jiān)控小型和大型的分布式環(huán)境,并將所有歷史數據、趨勢和配置信息存儲在數據庫中;zabbix所有的邏輯運算服務都在服務器端執(zhí)行,對監(jiān)控對象的性能影響很?。粃abbix代理(proxy)服務支持分布式能力,可以代表zabbix服務器收集性能和可用數據,承擔采集數據的任務并減輕zabbix服務器的負載,同時,使用zabbix代理是實施統(tǒng)一和分布式監(jiān)控最簡單的方式,因為所有的客戶端和代理向同一個zabbix服務器報告數據,并且所有數據集中保存在服務器數據庫中,zabbix代理可在監(jiān)控遠程區(qū)域、擁有不可靠鏈接的區(qū)域時使用。當監(jiān)控數以千計的設備時,zabbix代理可分擔zabbix服務器的負載。
采用zabbix作為監(jiān)控系統(tǒng)可以支持分布式集中管理,用于分布式環(huán)境監(jiān)控,但也存在明顯缺點。首先,zabbix方案需要在被監(jiān)控的主機上安裝agent,這樣會侵害用戶的隱私,而且agent也存在被用戶卸載的情況;其次,所有數據都集中保存在數據庫中,zabbix監(jiān)控系統(tǒng)產生的數據量很大,數據庫會成為系統(tǒng)發(fā)展的瓶頸;最后,zabbix代理的方案受限于代理性能,當代理服務的監(jiān)控機器數量較多時,很難滿足資源的監(jiān)控要求。綜上所述,zabbix不是一個能夠滿足云平臺和多數據中心統(tǒng)一監(jiān)控的軟件方案。
因此,需要一種能夠監(jiān)控大規(guī)模、分布式、跨地域的虛擬資源與物理資源的統(tǒng)一監(jiān)控系統(tǒng)。
技術實現要素:
本發(fā)明的技術任務是針對以上不足之處,提供一種分布式數據中心統(tǒng)一監(jiān)控架構及方法。
一種分布式數據中心統(tǒng)一監(jiān)控架構,
包括以下節(jié)點:
服務注冊模塊,用于進行服務管理,所述服務管理包括下列中的至少一種:服務注冊、服務訂閱、服務信息通知及服務監(jiān)控;
服務提供模塊,用于提供服務,并向所述服務注冊模塊進行服務注冊;
服務消費模塊,用于向所述服務注冊模塊訂閱服務;
服務運行容器,用于提供下列功能中的至少一種:啟動所述服務提供模塊、加載所述服務提供模塊、運行所述服務提供模塊。
所述服務提供模塊及服務消費模塊采用長連接方式與服務注冊模塊進行連接通信,當服務提供模塊啟動時,向服務注冊模塊注冊自己提供的服務;當服務消費模塊啟動時,向服務注冊模塊訂閱自己所需的服務。
所述服務消費模塊通過服務注冊模塊訂閱所需服務時,服務注冊模塊根據訂閱需求返回服務提供模塊地址列表給服務消費模塊,如果有變更,服務注冊模塊通過長連接推送變更數據給服務消費模塊;服務消費模塊,從服務提供模塊地址列表中,通過軟負載均衡算法,選擇服務提供模塊進行調用,如果調用失敗,再選另一個服務提供模塊調用,通過invoke方法調用實現異步回調。
所述服務注冊模塊中還配置有監(jiān)控中心,該監(jiān)控中心用于服務監(jiān)控,所述服務監(jiān)控的實現過程為:監(jiān)控中心統(tǒng)計服務消費模塊和服務提供模塊包括調用次數和時間的性能指標,并向服務注冊模塊匯報服務提供模塊的服務運行上報情況;
相對應的,服務消費模塊、服務提供模塊定期將服務運行統(tǒng)計信息上報給監(jiān)控中心,所述服務運行統(tǒng)計信息包括服務性能數據、服務使用情況。
所述監(jiān)控中心通過以下結構實現:采用zabbix和openstack作為監(jiān)控能力的提供層,分別用于監(jiān)控物理資源和虛擬資源;設計三維可視化的監(jiān)控系統(tǒng)以滿足跨數據中心的監(jiān)控以及統(tǒng)一的物理資源和虛擬資源的監(jiān)控;采用標準的api接口,即開放式應用程序接口,該api接口通過統(tǒng)一資源標識符url來識別和定位資源,且針對這些資源而執(zhí)行的操作通過http規(guī)范定義。
在監(jiān)控系統(tǒng)中可進行創(chuàng)建、刪除、更新和查看的操作,該監(jiān)控系統(tǒng)通過標準api接口連接到服務消費模塊,允許服務消費模塊通過標準的api接口訪問該監(jiān)控系統(tǒng)的數據;通過標準api接口連接到服務提供模塊,允許服務提供模塊通過標準的api接口增加數據到該監(jiān)控系統(tǒng)中。
在監(jiān)控系統(tǒng)中,配置有以下告警字段:告警的唯一標示信息、發(fā)生告警的設備信息、告警類型、告警級別、發(fā)生告警的ip、告警發(fā)生時間、告警確認時間、確認告警時備注信息和擴展的字段。
一種分布式數據中心統(tǒng)一監(jiān)控方法,實現過程為:
首先搭建上述分布式數據中心統(tǒng)一監(jiān)控架構;
服務運行容器啟動、加載、運行服務提供模塊;
服務提供模塊啟動后向服務注冊模塊進行服務注冊,同時定期將服務運行統(tǒng)計信息上報給服務注冊模塊中的監(jiān)控中心;
服務消費模塊根據用戶需求的服務,向服務注冊模塊訂閱服務,同時服務消費模塊定期向服務注冊模塊中的監(jiān)控中心上報服務運行統(tǒng)計信息;
服務注冊模塊中的監(jiān)控中心獲取并匯總顯示服務提供模塊和服務消費模塊上報的信息,完成監(jiān)控過程。
服務消費模塊訂閱服務時,服務注冊模塊將注冊服務的服務提供模塊的地址列表發(fā)送給服務消費模塊,服務消費模塊根據該服務提供模塊的地址列表,通過軟負載均衡算法,直接選擇服務提供模塊進行調用其注冊的服務,如果調用失敗,再按照地址列表順序選另一個服務提供模塊互補性調用,并通過invoke方法調用實現異步回調。
所述監(jiān)控中心實現的監(jiān)控包括物理資源監(jiān)控和虛擬資源監(jiān)控,其中,
監(jiān)控物理資源時,首先在每個數據中心部署一套或多套zabbix軟件系統(tǒng),然后通過在服務注冊模塊完成注冊的服務提供模塊和完成訂閱的服務消費模塊進行監(jiān)控,所述服務提供模塊通過調用zabbix系統(tǒng)的api接口實現,并向服務注冊模塊注冊zabbix提供的服務,并由服務消費模塊處理用戶請求,即服務消費模塊通過調用服務提供模塊來響應用戶請求;
監(jiān)控虛擬資源時,首先設置獨立的服務提供模塊和服務消費模塊用于openstack的監(jiān)控服務,所述服務提供模塊采用開放平臺openapi實現,并向服務注冊模塊注冊openstack提供的服務,服務消費模塊則用于處理用戶請求,即服務消費模塊通過調用服務提供模塊來響應用戶請求;當每增加一個openstack云平臺時,相對應的增加相對獨立的服務消費模塊和服務提供模塊,從而實現對多個云平臺資源池的監(jiān)控,所述服務消費模塊和服務提供模塊分別為在服務注冊模塊完成注冊的服務提供模塊和完成訂閱的服務消費模塊。
本發(fā)明的一種分布式數據中心統(tǒng)一監(jiān)控架構及方法和現有技術相比,具有以下有益效果:
本發(fā)明的一種分布式數據中心統(tǒng)一監(jiān)控架構及方法,通過設計的分布式框架接口,使得zabbix接口與openstack接口統(tǒng)一納入所設計的分布式框架之下,構建了一個高效、穩(wěn)定的分布式數據中心統(tǒng)一管理系統(tǒng),有助于分布式數據中心的統(tǒng)一管理,尤其是在涉及物理資源與虛擬資源同時需要監(jiān)控的場景,將監(jiān)控系統(tǒng)搭建在該分布式數據中心監(jiān)控架構上,很好地解決了原來集中系統(tǒng)的性能問題和管理分布式環(huán)境問題,實用性強,適用范圍廣泛,易于推廣。
附圖說明
附圖1是分布式數據中心統(tǒng)一監(jiān)控架構的實現框圖。
具體實施方式
下面結合附圖及具體實施例對本發(fā)明作進一步說明。
本發(fā)明定義了分布式數據中心統(tǒng)一監(jiān)控架構及方法,定義了一個分布式服務框架,定義了跨數據中心的遠程服務調用方法,在openstack的基礎上,定義了虛擬機的監(jiān)控功能,定義了覆蓋物理機與虛擬機的高效、分布式的統(tǒng)一監(jiān)控管理。
如附圖1所示,一種分布式數據中心統(tǒng)一監(jiān)控架構,包括以下節(jié)點:
服務注冊模塊,用于實現服務管理,提供服務注冊、服務訂閱、服務信息通知及服務監(jiān)控功能;
服務提供模塊,用于提供服務,并在啟動后向服務注冊模塊進行服務注冊;
服務消費模塊,用于調用服務,所述調用的服務在服務消費模塊啟動后向服務注冊模塊訂閱;
服務運行容器,提供web服務運行容器功能,負責啟動、加載、運行服務提供模塊,所述的服務運行容器為簡單的main方法。
所述服務提供模塊及服務消費模塊采用長連接方式與服務注冊模塊進行連接通信,當服務提供模塊啟動時,向服務注冊模塊注冊自己提供的服務;當服務消費模塊啟動時,向服務注冊模塊訂閱自己所需的服務。
所述服務消費模塊通過服務注冊模塊訂閱所需服務時,服務注冊模塊根據訂閱需求返回服務提供模塊地址列表給服務消費模塊,如果有變更,服務注冊模塊通過長連接推送變更數據給服務消費模塊;服務消費模塊,從服務提供模塊地址列表中,通過軟負載均衡算法,選擇服務提供模塊進行調用,如果調用失敗,再選另一個服務提供模塊調用,通過invoke方法調用實現異步回調。
所述服務注冊模塊中還配置有監(jiān)控中心,該監(jiān)控中心用于服務監(jiān)控,所述服務監(jiān)控的實現過程為:監(jiān)控中心統(tǒng)計服務消費模塊和服務提供模塊包括調用次數和時間的性能指標,并向服務注冊模塊匯報服務提供模塊的服務運行上報情況;
相對應的,服務消費模塊、服務提供模塊定期將服務運行統(tǒng)計信息上報給監(jiān)控中心,所述服務運行統(tǒng)計信息包括服務性能數據、服務使用情況。
所述監(jiān)控中心通過以下結構實現:
采用zabbix和openstack作為監(jiān)控能力的提供層,分別用于監(jiān)控物理資源和虛擬資源;設計三維可視化的監(jiān)控系統(tǒng)以滿足跨數據中心的監(jiān)控以及統(tǒng)一的物理資源和虛擬資源的監(jiān)控;采用標準的restfulwebservice開放式應用程序接口api,在調用restfulwebservice后,通過統(tǒng)一資源標識符url來識別和定位資源,并且針對這些資源而執(zhí)行的操作時通過http規(guī)范定義。
所述監(jiān)控中心的監(jiān)控功能由整個分布式數據中心監(jiān)控架構引導,對zabbixapi和openstackapi進行重新實現調用,實現分布式監(jiān)控系統(tǒng)。這樣監(jiān)控門戶對數據的訪問變成由該框架引導的訪問。具體為,zabbix服務通過api接口由分布式數據中心監(jiān)控架構的服務提供模塊提供,用戶請求作為該框架下的服務消費模塊向服務器提供者發(fā)送請求信息,從而實現由整個框架引導。
在監(jiān)控系統(tǒng)中,其核心操作只有post、delete、put、get,即可進行創(chuàng)建、刪除、更新和查看的操作,該監(jiān)控系統(tǒng)通過標準接口連接到服務消費模塊,允許服務消費模塊通過標準的接口訪問該監(jiān)控系統(tǒng)的數據;通過標準接口連接到服務提供模塊,允許服務提供模塊通過標準的接口增加數據到該監(jiān)控系統(tǒng)中。
在三維可視化的監(jiān)控系統(tǒng)中,配置有以下告警字段:告警的唯一標示信息、發(fā)生告警的設備信息、告警類型、告警級別、發(fā)生告警的ip、告警發(fā)生時間、告警確認時間、確認告警時備注信息和擴展的字段。
更為具體的,配置的告警字段如下:
一種分布式數據中心統(tǒng)一監(jiān)控方法,實現過程為:
首先搭建上述分布式數據中心統(tǒng)一監(jiān)控架構;
服務運行容器啟動、加載、運行服務提供模塊;
服務提供模塊啟動后向服務注冊模塊進行服務注冊,同時定期將服務運行統(tǒng)計信息上報給服務注冊模塊中的監(jiān)控中心;
服務消費模塊根據用戶需求的服務,向服務注冊模塊訂閱服務,同時服務消費模塊定期向服務注冊模塊中的監(jiān)控中心上報服務運行統(tǒng)計信息;
服務注冊模塊中的監(jiān)控中心獲取并匯總顯示服務提供模塊和服務消費模塊上報的信息,完成監(jiān)控過程。
服務消費模塊訂閱服務時,服務注冊模塊將注冊服務的服務提供模塊的地址列表發(fā)送給服務消費模塊,服務消費模塊根據該服務提供模塊的地址列表,通過軟負載均衡算法,直接選擇服務提供模塊進行調用其注冊的服務,如果調用失敗,再按照地址列表順序選另一個服務提供模塊互補性調用,并通過invoke方法調用實現異步回調。
所述監(jiān)控中心實現的監(jiān)控包括物理資源監(jiān)控和虛擬資源監(jiān)控,其中,
監(jiān)控物理資源時,首先在每個數據中心部署一套或多套zabbix軟件系統(tǒng),然后通過在服務注冊模塊完成注冊的服務提供模塊和完成訂閱的服務消費模塊進行監(jiān)控,所述服務提供模塊通過調用zabbix系統(tǒng)的api接口實現,并向服務注冊模塊注冊zabbix提供的服務,并由服務消費模塊處理用戶請求,即服務消費模塊通過調用服務提供模塊來響應用戶請求;
監(jiān)控虛擬資源時,首先設置獨立的服務提供模塊和服務消費模塊用于openstack的監(jiān)控服務,所述服務提供模塊采用開放平臺openapi實現,并向服務注冊模塊注冊openstack提供的服務,服務消費模塊則用于處理用戶請求,即服務消費模塊通過調用服務提供模塊來響應用戶請求;當每增加一個openstack云平臺時,相對應的增加相對獨立的服務消費模塊和服務提供模塊,從而實現對多個云平臺資源池的監(jiān)控,所述服務消費模塊和服務提供模塊分別為在服務注冊模塊完成注冊的服務提供模塊和完成訂閱的服務消費模塊。
在openstack中,其提供的服務主要包括計算服務、存儲服務、鏡像服務、認證服務、ui服務。
通過上面具體實施方式,所述技術領域的技術人員可容易的實現本發(fā)明。但是應當理解,本發(fā)明并不限于上述的具體實施方式。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特征,從而實現不同的技術者案。
除說明書所述的技術特征外,均為本專業(yè)技術人員的已知技術。