智能運(yùn)維|揭開監(jiān)控系統(tǒng)神經(jīng)中樞的神秘面紗

原標(biāo)題:智能運(yùn)維|揭開監(jiān)控系統(tǒng)神經(jīng)中樞的神秘面紗

隨著軟件系統(tǒng)的發(fā)展,監(jiān)控目標(biāo)場(chǎng)景越來越廣泛,對(duì)監(jiān)控系統(tǒng)的能力要求也越來越高。對(duì)于監(jiān)控系統(tǒng)來說,從能力上看基本可以劃分為數(shù)據(jù)采集、數(shù)據(jù)計(jì)算、數(shù)據(jù)存儲(chǔ)、異常檢測(cè)、報(bào)警處理以及監(jiān)控可視化六塊。

為了更好應(yīng)對(duì)大規(guī)模、復(fù)雜化的監(jiān)控業(yè)務(wù)場(chǎng)景,我們不僅僅需要在具體監(jiān)控能力上做深、做強(qiáng),還需要建立對(duì)應(yīng)機(jī)制來統(tǒng)籌這些能力一起良好協(xié)作。今天的這篇文章就為大家介紹監(jiān)控系統(tǒng)的神經(jīng)中樞——配置管理與分發(fā)系統(tǒng),讓我們一起揭開它神秘的面紗吧!

需求

在業(yè)務(wù)系統(tǒng)發(fā)展的初期,由于場(chǎng)景簡(jiǎn)單,對(duì)監(jiān)控的需求也比較簡(jiǎn)單,比如僅采集默認(rèn)的機(jī)器監(jiān)控?cái)?shù)據(jù),不需要進(jìn)行進(jìn)程、日志等監(jiān)控能力。同時(shí)監(jiān)控的規(guī)模也相對(duì)較小,用戶的配置數(shù)量一般在百或千級(jí)別,這時(shí)只需定期讀取數(shù)據(jù)庫(kù)中的配置就可以很好的工作。

隨著業(yè)務(wù)系統(tǒng)的快速發(fā)展,業(yè)務(wù)體量越來越大,業(yè)務(wù)復(fù)雜度越來越高,對(duì)監(jiān)控的需求也越來越高。傳統(tǒng)的簡(jiǎn)單讀取數(shù)據(jù)庫(kù)配置在業(yè)務(wù)擴(kuò)展性和性能上遇到了挑戰(zhàn)。

1、支持不同類型的配置管理

監(jiān)控指標(biāo)采集、計(jì)算、報(bào)警等方面的配置種類越來越多。如物理機(jī)的機(jī)器資源類指標(biāo)、應(yīng)用程序的進(jìn)程和日志指標(biāo)的采集配置、站點(diǎn)的連通性采集配置、服務(wù)器的宕機(jī)檢測(cè)任務(wù)配置、多個(gè)實(shí)例間指標(biāo)的計(jì)算任務(wù)配置、指標(biāo)數(shù)據(jù)的異常檢測(cè)配置、報(bào)警信息發(fā)送配置等。

2、支持不同場(chǎng)景的配置分發(fā)

  • 高并發(fā)配置下載場(chǎng)景:監(jiān)控系統(tǒng)中每個(gè)物理機(jī)部署一個(gè)Agent用于對(duì)部署在該機(jī)器上的應(yīng)用程序相關(guān)指標(biāo)進(jìn)行采集。Agent需要下載與主機(jī)關(guān)聯(lián)的采集配置,在大規(guī)模的監(jiān)控系統(tǒng)中,Agent的數(shù)量達(dá)到百萬級(jí)別,采集配置的更新周期為10s,配置分發(fā)系統(tǒng)需要應(yīng)對(duì)高并發(fā)查詢的壓力。
  • 一致性配置下載場(chǎng)景:為了應(yīng)對(duì)高可用、大規(guī)模的數(shù)據(jù)計(jì)算及報(bào)警場(chǎng)景,各個(gè)子系統(tǒng)往往使用集群化部署。以報(bào)警集群為例,同一機(jī)器的數(shù)據(jù)可能會(huì)由報(bào)警集群的不同實(shí)例進(jìn)行判斷,若配置在集群內(nèi)不一致,那么報(bào)警系統(tǒng)的行為就會(huì)變得不可預(yù)期。

3、支持故障快速恢復(fù)

配置分發(fā)系統(tǒng)作為監(jiān)控的樞紐,關(guān)聯(lián)的模塊比較多,系統(tǒng)故障會(huì)影響采集、計(jì)算、報(bào)警子系統(tǒng)工作的正確性以及用戶新加監(jiān)控配置不生效,所以需要相應(yīng)的方案來保障監(jiān)控系統(tǒng)的快速恢復(fù)或重建能力,來保障監(jiān)控系統(tǒng)的可用。

圖1 配置管理&分發(fā)系統(tǒng)交互流程圖

方案

理完問題、需求,接下來就要針對(duì)這些問題進(jìn)行相應(yīng)的改造升級(jí)。下面我們從技術(shù)的角度介紹下如何解決這些問題吧!

1、支持配置可擴(kuò)展性

復(fù)雜的監(jiān)控能力意味著監(jiān)控系統(tǒng)的配置種類靈活多樣。如果直接將配置分發(fā)模型與業(yè)務(wù)模型對(duì)接,意味著業(yè)務(wù)上的每次改動(dòng)都需要配置下發(fā)系統(tǒng)進(jìn)行對(duì)應(yīng)的變更。那么如何統(tǒng)一配置的多樣性,做到配置下發(fā)對(duì)上層業(yè)務(wù)透明呢?答案是:歸類+抽象。

將不同的配置按照“目錄”進(jìn)行分類管理,實(shí)現(xiàn)統(tǒng)一的配置管理需求。

