本發(fā)明屬于云計算技術(shù)領(lǐng)域;具體涉及一種高可用的云監(jiān)控系統(tǒng)及監(jiān)控方法。
背景技術(shù):
云資源監(jiān)控系統(tǒng)是保證云平臺正常運(yùn)轉(zhuǎn)的關(guān)鍵,旨在收集資源負(fù)載信息,是作業(yè)調(diào)度、負(fù)載均衡、事件預(yù)測、故障檢測及恢復(fù)等的前提。
對云平臺上動態(tài)、復(fù)雜的虛擬資源進(jìn)行實時、有效的監(jiān)控和管理是保證云平臺可用性的關(guān)鍵。
現(xiàn)有云監(jiān)控系統(tǒng)中,為實時反映云平臺中的資源負(fù)載情況,監(jiān)控組件需要大量收集資源負(fù)載信息,監(jiān)控組件與被監(jiān)控資源間存在頻繁的數(shù)據(jù)傳輸,造成較大的通信開銷,容易導(dǎo)致網(wǎng)絡(luò)擁堵,很難做到監(jiān)控信息的實時同步和監(jiān)控系統(tǒng)的穩(wěn)定可靠,并對云平臺的運(yùn)轉(zhuǎn)造成干擾,影響云平臺的正常使用,降低服務(wù)質(zhì)量。此為現(xiàn)有技術(shù)的不足之處。
因此,針對現(xiàn)有技術(shù)中的上述缺陷,提供設(shè)計一種高可用的云監(jiān)控系統(tǒng)及監(jiān)控方法;以解決上述技術(shù)問題,是非常有必要的。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于,針對上述現(xiàn)有技術(shù)存在的缺陷,提供設(shè)計一種高可用的云監(jiān)控系統(tǒng)及監(jiān)控方法,以解決上述技術(shù)問題。
為實現(xiàn)上述目的,本發(fā)明給出以下技術(shù)方案:
一種高可用的云監(jiān)控系統(tǒng),它包括設(shè)置于各個待檢測節(jié)點的agent模塊;其特征在于,各agent模塊將采集到的待檢測節(jié)點的狀態(tài)信息發(fā)送到agentCluster節(jié)點,agentCluster節(jié)點將采集到的數(shù)據(jù)發(fā)送至SERVER服務(wù)端;
所述的待檢測節(jié)點包括物理主機(jī)和虛擬機(jī)。
優(yōu)選地,各agent模塊之間定期相互發(fā)送心跳信息。
本發(fā)明還給出一種高可用的云監(jiān)控方法,包括以下步驟:
步驟1):在待監(jiān)控主機(jī)中設(shè)置智能agent模塊,并通過Server服務(wù)端以文件的形式將監(jiān)控任務(wù)發(fā)送到待監(jiān)控主機(jī)中;待監(jiān)控主機(jī)包括物理主機(jī)以及虛擬機(jī);
步驟2):將監(jiān)控腳本(BAT或是SHELL形式)通過Server服務(wù)端傳送到待監(jiān)控物理主機(jī)以及虛擬機(jī)中;腳本傳輸完結(jié)束后向agent模塊傳送監(jiān)控命令,agent模塊收到命令后運(yùn)行對應(yīng)的腳本文件,采集監(jiān)控數(shù)據(jù);
步驟3):以物理主機(jī)中的agent模塊作為agentCluster節(jié)點,虛擬機(jī)中的agent作為Cluster群集合的成員;Cluster群集合成員中的各agent模塊之間以固定時間Theartbeating發(fā)送心跳數(shù)據(jù)報文,作為各agent模塊存活的標(biāo)志;
步驟4):各agent模塊依據(jù)任務(wù)列表讀取任務(wù)腳本,發(fā)送采集到的數(shù)據(jù)給agentCluster節(jié)點;初始監(jiān)控周期為default_monitor_time(i),同時設(shè)置監(jiān)控周期變化步長,采樣的時間間隔的調(diào)整大小為原子時間atomic_time(i)的整數(shù)倍;
步驟5):agent分別為不同的監(jiān)控指標(biāo)建立對應(yīng)的存儲隊列,并計算數(shù)據(jù)緩沖隊列中的數(shù)據(jù)的偏差情況,其計算使用如下模型:
其中δ表示樣本數(shù)據(jù)的標(biāo)準(zhǔn)差,Xi為采集到的第i個數(shù)據(jù)的狀態(tài)信息;
步驟6):在步驟5)的基礎(chǔ)上,定義第i個監(jiān)控指標(biāo)的數(shù)據(jù)偏差的上限為threshold(i);如果采集到的數(shù)據(jù)的變化趨勢較為平穩(wěn)即δ<threshold(i),則增大數(shù)據(jù)監(jiān)控采樣周期,如果監(jiān)控采集到的數(shù)據(jù)的變化趨勢較大,即δ>=threshold(i),則縮小數(shù)據(jù)監(jiān)控采樣周期的大??;
步驟7):agentCluster節(jié)點接收到數(shù)據(jù)之后,將監(jiān)控數(shù)據(jù)通過消息隊列發(fā)送給監(jiān)控平臺的Server服務(wù)端。
作為優(yōu)選,所述步驟1)中,監(jiān)控任務(wù)包括監(jiān)控指標(biāo)(cpu,內(nèi)存,存儲等)以及監(jiān)控腳本的存放路徑。
作為優(yōu)選,所述步驟3)中還包括以下步驟:
當(dāng)agent超過時間Theartbeating,沒有發(fā)送心跳數(shù)據(jù),則認(rèn)為該agent已關(guān)閉;agentCluster節(jié)點負(fù)責(zé)定時報告成員agent的運(yùn)行狀態(tài);當(dāng)cluster群集合成員發(fā)現(xiàn)agentCluster關(guān)閉,則啟動分布式選舉算法Paxos,重新選擇agentCluster節(jié)點。
作為優(yōu)選,所述步驟6)中,增大數(shù)據(jù)監(jiān)控采樣周期的計算模型為:
monitor_time(i)=default_monitor_time(i)①
monitor_time(i)=monitor_time(i)+atomic_time(i)*f(δ,threshold(i))②
其中公式①表示監(jiān)控指標(biāo)i的采樣周期的初始化設(shè)置;公式②表示監(jiān)控指標(biāo)i的采樣周期的動態(tài)調(diào)整,其中f(δ,threshold(i))表示數(shù)據(jù)偏差值δ與閾值threshold(i)的對應(yīng)函數(shù)關(guān)系;
縮小數(shù)據(jù)監(jiān)控采樣周期的計算模型為:
monitor_time(i)=max(monitor_time(i)/2,atomic_time(i))。
本發(fā)明的有益效果在于,動態(tài)調(diào)整agent采集數(shù)據(jù)的周期,減少監(jiān)控系統(tǒng)冗余數(shù)據(jù)的傳輸,保證云監(jiān)控系統(tǒng)的高效穩(wěn)定。同時節(jié)點定時報告自己的運(yùn)行狀態(tài),并通過選舉算法避免了單節(jié)點失效問題的發(fā)生。此外,本發(fā)明設(shè)計原理可靠,結(jié)構(gòu)簡單,具有非常廣泛的應(yīng)用前景。
由此可見,本發(fā)明與現(xiàn)有技術(shù)相比,具有突出的實質(zhì)性特點和顯著地進(jìn)步,其實施的有益效果也是顯而易見的。
附圖說明
圖1是本發(fā)明提供的一種高可用的云監(jiān)控系統(tǒng)的原理框圖。
其中,1-agent模塊,2-agentCluster,3-虛擬機(jī),4-物理主機(jī),5-Server服務(wù)端,6-消息隊列。
具體實施方式
下面結(jié)合附圖并通過具體實施例對本發(fā)明進(jìn)行詳細(xì)闡述,以下實施例是對本發(fā)明的解釋,而本發(fā)明并不局限于以下實施方式。
如圖1所示,本發(fā)明提供的一種高可用的云監(jiān)控系統(tǒng),它包括設(shè)置于各個待檢測節(jié)點的agent模塊;其特征在于,各agent模塊將采集到的待檢測節(jié)點的狀態(tài)信息發(fā)送到agentCluster節(jié)點,agentCluster節(jié)點將采集到的數(shù)據(jù)發(fā)送至Server服務(wù)端;
所述的待檢測節(jié)點包括物理主機(jī)和虛擬機(jī)。
本實施例中,各agent模塊之間定期相互發(fā)送心跳信息。
本發(fā)明還給出一種高可用的云監(jiān)控方法,包括以下步驟:
步驟1):在待監(jiān)控主機(jī)中設(shè)置智能agent模塊,并通過Server服務(wù)端以文件的形式將監(jiān)控任務(wù)發(fā)送到待監(jiān)控主機(jī)中;待監(jiān)控主機(jī)包括物理主機(jī)以及虛擬機(jī);
步驟2):將監(jiān)控腳本(BAT或是SHELL形式)通過Server服務(wù)端傳送到待監(jiān)控物理主機(jī)以及虛擬機(jī)中;腳本傳輸完結(jié)束后向agent模塊傳送監(jiān)控命令,agent模塊收到命令后運(yùn)行對應(yīng)的腳本文件,采集監(jiān)控數(shù)據(jù);
步驟3):以物理主機(jī)中的agent模塊作為agentCluster節(jié)點,虛擬機(jī)中的agent作為Cluster群集合的成員;Cluster群集合成員中的各agent模塊之間以固定時間Theartbeating發(fā)送心跳數(shù)據(jù)報文,作為各agent模塊存活的標(biāo)志;
步驟4):各agent模塊依據(jù)任務(wù)列表讀取任務(wù)腳本,發(fā)送采集到的數(shù)據(jù)給agentCluster節(jié)點;初始監(jiān)控周期為default_monitor_time(i),同時設(shè)置監(jiān)控周期變化步長,采樣的時間間隔的調(diào)整大小為原子時間atomic_time(i)的整數(shù)倍;
步驟5):agent分別為不同的監(jiān)控指標(biāo)建立對應(yīng)的存儲隊列,并計算數(shù)據(jù)緩沖隊列中的數(shù)據(jù)的偏差情況,其計算使用如下模型:
其中δ表示樣本數(shù)據(jù)的標(biāo)準(zhǔn)差,Xi為采集到的第i個數(shù)據(jù)的狀態(tài)信息;
步驟6):在步驟5)的基礎(chǔ)上,定義第i個監(jiān)控指標(biāo)的數(shù)據(jù)偏差的上限為threshold(i);如果采集到的數(shù)據(jù)的變化趨勢較為平穩(wěn)即δ<threshold(i),則增大數(shù)據(jù)監(jiān)控采樣周期,如果監(jiān)控采集到的數(shù)據(jù)的變化趨勢較大,即δ>=threshold(i),則縮小數(shù)據(jù)監(jiān)控采樣周期的大??;
步驟7):agentCluster節(jié)點接收到數(shù)據(jù)之后,將監(jiān)控數(shù)據(jù)通過消息隊列發(fā)送給監(jiān)控平臺的SERVER服務(wù)端。
本實施例中,所述步驟1)中,監(jiān)控任務(wù)包括監(jiān)控指標(biāo)(cpu,內(nèi)存,存儲等)以及監(jiān)控腳本的存放路徑。
所述步驟3)中還包括以下步驟:
當(dāng)agent超過時間Theartbeating,沒有發(fā)送心跳數(shù)據(jù),則認(rèn)為該agent已關(guān)閉;agentCluster節(jié)點負(fù)責(zé)定時報告成員agent的運(yùn)行狀態(tài);當(dāng)cluster群集合成員發(fā)現(xiàn)agentCluster關(guān)閉,則啟動分布式選舉算法Paxos,重新選擇agentCluster節(jié)點。
所述步驟6)中,增大數(shù)據(jù)監(jiān)控采樣周期的計算模型為:
monitor_time(i)=default_monitor_time(i) ①
monitor_time(i)=monitor_time(i)+atomic_time(i)*f(δ,threshold(i)) ②
其中公式①表示監(jiān)控指標(biāo)i的采樣周期的初始化設(shè)置;公式②表示監(jiān)控指標(biāo)i的采樣周期的動態(tài)調(diào)整,其中f(δ,threshold(i))表示數(shù)據(jù)偏差值δ與閾值threshold(i)的對應(yīng)函數(shù)關(guān)系;
縮小數(shù)據(jù)監(jiān)控采樣周期的計算模型為:
monitor_time(i)=max(monitor_time(i)/2,atomic_time(i))。
以上公開的僅為本發(fā)明的優(yōu)選實施方式,但本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的沒有創(chuàng)造性的變化,以及在不脫離本發(fā)明原理前提下所作的若干改進(jìn)和潤飾,都應(yīng)落在本發(fā)明的保護(hù)范圍內(nèi)。