欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種容器的監(jiān)控方法及裝置與流程

文檔序號:12271021閱讀:203來源:國知局
一種容器的監(jiān)控方法及裝置與流程

本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種容器的監(jiān)控方法及裝置。



背景技術(shù):

Linux容器是一種內(nèi)核虛擬化技術(shù),可以提供輕量級的虛擬化,以便隔離進(jìn)程和資源,而且不需要提供指令解釋機(jī)制以及全虛擬化的其他復(fù)雜性。它可以在單臺服務(wù)器中虛擬出多個(gè)相互隔離的執(zhí)行環(huán)境,在容器內(nèi)部執(zhí)行的進(jìn)程,被容器技術(shù)隔離在容器內(nèi)部,對進(jìn)程而言就如同運(yùn)行在一臺單獨(dú)的服務(wù)器上,而無法感知該服務(wù)器上其他容器內(nèi)或者服務(wù)器上的服務(wù)。

隨著Linux容器技術(shù)的普及,越來越多的服務(wù)被以容器的形式部署到服務(wù)器并提供服務(wù),部署在容器內(nèi)部的服務(wù),需要通過集中監(jiān)控獲取其資源使用情況以及服務(wù)運(yùn)行情況。

在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:在容器內(nèi)部運(yùn)行監(jiān)控程序,既占用容器內(nèi)部分配的資源,又由于在每一個(gè)容器內(nèi)都運(yùn)行而占用宿主機(jī)的資源,同時(shí),由于監(jiān)控程序分布在每一個(gè)容器內(nèi)部,造成了監(jiān)控程序的升級和維護(hù)困難。



技術(shù)實(shí)現(xiàn)要素:

為了克服現(xiàn)有技術(shù)中相關(guān)產(chǎn)品的不足,本發(fā)明實(shí)施例提出一種容器的監(jiān)控方法及裝置,僅需要在容器宿主機(jī)上安裝并執(zhí)行一次監(jiān)控程序,即可對該服務(wù)器上的所有容器進(jìn)行監(jiān)控,解決由于監(jiān)控程序分布在每一個(gè)容器內(nèi)部而使其升級和維護(hù)困難的缺點(diǎn)。

本發(fā)明實(shí)施例解決其技術(shù)問題所采用的技術(shù)方案是:

本發(fā)明實(shí)施例所提供的一種容器的監(jiān)控方法,包括以下步驟:

在服務(wù)器上獲取容器列表;

按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息。

作為本發(fā)明實(shí)施例的進(jìn)一步改進(jìn),所述在服務(wù)器上獲取容器列表具體為:

發(fā)送容器列表獲取指令;在服務(wù)器響應(yīng)所述容器列表獲取指令后,接收服務(wù)器返回的容器列表。

作為本發(fā)明實(shí)施例的進(jìn)一步改進(jìn),所述容器列表包括容器的唯一容器標(biāo)識以及容器運(yùn)行狀態(tài)信息。

作為本發(fā)明實(shí)施例的進(jìn)一步改進(jìn),所述服務(wù)器在容器列表內(nèi)的信息發(fā)生變更時(shí),返回新的容器列表。

作為本發(fā)明實(shí)施例的進(jìn)一步改進(jìn),所述按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息具體為:

設(shè)定容器列表中每個(gè)容器的反饋間隔;對所有容器的運(yùn)行進(jìn)行記時(shí);讀取達(dá)到反饋間隔時(shí)間的容器的屬性信息。

本發(fā)明實(shí)施例所提供的一種容器的監(jiān)控裝置,包括:獲取模塊和監(jiān)控模塊;

所述獲取模塊用于在服務(wù)器上獲取容器列表;

所述監(jiān)控模塊用于按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息。

作為本發(fā)明實(shí)施例的進(jìn)一步改進(jìn),所述獲取模塊包括發(fā)送單元和接收單元;

所述發(fā)送單元用于發(fā)送容器列表獲取指令;

所述接收單元用于在服務(wù)器響應(yīng)所述容器列表獲取指令后,接收服務(wù)器返回的容器列表。

作為本發(fā)明實(shí)施例的進(jìn)一步改進(jìn),所述容器列表包括容器的唯一容器標(biāo)識以及容器運(yùn)行狀態(tài)信息。

作為本發(fā)明實(shí)施例的進(jìn)一步改進(jìn),所述服務(wù)器在容器列表內(nèi)的信息發(fā)生變更時(shí),返回新的容器列表。

作為本發(fā)明實(shí)施例的進(jìn)一步改進(jìn),所述監(jiān)控模塊包括設(shè)定單元、記時(shí)單元以及讀取單元;

所述設(shè)定單元用于設(shè)定容器列表中每個(gè)容器的反饋間隔;