以文件作為載體,所有配置都以文件的形式進(jìn)行管理。不同的文件內(nèi)容格式代表著不同類型的配置,原有格式的升級(jí)以及新類型的添加統(tǒng)一抽象為文件處理,增強(qiáng)了系統(tǒng)的擴(kuò)展能力。

通過代碼管理系統(tǒng)管理文件的方式,實(shí)現(xiàn)變更歷史追蹤。通過對(duì)文件系統(tǒng)的定時(shí)備份與構(gòu)建快速故障恢復(fù)機(jī)制提升系統(tǒng)的可用性與可靠性。

圖2 配置歸類&抽象

在歸類方面,由于不同的能力需要的配置形式不同,我們以此為依據(jù)進(jìn)行分類。對(duì)應(yīng)到實(shí)現(xiàn)中則通過目錄表達(dá)分類的含義,通過子目錄來表達(dá)配置的層級(jí)與歸屬等關(guān)系。這里我們將配置目錄的層級(jí)分為監(jiān)控功能層級(jí)->用戶層級(jí)->應(yīng)用層級(jí)三層,在應(yīng)用目錄下將具體配置(如進(jìn)程監(jiān)控配置、日志監(jiān)控配置)寫入文件中。

2、確保一致下發(fā)

通過對(duì)配置管理方式的抽象與歸類整理,配置的一致性下發(fā)可以通過構(gòu)建配置文件內(nèi)容的一致性機(jī)制解決。我們使用“版本”作為文件內(nèi)容一致性機(jī)制的核心。當(dāng)用戶變更配置時(shí),配置管理系統(tǒng)會(huì)生成一個(gè)全局唯一的版本描述此次配置變更操作,版本中包含此次變更操作對(duì)應(yīng)的配置文件變更詳情。

配置下發(fā)時(shí),在各個(gè)子系統(tǒng)會(huì)定期檢測(cè)配置版本差異并更新本地配置至最新版本,從而保證配置在每個(gè)更新周期內(nèi)保持一致。

3、應(yīng)對(duì)高并發(fā)壓力

大規(guī)模的壓力則主要體現(xiàn)在采集Agent的配置下發(fā)部分。由于Agent只需拿到部署主機(jī)所需的監(jiān)控配置,因此將配置文件按照監(jiān)控的最小單元進(jìn)行拆分,并按照規(guī)范進(jìn)行打包。

圖3 Agent配置拆分&下載流程

當(dāng)前的業(yè)務(wù)部署往往采用混布方式,同一主機(jī)中會(huì)部署多個(gè)不同類型的應(yīng)用程序。為了支持這種監(jiān)控場(chǎng)景,主機(jī)上部署的采集Agent會(huì)查找主機(jī)上部署的應(yīng)用并下載對(duì)應(yīng)的多個(gè)應(yīng)用配置。當(dāng)業(yè)務(wù)規(guī)模增大時(shí),物理機(jī)增多,配置下載請(qǐng)求也會(huì)成倍增長(zhǎng),因配置存儲(chǔ)的Server端很容易達(dá)到性能瓶頸。通過可水平擴(kuò)展的靜態(tài)文件下載服務(wù)來應(yīng)對(duì)高并發(fā)下載壓力,通過ETag方式檢測(cè)文件是否變更,只針對(duì)變更的配置文件才進(jìn)行傳輸以減少下載流量,最終滿足了百萬級(jí)主機(jī)、千萬級(jí)實(shí)例的配置下發(fā)需求。

4、故障快速恢復(fù)

考慮到配置在監(jiān)控系統(tǒng)中的重要程度,為了保障業(yè)務(wù)的可用性,就需要構(gòu)建監(jiān)控系統(tǒng)的快速故障恢復(fù)機(jī)制。

同時(shí),由于監(jiān)控系統(tǒng)配置集中管理,隨著系統(tǒng)的發(fā)展,配置的體積也在不斷增長(zhǎng),配置文件體積達(dá)到數(shù)十GB級(jí)別,并且全部由小文件組成,文件個(gè)數(shù)也達(dá)到了數(shù)百萬級(jí)別。為了減輕系統(tǒng)壓力,在系統(tǒng)中加入“快照”機(jī)制,每隔一段時(shí)間便生成當(dāng)前全量配置的快照,當(dāng)出現(xiàn)大量更新時(shí),先通過“快照”減少更新量,再通過對(duì)應(yīng)同步機(jī)制進(jìn)行少量的文件更新。

總 結(jié)

經(jīng)過不斷的努力和多次改造,目前的配置管理及分發(fā)可以滿足監(jiān)控系統(tǒng)的需求。由于能夠靈活管理多種配置,并且快速、一致地送至各個(gè)系統(tǒng)。在面對(duì)故障場(chǎng)景時(shí)候,也可以及時(shí)撤回配置,避免更大的損失。然而隨著監(jiān)控業(yè)務(wù)的發(fā)展,系統(tǒng)架構(gòu)的變遷,起著中樞作用的配置管理與分發(fā)系統(tǒng)將會(huì)面臨新的挑戰(zhàn)。路漫漫其修遠(yuǎn)兮,吾將上下而求索!

了解更多,關(guān)注百度云微信公眾號(hào)

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2019-01-17
智能運(yùn)維|揭開監(jiān)控系統(tǒng)神經(jīng)中樞的神秘面紗
高并發(fā)配置下載場(chǎng)景:監(jiān)控系統(tǒng)中每個(gè)物理機(jī)部署一個(gè)Agent用于對(duì)部署在該機(jī)器上的應(yīng)用程序相關(guān)指標(biāo)進(jìn)行采集。

長(zhǎng)按掃碼 閱讀全文