一種結合Docker實現動態管理監控服務系統的製作方法
2023-06-01 22:41:06 1
本發明屬於雲計算數據中心監控技術領域,涉及一種結合docker實現動態管理監控服務系統。
背景技術:
隨著雲計算技術的不斷發展,雲計算技術不斷的成熟穩定,越來越多的企業或個人都將自己的業務系統遷移到雲端,這樣客戶減少基礎資源設施建設的投入,將精力全部投入到如何精準監控業務數據,因此,需要提供一套可定製化、可彈性擴展監控系統去解決客戶的不同業務不同需求的監控服務。
docker是一個開源的容器技術,他可以創建一個輕量級、可移植的容器,它作為一種新興虛擬化技術,能夠更快速的交付和部署、更靈活的組合和擴展及簡單的管理。
zabbix、elk、nagios、ganglia是開源的監控軟體,它們針對伺服器的基礎資源監控、應用服務性能監控、應用日誌回收監控。
技術實現要素:
本發明提供一種結合docker實現動態管理監控服務系統,是一種監控服務可定製化、可動態管理監控服務項、可彈性增加監控服務資源的監控調度管理系統。
本發明所採用的技術方案為:
一種結合docker實現動態管理監控服務系統,包括雲平臺門戶系統,該系統包括統一監控調度管理平臺、監控項代理模塊;所述統一監控調度管理平臺實現服務調度管理、鏡像管理、部署管理及監控數據統計功能;而監控項代理模塊將zabbix、elk、nagios、ganglia開源監控軟體的監控項功能代碼拆分,將每個監控軟體的監控項,即基礎資源cpu、內存、硬碟、網絡吞吐監控,應用服務日誌監控,中間件性能監控和web應用性能監控的代碼從開源的軟體系統中分離出,對分離出的監控項的代碼進行重構,每一個監控項實現一個可以運行在docker容器裡的代理程序形成多個監控項容器;用戶通過雲平臺門戶系統在線申請開通監控服務,申請請求會發送到統一監控調度管理平臺進行處理,它將會根據處理完的監控配置參數,把監控項代理模塊部署到監控目標主機上,監控代理模塊會把目標主機上所採集到的監控數據發送到統一監控管理平臺上,通過雲平臺門戶系統可以獲取到主機的監控數據展示。
所述統一監控調度管理平臺包括監控服務調度管理模塊、監控項容器鏡像倉庫管理模塊、監控項數據管理模塊及監控項容器鏡像部署管理模塊;而監控服務調度管理模塊由監控項服務申請接口模塊、基礎資源監控服務管理模塊、應用日誌監控服務管理模塊、中間件性能監控服務管理模塊組成,實現服務調度管理,接受處理申請開通或關閉監控服務請求、將請求參數生成監控配置參數;所述監控項容器鏡像倉庫管理模塊包括git倉庫管理模塊及監控項容器鏡像上傳管理接口模塊,實現鏡像管理,上傳監控項容器鏡像,對監控項容器鏡像進行版本的管理及控制;監控項數據管理模塊包括監控數據獲取接口模塊,實現監控數據統計,統計採集到的監控數據,對其數據進行分析,將分析結果展示到雲平臺門戶系統;所述監控項容器鏡像部署管理模塊實現部署管理,將符合請求的監控項容器鏡像自動部署到目標的主機上,並且啟動監控項代理服務。
本發明結合docker技術的輕量級虛擬化、移植性高、部署靈活、資源動態擴展的優勢,通過docker去封裝監控代理插件,分裝後的容器通過統一監控服務平臺調度管理。
本發明的架構思想是通過將一個複雜系統分解成一系列獨立開發、部署和運維的軟體服務,提升了整個監控服務系統的敏捷性,可以靈活的響應監控業務和監控平臺規模的變化。而docker技術則將服務的部署和環境完全解耦,利用docker的可移植性和敏捷性,快速交付分布式應用,從而大大提升了部署運維效率。然而大規模分布式微服務應用,也會給系統監控帶來新的挑戰。
此架構思想倡導的是能夠將監控服務功能快速迭代和動態部署。從技術角度來看,傳統的監控系統大多是針對物理機或虛擬機設計的,通常使用靜態的配置項來建立應用、環境與監控指標的映射。然而本發明的架構則打破了這種靜態的綁定關係。每個服務的實例都可能被分布在多個節點上,當一個節點失效時,服務實例可能會動態遷移到其他節點上;每個服務可以獨立演化,生命周期大大提速,需要考慮支持多版本並存。此外docker容器提供了獨立的進程空間,鼓勵一個容器只運行單一任務,這一方面改善了隔離性,同時也導致一些傳統的系統監控手段無法直接採集在容器中運行的應用狀態。
附圖說明
圖1為本發明監控項代理程序運行示意圖;
圖2為本發明監控服務平臺架構圖。
具體實施方式
參照圖2,一種結合docker實現動態管理監控服務系統,整個架構分為三個部分:雲平臺門戶系統、統一監控調度管理平臺、監控項代理模塊。
其中:雲平臺門戶系統是用戶在線申請雲主機資源、硬碟資源、網絡服務資源、監控服務。用戶可以通過web頁面註冊申請帳號,然後可以購買雲主機資源,如果用戶需要定製對雲資源監控服務,可以在此系統上下單購買。
統一監控調度管理平臺,如圖2此平臺功能有以下幾個點:
1、實現所有資源監控數據接受,且將數據進行統計及加工,用戶通過自己雲門戶帳號登錄到自己資源管理平臺下,用戶用平臺通過調用監控數據獲取接口模塊拿到資源的監控數據,在雲門戶以圖表的形式展示給用戶。
2、實現監控服務調度管理功能,此功能能夠將用戶通過雲門戶線上購買申請的監控服務請求進行配置及處理,此模塊接受到請求後,根據不同監控項類型,進行不同配置的處理,監控類型處理有三大模塊,基礎資源監控服務管理模塊、應用日誌監控服務管理模塊、中間件性能監控服務管理模塊。監控服務調度管理模塊將監控類型各模塊處理好的配置文件和對應的監控項容器及版本發送到監控項容器鏡像部署管理模塊,此模塊從監控項容器鏡像倉庫管理模塊獲取到對應的監控項容器鏡像版本,進行下載,然後監控項容器鏡像部署管理模塊將配置文件和監控項容器鏡像部署到用戶的雲主機上。
3、實現監控項容器鏡像倉庫管理功能,此功能是為服務提供方管理員提供的鏡像管理功能,管理員通過調用監控項容器鏡像上傳管理接口模塊將製作好的監控項容器鏡像上傳到git倉庫管理模塊中。
而監控項代理模塊將zabbix、elk、nagios、ganglia開源監控軟體的監控項功能代碼拆分,將每個監控軟體的監控項(基礎資源cpu、內存、硬碟、網絡吞吐監控,應用服務日誌會後監控,中間件性能監控、web應用性能監控)代碼從開源的軟體系統中分離出,對分離出的監控項的代碼進行重構,每一個監控項實現一個可以運行在docker容器裡的代理程序。監控項代理模塊在目標主機上的運行過程如圖1,統一監控調度管理平臺將分裝好的監控項容器部署到用戶雲主機後,監控項容器開始初始化,初始化完成後,監控項容器啟動,然後容器內監控項代理服務模塊啟動,監控項代理模塊開始採集雲主機上的監控數據,將採集到的監控數據上報到統一監控調度管理平臺。
本發明的運行過程為:雲平臺門戶系統是用戶使用雲資源及服務的入口平臺,用戶通過註冊,可以登錄到雲平臺門戶系統,在其上可以申請購買提供的雲產品(雲主機、雲硬碟、中間件服務)。用戶將自己的業務部署到雲主機上後,需要對雲主機運行狀態進行監控,這時他可以通過調用雲平臺門戶提供的申請監控服務接口。雲平臺門戶系統接口調用統一監控服務調度平臺的監控服務申請接口模塊,此模塊會將請求傳遞給監控服務調度管理模塊進行分類處理,應用日誌監控服務管理模塊、基礎資源監控服務管理模塊、中間件性能監控服務管理模塊三個處理模塊將自己處理完配置文件返回給監控服務調度管理模塊,這時,監控服務調度管理模塊會根據處理的接口去從監控項容器鏡像倉庫管理模塊下載相應的監控項容器鏡像,然後將配置文件和鏡像通過監控項容器鏡像部署管理模塊推送到雲主機上進行部署運行。在雲主機上,監控項容器正常運行後,它將根據配置的要求去獲取本機相應的監控數據,將其數據上報到統一監控服務平臺的監控數據管理模塊。用戶如果通過雲平臺門戶去獲取查看主機的監控數據,它將調用監控數據獲取接口模塊,它將從監控數據管理模塊中拿到所請求的數據返回給雲平臺門戶,通過圖表的形式展現給用戶。
下面以具體實際應用進一步說明本發明。
應用到公司openstack雲平臺,用來監控openstack平臺各物理節點的資源(cpu、內存、網絡、硬碟)使用情況、openstack各服務組件進場的運行情況、openstack個組件的日誌監控情況。還對雲平臺中的虛擬機的資源情況進行了監控,各虛擬主機的部署的業務不同,監控的方法或者軟體不同,如果按照傳統的監控方案,我們需要部署很多不同的監控軟體對其進行監控,這樣造成有新的需求,需要找新的物理伺服器,然後部署系統和監控軟體,這樣會為運維工程師增加了很大的工程量,通過對監控安裝微服務的思想進行架構,對各個監控項進行了分解,對其解耦,建立了docker容器架構的監控系統,不管openstack雲平臺有多麼複雜和不統一的監控需求都可以對其實現。通過用此監控系統,減輕了運維工程師的工作量,也簡化了對監控軟體各個參數靜態配置的複雜度。