所述記時(shí)單元用于對所有容器的運(yùn)行進(jìn)行記時(shí);

所述讀取單元用于讀取達(dá)到反饋間隔時(shí)間的容器的屬性信息。

與現(xiàn)有技術(shù)相比,本發(fā)明有以下優(yōu)點(diǎn):

1、只需要運(yùn)行一個(gè)監(jiān)控程序即可對服務(wù)器上所有容器進(jìn)行監(jiān)控,而不必每一個(gè)容器分別配置一個(gè)監(jiān)控程序,節(jié)約了服務(wù)器的資源。

2、只運(yùn)行一個(gè)監(jiān)控程序,降低了監(jiān)控程序的復(fù)雜程度,便于進(jìn)行升級和維護(hù)。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實(shí)施例所述容器的監(jiān)控方法第一實(shí)施例的流程圖;

圖2為本發(fā)明實(shí)施例所述容器的監(jiān)控方法第二實(shí)施例的流程圖;

圖3為本發(fā)明實(shí)施例所述容器的監(jiān)控裝置第一實(shí)施例的原理結(jié)構(gòu)圖;

圖4為本發(fā)明實(shí)施例所述容器的監(jiān)控裝置第二實(shí)施例的原理結(jié)構(gòu)圖。

具體實(shí)施方式

為了便于理解本發(fā)明,下面將參照相關(guān)附圖對本發(fā)明進(jìn)行更全面的描述。附圖中給出了本發(fā)明的較佳實(shí)施例。但是,本發(fā)明可以以許多不同的形式來實(shí)現(xiàn),并不限于本文所描述的實(shí)施例。相反地,提供這些實(shí)施例的目的是使對本發(fā)明的公開內(nèi)容的理解更加透徹全面。

除非另有定義,本文所使用的所有的技術(shù)和科學(xué)術(shù)語與屬于本發(fā)明的技術(shù)領(lǐng)域的技術(shù)人員通常理解的含義相同。本文中在本發(fā)明的說明書中所使用的術(shù)語只是為了描述具體的實(shí)施例的目的,不是旨在于限制本發(fā)明。

實(shí)施例一

參閱圖1所示,為本發(fā)明所述容器的監(jiān)控方法的第一實(shí)施例,包括以下步驟:

S101:在服務(wù)器上獲取容器列表;

所述容器是一種LINUX內(nèi)核虛擬化技術(shù),可以提供輕量級的虛擬化,以便隔離進(jìn)程和資源,對服務(wù)運(yùn)行時(shí)的環(huán)境進(jìn)行隔離,被隔離出來的運(yùn)行環(huán)境就稱為容器;所述承載容器運(yùn)行的外部環(huán)境的宿主機(jī)即服務(wù)器,所述服務(wù)器上會(huì)同時(shí)運(yùn)行有多個(gè)容器,用于同時(shí)執(zhí)行多個(gè)服務(wù)進(jìn)程;在本發(fā)明實(shí)施例中,在所述服務(wù)器啟動(dòng)運(yùn)行后,向所述服務(wù)器發(fā)送容器列表獲取指令,在服務(wù)器響應(yīng)所述容器列表獲取指令后,接收服務(wù)器返回的容器列表,所述容器列表包括容器的唯一容器標(biāo)識以及容器運(yùn)行狀態(tài)信息。

S102:按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息;

在本發(fā)明實(shí)施例中,通過設(shè)定容器列表中每個(gè)容器的反饋間隔,同時(shí)對所有容器的運(yùn)行進(jìn)行記時(shí),在容器達(dá)到反饋間隔時(shí)間后獲取對應(yīng)容器的屬性信息;本發(fā)明實(shí)施例可以對容器列表中每個(gè)處于活動(dòng)狀態(tài)的容器單獨(dú)設(shè)置反饋間隔,也可以對所有活動(dòng)狀態(tài)的容器設(shè)置統(tǒng)一的反饋間隔。

所述讀取容器屬性信息的過程具體包括以下幾種方式:

在本發(fā)明實(shí)施例中,所述LINUX操作系統(tǒng)的內(nèi)核為每個(gè)容器暴露的內(nèi)核數(shù)據(jù)結(jié)構(gòu),所述內(nèi)核數(shù)據(jù)結(jié)構(gòu)通過偽文件系統(tǒng)將其一部分?jǐn)?shù)據(jù)結(jié)構(gòu)暴露在內(nèi)核外,所述偽文件系統(tǒng)包括proc文件系統(tǒng)、sys(SYSTEM,系統(tǒng)復(fù)制命令)文件系統(tǒng)和cgroup(control groups,控制組)文件系統(tǒng)等;在達(dá)到反饋間隔時(shí)間后,通過所述偽文件系統(tǒng)直接讀取暴露在內(nèi)核外的部分的數(shù)據(jù),獲取對應(yīng)容器的屬性信息,所述容器的屬性信息包括對應(yīng)容器的內(nèi)存資源使用情況、磁盤使用情況和網(wǎng)絡(luò)IO((Input/Output,輸入/輸出)使用情況等。

在本發(fā)明實(shí)施例中,所述宿主機(jī)上運(yùn)行的所有容器都通過自身的根文件系統(tǒng)來獨(dú)立運(yùn)行,實(shí)現(xiàn)容器之間相互隔離,彼此不能訪問;所述容器內(nèi)部執(zhí)行的程序會(huì)將一些容器自身特定的信息輸出到自身的根文件系統(tǒng)內(nèi);在達(dá)到反饋間隔時(shí)間后,通過讀取對應(yīng)容器內(nèi)部的根文件系統(tǒng),獲取容器內(nèi)執(zhí)行程序的執(zhí)行情況,并進(jìn)行日志收集,健康診斷等功能。

在本發(fā)明實(shí)施例中,所述LINUX操作系統(tǒng)為所有運(yùn)行的容器提供接口,在達(dá)到反饋間隔時(shí)間后,通過調(diào)用該接口,臨時(shí)進(jìn)入對應(yīng)容器的命名空間;在所述容器內(nèi)部的執(zhí)行程序會(huì)按照任務(wù)要求進(jìn)行對容器執(zhí)行操作,包括停止容器內(nèi)部的進(jìn)程,修改容器內(nèi)部的文件等;通過操作該容器,所述執(zhí)行程序可以獲取任務(wù)執(zhí)行的結(jié)果或者容器內(nèi)部的屬性信息,在所述容器內(nèi)部環(huán)境可以讀取到容器內(nèi)部的屬性信息以及執(zhí)行程序的執(zhí)行情況,并在獲取了對應(yīng)的容器屬性信息后離開所述容器的內(nèi)部環(huán)境;通過LINUX操作系統(tǒng)提供的接口,在其他容器達(dá)到反饋間隔時(shí)間后,切換并臨時(shí)進(jìn)入對應(yīng)容器的命名空間,通過讀取對應(yīng)容器的屬性信息實(shí)現(xiàn)對容器的監(jiān)控。

在本發(fā)明實(shí)施例中,所述容器的監(jiān)控方法通過在服務(wù)器上獲取容器列表,按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息;通過該過程,可以實(shí)現(xiàn)運(yùn)行一個(gè)監(jiān)控程序即可對服務(wù)器上所有容器進(jìn)行監(jiān)控,而不必每一個(gè)容器分別配置一個(gè)監(jiān)控程序,只需要對每個(gè)容器設(shè)置對應(yīng)的反饋間隔,在達(dá)到反饋間隔后,獲取對應(yīng)容器的屬性信息即可對該容器的運(yùn)行實(shí)現(xiàn)監(jiān)控,既節(jié)約了服務(wù)器的資源又降低了監(jiān)控程序的復(fù)雜程度,便于進(jìn)行升級和維護(hù)。

實(shí)施例二

參閱圖2所示,為本發(fā)明所述容器的監(jiān)控方法的第二實(shí)施例,包括以下步驟:

S201:發(fā)送容器列表獲取指令;

所述容器是一種LINUX內(nèi)核虛擬化技術(shù),可以提供輕量級的虛擬化,以便隔離進(jìn)程和資源,對服務(wù)運(yùn)行時(shí)的環(huán)境進(jìn)行隔離,被隔離出來的運(yùn)行環(huán)境就稱為容器;所述承載容器運(yùn)行的外部環(huán)境的宿主機(jī)即服務(wù)器,所述服務(wù)器上會(huì)同時(shí)運(yùn)行有多個(gè)容器,用于同時(shí)執(zhí)行多個(gè)服務(wù)進(jìn)程;在本發(fā)明實(shí)施例中,在所述服務(wù)器啟動(dòng)運(yùn)行后,向所述服務(wù)器發(fā)送容器列表獲取指令。

S202:在服務(wù)器響應(yīng)所述容器列表獲取指令后,接收服務(wù)器返回的容器列表;

在本發(fā)明實(shí)施例中,所述容器列表包括容器的唯一容器標(biāo)識以及容器運(yùn)行狀態(tài)信息,所述容器標(biāo)識是標(biāo)示容器的唯一標(biāo)識,用于在宿主機(jī)中區(qū)分各個(gè)容器的身份,所述容器運(yùn)行狀態(tài)信息是指容器當(dāng)前的運(yùn)行狀態(tài),包括活動(dòng)狀態(tài)以及停止?fàn)顟B(tài);所述容器的唯一容器標(biāo)識與所述容器運(yùn)行狀態(tài)信息一一對應(yīng);所述服務(wù)器響應(yīng)所述容器列表獲取指令,返回容器列表,在本發(fā)明實(shí)施例中,所述服務(wù)器返回的容器列表是服務(wù)器上所有容器的容器標(biāo)識以及其對應(yīng)的容器運(yùn)行狀態(tài)信息經(jīng)整理后制成的列表,當(dāng)有容器的運(yùn)行狀態(tài)發(fā)生了變化或者有新的容器產(chǎn)生時(shí),所述容器列表內(nèi)的信息也會(huì)實(shí)時(shí)變更;在本發(fā)明實(shí)施例中,所述服務(wù)器在容器列表內(nèi)的信息發(fā)生變更時(shí),返回新的容器列表。

S203:設(shè)定容器列表中每個(gè)容器的反饋間隔;

在本發(fā)明實(shí)施例中,僅對所述容器列表中處于活動(dòng)狀態(tài)的容器進(jìn)行反饋間隔的設(shè)定,輸出設(shè)定結(jié)果;用戶可以對容器列表中每個(gè)處于活動(dòng)狀態(tài)的容器單獨(dú)設(shè)置反饋間隔,根據(jù)容器內(nèi)部運(yùn)行的進(jìn)程和實(shí)際需要進(jìn)行設(shè)置;在其他實(shí)施方式中,為了便于管理,可以對所有活動(dòng)狀態(tài)的容器設(shè)置統(tǒng)一的反饋間隔;所述反饋間隔是指獲取一次對應(yīng)容器的屬性信息所間隔的時(shí)間;所述反饋間隔的時(shí)間根據(jù)實(shí)際情況進(jìn)行設(shè)置,如1秒,1毫秒等,當(dāng)設(shè)定的反饋間隔足夠小時(shí),在實(shí)際使用過程中可以認(rèn)為是實(shí)時(shí)反饋。

S204:對所有容器的運(yùn)行進(jìn)行記時(shí);

在本發(fā)明實(shí)施例中,對所述容器列表中所有容器進(jìn)行時(shí)間統(tǒng)計(jì),所述時(shí)間為容器持續(xù)運(yùn)行的時(shí)間,輸出記時(shí)結(jié)果,當(dāng)所述容器運(yùn)行狀態(tài)信息為停止?fàn)顟B(tài)時(shí),所述時(shí)間統(tǒng)計(jì)顯示為空。

S205:讀取達(dá)到反饋間隔時(shí)間的容器的屬性信息;

在本發(fā)明實(shí)施例中,對設(shè)定結(jié)果和記時(shí)結(jié)果進(jìn)行對比,并對達(dá)到反饋間隔時(shí)間的容器的屬性信息進(jìn)行讀取和監(jiān)控。

所述讀取容器屬性信息的過程具體包括以下幾種方式:

在本發(fā)明實(shí)施例中,所述LINUX操作系統(tǒng)的內(nèi)核為每個(gè)容器暴露的內(nèi)核數(shù)據(jù)結(jié)構(gòu),所述內(nèi)核數(shù)據(jù)結(jié)構(gòu)通過偽文件系統(tǒng)將其一部分?jǐn)?shù)據(jù)結(jié)構(gòu)暴露在內(nèi)核外,所述偽文件系統(tǒng)包括proc文件系統(tǒng)、sys文件系統(tǒng)和cgroup文件系統(tǒng)等;在達(dá)到反饋間隔時(shí)間后,通過所述偽文件系統(tǒng)直接讀取暴露在內(nèi)核外的部分的數(shù)據(jù),獲取對應(yīng)容器的屬性信息,所述容器的屬性信息包括對應(yīng)容器的內(nèi)存資源使用情況、磁盤使用情況和網(wǎng)絡(luò)IO使用情況等。

在本發(fā)明實(shí)施例中,所述宿主機(jī)上運(yùn)行的所有容器都通過自身的根文件系統(tǒng)來獨(dú)立運(yùn)行,實(shí)現(xiàn)容器之間相互隔離,彼此不能訪問;所述容器內(nèi)部執(zhí)行的程序會(huì)將一些容器自身特定的信息輸出到自身的根文件系統(tǒng)內(nèi);在達(dá)到反饋間隔時(shí)間后,通過讀取對應(yīng)容器內(nèi)部的根文件系統(tǒng),獲取容器內(nèi)執(zhí)行程序的執(zhí)行情況,并進(jìn)行日志收集,健康診斷等功能。

在本發(fā)明實(shí)施例中,所述LINUX操作系統(tǒng)為所有運(yùn)行的容器提供接口,在達(dá)到反饋間隔時(shí)間后,通過調(diào)用該接口,臨時(shí)進(jìn)入對應(yīng)容器的命名空間;在所述容器內(nèi)部的執(zhí)行程序會(huì)按照任務(wù)要求進(jìn)行對容器執(zhí)行操作,包括停止容器內(nèi)部的進(jìn)程,修改容器內(nèi)部的文件等;通過操作該容器,所述執(zhí)行程序可以獲取任務(wù)執(zhí)行的結(jié)果或者容器內(nèi)部的屬性信息,在所述容器內(nèi)部環(huán)境可以讀取到容器內(nèi)部的屬性信息以及執(zhí)行程序的執(zhí)行情況,并在獲取了對應(yīng)的容器屬性信息后離開所述容器的內(nèi)部環(huán)境;通過LINUX操作系統(tǒng)提供的接口,在其他容器達(dá)到反饋間隔時(shí)間后,切換并臨時(shí)進(jìn)入對應(yīng)容器的命名空間,通過讀取對應(yīng)容器的屬性信息實(shí)現(xiàn)對容器的監(jiān)控。

在本發(fā)明實(shí)施例中,所述容器的監(jiān)控方法通過發(fā)送容器列表獲取指令,在服務(wù)器響應(yīng)所述容器列表獲取指令后,接收服務(wù)器返回的容器列表,設(shè)定容器列表中每個(gè)容器的反饋間隔,通過對所有容器的運(yùn)行進(jìn)行記時(shí),讀取達(dá)到反饋間隔時(shí)間的容器的屬性信息;通過該過程,可以實(shí)現(xiàn)運(yùn)行一個(gè)監(jiān)控程序即可對服務(wù)器上所有容器進(jìn)行監(jiān)控,而不必每一個(gè)容器分別配置一個(gè)監(jiān)控程序,只需要對每個(gè)容器設(shè)置對應(yīng)的反饋間隔,在達(dá)到反饋間隔后,獲取對應(yīng)容器的屬性信息即可對該容器的運(yùn)行實(shí)現(xiàn)監(jiān)控,既節(jié)約了服務(wù)器的資源又降低了監(jiān)控程序的復(fù)雜程度,便于進(jìn)行升級和維護(hù)。

實(shí)施例三

參閱圖3所示,為本發(fā)明所述容器的監(jiān)控裝置的第一實(shí)施例,包括:獲取模塊1和監(jiān)控模塊2。

所述獲取模塊1用于在服務(wù)器上獲取容器列表;所述容器是一種LINUX內(nèi)核虛擬化技術(shù),可以提供輕量級的虛擬化,以便隔離進(jìn)程和資源,對服務(wù)運(yùn)行時(shí)的環(huán)境進(jìn)行隔離,被隔離出來的運(yùn)行環(huán)境就稱為容器;所述承載容器運(yùn)行的外部環(huán)境的宿主機(jī)即服務(wù)器,所述服務(wù)器上會(huì)同時(shí)運(yùn)行有多個(gè)容器,用于同時(shí)執(zhí)行多個(gè)服務(wù)進(jìn)程;在本發(fā)明實(shí)施例中,在所述服務(wù)器啟動(dòng)運(yùn)行后,所述獲取模塊1向所述服務(wù)器發(fā)送容器列表獲取指令,在服務(wù)器響應(yīng)所述容器列表獲取指令后,接收服務(wù)器返回的容器列表,所述容器列表包括容器的唯一容器標(biāo)識以及容器運(yùn)行狀態(tài)信息。

所述監(jiān)控模塊2用于按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息;所述監(jiān)控模塊2設(shè)定容器列表中每個(gè)容器的反饋間隔,同時(shí)對所有容器的運(yùn)行進(jìn)行記時(shí),在容器達(dá)到反饋間隔時(shí)間后獲取對應(yīng)容器的屬性信息;所述監(jiān)控模塊2可以對容器列表中每個(gè)處于活動(dòng)狀態(tài)的容器單獨(dú)設(shè)置反饋間隔,也可以對所有活動(dòng)狀態(tài)的容器設(shè)置統(tǒng)一的反饋間隔。

所述監(jiān)控模塊2獲取容器屬性信息的過程具體包括以下幾種方式:

在本發(fā)明實(shí)施例中,所述LINUX操作系統(tǒng)的內(nèi)核為每個(gè)容器暴露的內(nèi)核數(shù)據(jù)結(jié)構(gòu),所述內(nèi)核數(shù)據(jù)結(jié)構(gòu)通過偽文件系統(tǒng)將其一部分?jǐn)?shù)據(jù)結(jié)構(gòu)暴露在內(nèi)核外,所述偽文件系統(tǒng)包括proc文件系統(tǒng)、sys文件系統(tǒng)和cgroup文件系統(tǒng)等;在達(dá)到反饋間隔時(shí)間后,所述監(jiān)控模塊2通過所述偽文件系統(tǒng)直接讀取暴露在內(nèi)核外的部分的數(shù)據(jù),獲取對應(yīng)容器的屬性信息,所述容器的屬性信息包括對應(yīng)容器的內(nèi)存資源使用情況、磁盤使用情況和網(wǎng)絡(luò)IO使用情況等。

在本發(fā)明實(shí)施例中,所述宿主機(jī)上運(yùn)行的所有容器都通過自身的根文件系統(tǒng)來獨(dú)立運(yùn)行,實(shí)現(xiàn)容器之間相互隔離,彼此不能訪問;所述容器內(nèi)部執(zhí)行的程序會(huì)將一些容器自身特定的信息輸出到自身的根文件系統(tǒng)內(nèi);在達(dá)到反饋間隔時(shí)間后,所述監(jiān)控模塊2通過讀取對應(yīng)容器內(nèi)部的根文件系統(tǒng),獲取容器內(nèi)執(zhí)行程序的執(zhí)行情況,并進(jìn)行日志收集,健康診斷等功能。

在本發(fā)明實(shí)施例中,所述LINUX操作系統(tǒng)為所有運(yùn)行的容器提供接口,在達(dá)到反饋間隔時(shí)間后,所述監(jiān)控模塊2通過調(diào)用該接口,臨時(shí)進(jìn)入對應(yīng)容器的命名空間;在所述容器內(nèi)部的執(zhí)行程序會(huì)按照任務(wù)要求進(jìn)行對容器執(zhí)行操作,包括停止容器內(nèi)部的進(jìn)程,修改容器內(nèi)部的文件等;通過操作該容器,所述執(zhí)行程序可以獲取任務(wù)執(zhí)行的結(jié)果或者容器內(nèi)部的屬性信息,所述監(jiān)控模塊2在所述容器內(nèi)部環(huán)境可以讀取到容器內(nèi)部的屬性信息以及執(zhí)行程序的執(zhí)行情況,并在獲取了對應(yīng)的容器屬性信息后離開所述容器的內(nèi)部環(huán)境;通過LINUX操作系統(tǒng)提供的接口,在其他容器達(dá)到反饋間隔時(shí)間后,所述監(jiān)控模塊2切換并臨時(shí)進(jìn)入對應(yīng)容器的命名空間,通過讀取對應(yīng)容器的屬性信息實(shí)現(xiàn)對容器的監(jiān)控。

在本發(fā)明實(shí)施例中,所述容器的監(jiān)控裝置通過所述獲取模塊1在服務(wù)器上獲取容器列表,通過所述監(jiān)控模塊2按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息;通過該過程,可以實(shí)現(xiàn)運(yùn)行一個(gè)監(jiān)控程序即可對服務(wù)器上所有容器進(jìn)行監(jiān)控,而不必每一個(gè)容器分別配置一個(gè)監(jiān)控程序,只需要對每個(gè)容器設(shè)置對應(yīng)的反饋間隔,在達(dá)到反饋間隔后,獲取對應(yīng)容器的屬性信息即可對該容器的運(yùn)行實(shí)現(xiàn)監(jiān)控,既節(jié)約了服務(wù)器的資源又降低了監(jiān)控程序的復(fù)雜程度,便于進(jìn)行升級和維護(hù)。

實(shí)施例四

參閱圖4所示,為本發(fā)明所述容器的監(jiān)控裝置的第二實(shí)施例,包括:獲取模塊1和監(jiān)控模塊2。

所述獲取模塊1用于在服務(wù)器上獲取容器列表;所述獲取模塊1包括發(fā)送單元11和接收單元12。

所述發(fā)送單元11用于發(fā)送容器列表獲取指令;所述容器是一種LINUX內(nèi)核虛擬化技術(shù),可以提供輕量級的虛擬化,以便隔離進(jìn)程和資源,對服務(wù)運(yùn)行時(shí)的環(huán)境進(jìn)行隔離,被隔離出來的運(yùn)行環(huán)境就稱為容器;所述承載容器運(yùn)行的外部環(huán)境的宿主機(jī)即服務(wù)器,所述服務(wù)器上會(huì)同時(shí)運(yùn)行有多個(gè)容器,用于同時(shí)執(zhí)行多個(gè)服務(wù)進(jìn)程;在本發(fā)明實(shí)施例中,在所述服務(wù)器啟動(dòng)運(yùn)行后,所述發(fā)送單元11向所述服務(wù)器發(fā)送容器列表獲取指令。

所述接收單元12用于在服務(wù)器響應(yīng)所述容器列表獲取指令后,接收服務(wù)器返回的容器列表;所述容器列表包括容器的唯一容器標(biāo)識以及容器運(yùn)行狀態(tài)信息,所述容器標(biāo)識是標(biāo)示容器的唯一標(biāo)識,用于在宿主機(jī)中區(qū)分各個(gè)容器的身份,所述容器運(yùn)行狀態(tài)信息是指容器當(dāng)前的運(yùn)行狀態(tài),包括活動(dòng)狀態(tài)以及停止?fàn)顟B(tài);所述容器的唯一容器標(biāo)識與所述容器運(yùn)行狀態(tài)信息一一對應(yīng);所述服務(wù)器響應(yīng)所述容器列表獲取指令,向所述接收單元12返回容器列表,在本發(fā)明實(shí)施例中,所述服務(wù)器返回的容器列表是服務(wù)器上所有容器的容器標(biāo)識以及其對應(yīng)的容器運(yùn)行狀態(tài)信息經(jīng)整理后制成的列表,當(dāng)有容器的運(yùn)行狀態(tài)發(fā)生了變化或者有新的容器產(chǎn)生時(shí),所述容器列表內(nèi)的信息也會(huì)實(shí)時(shí)變更;在本發(fā)明實(shí)施例中,所述服務(wù)器在容器列表內(nèi)的信息發(fā)生變更時(shí),返回新的容器列表接收單元12。

所述監(jiān)控模塊2用于按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息;所述監(jiān)控模塊2包括設(shè)定單元21、記時(shí)單元22以及讀取單元23。

所述設(shè)定單元21用于設(shè)定容器列表中每個(gè)容器的反饋間隔;在本發(fā)明實(shí)施例中,所述設(shè)定單元21僅對所述容器列表中處于活動(dòng)狀態(tài)的容器進(jìn)行反饋間隔的設(shè)定,輸出設(shè)定結(jié)果;用戶通過所述設(shè)定單元21可以對容器列表中每個(gè)處于活動(dòng)狀態(tài)的容器單獨(dú)設(shè)置反饋間隔,根據(jù)容器內(nèi)部運(yùn)行的進(jìn)程和實(shí)際需要進(jìn)行設(shè)置;在其他實(shí)施方式中,為了便于管理,可以對所有活動(dòng)狀態(tài)的容器設(shè)置統(tǒng)一的反饋間隔;所述反饋間隔是指監(jiān)控模塊2獲取一次對應(yīng)容器的屬性信息所間隔的時(shí)間;所述反饋間隔的時(shí)間根據(jù)實(shí)際情況進(jìn)行設(shè)置,如1秒,1毫秒等,當(dāng)設(shè)定的反饋間隔足夠小時(shí),在實(shí)際使用過程中可以認(rèn)為是實(shí)時(shí)反饋。

所述記時(shí)單元22用于對所有容器的運(yùn)行進(jìn)行記時(shí);在本發(fā)明實(shí)施例中,所述記時(shí)單元22對所述容器列表中所有容器進(jìn)行時(shí)間統(tǒng)計(jì),所述時(shí)間為容器持續(xù)運(yùn)行的時(shí)間,輸出記時(shí)結(jié)果,當(dāng)所述容器運(yùn)行狀態(tài)信息為停止?fàn)顟B(tài)時(shí),所述時(shí)間統(tǒng)計(jì)顯示為空。

所述讀取單元23用于讀取達(dá)到反饋間隔時(shí)間的容器的屬性信息;所述讀取單元23用于對設(shè)定結(jié)果和記時(shí)結(jié)果進(jìn)行對比,并對達(dá)到反饋間隔時(shí)間的容器的屬性信息進(jìn)行讀取和監(jiān)控。

所述讀取單元23讀取容器屬性信息的過程具體包括以下幾種方式:

在本發(fā)明實(shí)施例中,所述LINUX操作系統(tǒng)的內(nèi)核為每個(gè)容器暴露的內(nèi)核數(shù)據(jù)結(jié)構(gòu),所述內(nèi)核數(shù)據(jù)結(jié)構(gòu)通過偽文件系統(tǒng)將其一部分?jǐn)?shù)據(jù)結(jié)構(gòu)暴露在內(nèi)核外,所述偽文件系統(tǒng)包括proc文件系統(tǒng)、sys文件系統(tǒng)和cgroup文件系統(tǒng)等;在達(dá)到反饋間隔時(shí)間后,所述讀取單元23通過所述偽文件系統(tǒng)直接讀取暴露在內(nèi)核外的部分的數(shù)據(jù),獲取對應(yīng)容器的屬性信息,所述容器的屬性信息包括對應(yīng)容器的內(nèi)存資源使用情況、磁盤使用情況和網(wǎng)絡(luò)IO使用情況等。

在本發(fā)明實(shí)施例中,所述宿主機(jī)上運(yùn)行的所有容器都通過自身的根文件系統(tǒng)來獨(dú)立運(yùn)行,實(shí)現(xiàn)容器之間相互隔離,彼此不能訪問;所述容器內(nèi)部執(zhí)行的程序會(huì)將一些容器自身特定的信息輸出到自身的根文件系統(tǒng)內(nèi);在達(dá)到反饋間隔時(shí)間后,所述讀取單元23通過讀取對應(yīng)容器內(nèi)部的根文件系統(tǒng),獲取容器內(nèi)執(zhí)行程序的執(zhí)行情況,并進(jìn)行日志收集,健康診斷等功能。

在本發(fā)明實(shí)施例中,所述LINUX操作系統(tǒng)為所有運(yùn)行的容器提供接口,在達(dá)到反饋間隔時(shí)間后,所述讀取單元23通過調(diào)用該接口,臨時(shí)進(jìn)入對應(yīng)容器的命名空間;在所述容器內(nèi)部的執(zhí)行程序會(huì)按照任務(wù)要求進(jìn)行對容器執(zhí)行操作,包括停止容器內(nèi)部的進(jìn)程,修改容器內(nèi)部的文件等;通過操作該容器,所述執(zhí)行程序可以獲取任務(wù)執(zhí)行的結(jié)果或者容器內(nèi)部的屬性信息,所述讀取單元23在所述容器內(nèi)部環(huán)境可以讀取到容器內(nèi)部的屬性信息以及執(zhí)行程序的執(zhí)行情況,并在獲取了對應(yīng)的容器屬性信息后離開所述容器的內(nèi)部環(huán)境;通過LINUX操作系統(tǒng)提供的接口,在其他容器達(dá)到反饋間隔時(shí)間后,所述讀取單元23切換并臨時(shí)進(jìn)入對應(yīng)容器的命名空間,通過讀取對應(yīng)容器的屬性信息實(shí)現(xiàn)對容器的監(jiān)控。

在本發(fā)明實(shí)施例中,所述容器的監(jiān)控裝置通過所述發(fā)送單元11發(fā)送容器列表獲取指令,通過所述接收單元12在服務(wù)器響應(yīng)所述容器列表獲取指令后,接收服務(wù)器返回的容器列表,通過所述設(shè)定單元21設(shè)定容器列表中每個(gè)容器的反饋間隔,通過記時(shí)單元22對所有容器的運(yùn)行進(jìn)行記時(shí),通過所述讀取單元23讀取達(dá)到反饋間隔時(shí)間的容器的屬性信息;通過該過程,可以實(shí)現(xiàn)運(yùn)行一個(gè)監(jiān)控程序即可對服務(wù)器上所有容器進(jìn)行監(jiān)控,而不必每一個(gè)容器分別配置一個(gè)監(jiān)控程序,只需要對每個(gè)容器設(shè)置對應(yīng)的反饋間隔,在達(dá)到反饋間隔后,獲取對應(yīng)容器的屬性信息即可對該容器的運(yùn)行實(shí)現(xiàn)監(jiān)控,既節(jié)約了服務(wù)器的資源又降低了監(jiān)控程序的復(fù)雜程度,便于進(jìn)行升級和維護(hù)。

實(shí)施例五

在上述實(shí)施例的基礎(chǔ)上,為本發(fā)明所述容器的監(jiān)控裝置的實(shí)施例,包括處理器和存儲器。

所述處理器用于:在服務(wù)器上獲取容器列表;按照預(yù)設(shè)的時(shí)間間隔定期獲取容器列表中所有容器的屬性信息。

所述存儲器用于為支持所述容器的監(jiān)控裝置存儲各種類型的數(shù)據(jù)。

本領(lǐng)域技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一個(gè)設(shè)備(可以是單片機(jī),芯片等)或處理器(processor)執(zhí)行本申請各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
华安县| 共和县| 当阳市| 梅河口市| 洞头县| 从江县| 瑞昌市| 印江| 湄潭县| 姜堰市| 安乡县| 阳西县| 华容县| 郑州市| 通河县| 涟源市| 黄骅市| 巴里| 许昌县| 观塘区| 吉首市| 错那县| 镇赉县| 亚东县| 彭州市| 屏东市| 建宁县| 佛山市| 弥渡县| 长顺县| 横山县| 威海市| 自贡市| 五家渠市| 祁门县| 石泉县| 黔东| 肥乡县| 易门县| 柳州市| 南部县|