摘要:在我們列舉的幾個監(jiān)控的服務(wù)或平臺中,這是唯一一款國內(nèi)產(chǎn)品。也是一款付費(fèi)監(jiān)控解決方案,計劃收費(fèi)方案是美分小時。同樣也支持監(jiān)控,還包括對容器級事件的監(jiān)測停止開始等等和管理容器產(chǎn)生的日志。由于是一個監(jiān)控方案,相對來說它的安裝和部署都比較簡單。
輕量級虛擬化容器 Docker,自發(fā)布以來便廣受業(yè)界關(guān)注,在開源界和企業(yè)界掀起了一陣風(fēng)。Docker 容器相對于 VM 有以下幾個優(yōu)勢:啟動速度快;資源利用率高;性能開銷小。
從圖中可以看出 Docker 和 虛擬機(jī)的差異,虛擬機(jī)的 Guest OS 和 Hypervisor 層在 Docker 中被 Docker Engine 層所替代,Docker 有著比虛擬機(jī)更少的抽象層。由于 Docker 不需要通過 Hypervisor 層實(shí)現(xiàn)硬件資源虛擬化,運(yùn)行在 Docker 容器上的程序直接使用實(shí)際物理機(jī)的硬件資源。因此在 CPU、內(nèi)存利用率上 Docker 略勝一籌。Docker利用的是宿主機(jī)的內(nèi)核,而不需要 Guest OS,因此,當(dāng)新建一個容器時,Docker 不需要和虛擬機(jī)一樣重新加載一個操作系統(tǒng)內(nèi)核,因此新建一個 Docker 容器只需要幾秒鐘。
既然 Docker 這么火,那么問題來了,為了能夠更精確的分配每個容器能使用的資源,我們想要實(shí)時獲取容器運(yùn)行時使用資源的情況,怎樣對 Docker 上的應(yīng)用進(jìn)行監(jiān)控呢?Docker 的結(jié)構(gòu)會不會加大監(jiān)控難度?
我們都了解, container 相當(dāng)于小型 host,可以說存在于 hosts 與應(yīng)用之間的監(jiān)控盲區(qū),無論是傳統(tǒng)的基礎(chǔ)組件監(jiān)控還是應(yīng)用性能監(jiān)控的方式,都很難有效地監(jiān)控 Docker。了解了一下現(xiàn)有的 Docker 相關(guān)監(jiān)測 App 和服務(wù),包括簡單的開源工具和復(fù)雜的企業(yè)整體解決方案,下面列舉幾種Docker 監(jiān)控工具作為參考:
1. cAdvisor
谷歌的 container introspection 解決方案是 cAdvisor,這是一個 Docker 容器內(nèi)封裝的實(shí)用工具,能夠搜集、集料、處理和導(dǎo)出運(yùn)行中的容器的信息。通過它可以看到 CPU 的使用率、內(nèi)存使用率、網(wǎng)絡(luò)吞吐量以及磁盤空間利用率。然后,你可以通過點(diǎn)擊在網(wǎng)頁頂部的 Docker Containers 鏈接,然后選擇某個容器來詳細(xì)了解它的使用情況。cAdvisor 部署和使用簡單,但它只可以監(jiān)視在同一個 host 上運(yùn)行的容器,對多節(jié)點(diǎn)部署不是太管用。
2. Cloud Insight
在我們列舉的幾個監(jiān)控 Docker 的服務(wù)或平臺中,這是唯一一款國內(nèi)產(chǎn)品。Cloud Insight 支持多種操作系統(tǒng)、云主機(jī)、數(shù)據(jù)庫和中間件的監(jiān)控,原理是在平臺服務(wù)儀表盤和自定義儀表盤中,采集并處理 Metric,對數(shù)據(jù)進(jìn)行聚合與分組等計算,提供曲線圖、柱狀圖等多樣化的展現(xiàn)形式。優(yōu)點(diǎn)是監(jiān)控的指標(biāo)很全,簡單易用,但目前正式版還未上線,可以期待一下。
3. Scout
Scout 是一款監(jiān)視服務(wù),并不是一個獨(dú)立的開源項目。它有大量的插件,除了 Docker 信息還可以吸收其他有關(guān)部署的數(shù)據(jù)。因此 Scout 算是一站式監(jiān)控系統(tǒng),無需對系統(tǒng)的各種資源來安裝各種不同的監(jiān)控系統(tǒng)。 Scout 的一個缺點(diǎn)是,它不顯示有關(guān)每個主機(jī)上多帶帶容器的詳細(xì)信息。此外,每個監(jiān)控的主機(jī)十美元這樣略微昂貴的價格也是是否選擇 Scout 作為監(jiān)控服務(wù)的一個考慮因素,如果運(yùn)行一個有多臺主機(jī)的超大部署,成本會比較高。
4. Sematext
Sematext 也是一款付費(fèi)監(jiān)控解決方案,計劃收費(fèi)方案是3.5美分/小時。同樣也支持 Docker 監(jiān)控,還包括對容器級事件的監(jiān)測(停止、開始等等)和管理容器產(chǎn)生的日志。
時間關(guān)系我們選擇了其中安裝最簡單的 Cloud Insight 來試驗監(jiān)控基于 Docker 的一個應(yīng)用——Acme 的運(yùn)行情況,后期時間允許會將其他幾種監(jiān)控方式都試一遍。
Docker 監(jiān)控實(shí)戰(zhàn)單方面監(jiān)控 Docker 可能并不太適合與業(yè)務(wù)掛鉤的應(yīng)用,當(dāng)業(yè)務(wù)量上漲,不單單是 Docker 的負(fù)載上升,其他 JVM 指標(biāo)也能也會出現(xiàn)上升的趨勢。
我們嘗試使用一個支持比較多中間件、數(shù)據(jù)庫、操作系統(tǒng)、容器的 Cloud Insight 來說明這個實(shí)際的場景。
Cloud InsightCloud Insight 由于是一個 SaaS 監(jiān)控方案,相對來說它的安裝和部署都比較簡單。在這次監(jiān)控實(shí)戰(zhàn)中,我們以 AcmeAir 為實(shí)驗對象:一個可以模擬壓力的電子商務(wù)類應(yīng)用。
AcmeAir 是一款由原 IBM 新技術(shù)架構(gòu)部資深工程師 Andrew Spyker,利用 Netflix 開源的 Netflix OSS 打造的開源電子商務(wù)應(yīng)用。此應(yīng)用具有如下特性:
模擬提供航班訂票服務(wù)。用戶可以通過移動設(shè)備或者 web 瀏覽器,完成新用戶注冊,用戶登錄,航班查詢,訂票等操作。
AcmeAir 融入了 Docker,微服務(wù)架構(gòu)等理念。并采用 Tomcat、Node.js、WebSphere Application Server、WebSphere Extreme Scale、MongoDB、Cassandra 分別打造了不同版本的實(shí)現(xiàn)。
AcmeAir 利用 JMeter 模擬用戶行為??赏ㄟ^動態(tài)調(diào)整用戶數(shù)量,模擬產(chǎn)生各種壓力的事物流量。并可在應(yīng)用中預(yù)先植入錯誤代碼,模擬各種故障場景。該應(yīng)用可做為壓力測試,終端用戶體驗異常檢測,故障診斷等各種測試場景的測試用例。
首先,我們要打開 Cloud Insight 監(jiān)控,還好 Cloud Insight 安裝簡單,一條命令即可。接著,我們新建一個用于此次監(jiān)控的儀表盤,依次將想要獲取的指標(biāo)統(tǒng)統(tǒng)添加進(jìn)去。比如,選中 jvm.non_heap_memory 這個指標(biāo),選擇按照 instance 分組。
我們添加以下指標(biāo):
docker.cpu.user
docker.cpu.sysytem
docker.containers.running
jvm.heap_memory
jvm.non_heap_memory
jvm.gc.cms.count
jvm.heap_memory_max
jvm.gc.parnew.time
應(yīng)用 Acme 部署在四臺 servers 上,我們開啟四臺 servers, 然后用 JMeter 給應(yīng)用加壓。隨著時間 JMeter 不斷給應(yīng)用加壓。
當(dāng) users 人數(shù)達(dá)到 188 時,我們再來看一下儀表盤的視圖。
從圖中可以看到,性能數(shù)據(jù)發(fā)生了變化,根據(jù) JMeter 里的數(shù)據(jù),此時 CPU 占用超過了50%,錯誤率也有所提升;對比來看,根據(jù) Cloud Insight 里的曲線顯示,藍(lán)色的線所代表的 Container CPU 占用率已經(jīng)超過50%,逐漸接近75%,系統(tǒng)剩余的 CPU 資源逐漸下降,該 Container 的系統(tǒng) CPU 資源消耗也突然增大。我們可以通過這些定位到 CPU 占用率過高的 Container ,及時而主動地去了解性能瓶頸,從而優(yōu)化性能,合理分配資源。
Cloud Insight 所抓取的性能指標(biāo)算是較為全面,部署和展現(xiàn)方式都是相當(dāng)簡單易懂的,對這個產(chǎn)品可以期待一下。
Cloud Insight 集監(jiān)控、管理、計算、協(xié)作、可視化于一身,幫助所有 IT 公司,減少在系統(tǒng)監(jiān)控上的人力和時間成本投入,讓運(yùn)維工作更加高效、簡單。想閱讀更多技術(shù)文章,請訪問 OneAPM 官方博客。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26501.html
摘要:由發(fā)明,適合于監(jiān)控基于容器的基礎(chǔ)架構(gòu)。有關(guān)其數(shù)據(jù)聚合的功能可以閱讀數(shù)據(jù)聚合分組新一代系統(tǒng)監(jiān)控的核心功能。所抓取的性能指標(biāo)算是較為全面,部署和展現(xiàn)方式都是相當(dāng)簡單易懂的。 如今,越來越多的公司開始使用 Docker 了,2 / 3 的公司在嘗試了 Docker 后最終使用了它。為了能夠更精確的分配每個容器能使用的資源,我們想要實(shí)時獲取容器運(yùn)行時使用資源的情況,怎樣對 Docker 上的應(yīng)...
摘要:監(jiān)控告警是運(yùn)營系統(tǒng)最核心的功能之一,騰訊內(nèi)部有一套很成熟的監(jiān)控告警平臺,而且開發(fā)運(yùn)維同學(xué)已經(jīng)習(xí)慣這套平臺,如果我們針對容器再開發(fā)一個監(jiān)控告警平臺,會花費(fèi)很多精力,而且沒有太大的意義。也是一款付費(fèi)監(jiān)控解決方案,計劃收費(fèi)方案是美分小時。 如今,越來越多的公司開始使用 Docker 了,現(xiàn)在來給大家看幾組數(shù)據(jù): 2 / 3 的公司在嘗試了 Docker 后最終使用了它 也就是說 Docker...
摘要:代表的解決方案為。雖然官網(wǎng)列出的部署方式很多,但也不用被這么多種部署方式搞糊涂了。雖然只是一條命令,但其實(shí)執(zhí)行了很多步驟命令執(zhí)行后輸出如下可以看到,主要做了這些事創(chuàng)建了名為的虛擬機(jī),并在虛擬機(jī)中安裝了容器運(yùn)行時。 綜述 Kubernetes集群的組件眾多,要部署一套符合生產(chǎn)環(huán)境的集群不是一件容易的事。好在隨著社區(qū)的快速發(fā)展,特別是在它成為事實(shí)上的容器編排標(biāo)準(zhǔn)以后,基本所有的主流云平臺都...
摘要:代表的解決方案為。雖然官網(wǎng)列出的部署方式很多,但也不用被這么多種部署方式搞糊涂了。雖然只是一條命令,但其實(shí)執(zhí)行了很多步驟命令執(zhí)行后輸出如下可以看到,主要做了這些事創(chuàng)建了名為的虛擬機(jī),并在虛擬機(jī)中安裝了容器運(yùn)行時。 綜述 Kubernetes集群的組件眾多,要部署一套符合生產(chǎn)環(huán)境的集群不是一件容易的事。好在隨著社區(qū)的快速發(fā)展,特別是在它成為事實(shí)上的容器編排標(biāo)準(zhǔn)以后,基本所有的主流云平臺都...
摘要:結(jié)論得到了開發(fā)者社區(qū)的廣泛認(rèn)可,盡管它的安裝過程非常艱難,之所以受到歡迎的原因很大程度取決于它提供的靈活性,以及良好的谷歌背景,而有一個小型的社區(qū),增長略微緩慢。 數(shù)人云之前分享了《聊聊調(diào)度框架,K8S、Mesos、Swarm 一個都不能少》那么你是否仍在Docker和Kubernetes選擇上陷入了困擾?所以不要擔(dān)心,因為這也是很多人的苦惱,這兩者都是非常優(yōu)秀的容器服務(wù),至于那種更好...
閱讀 1613·2021-09-23 11:31
閱讀 929·2021-09-23 11:22
閱讀 1353·2021-09-22 15:41
閱讀 4085·2021-09-03 10:28
閱讀 2918·2019-08-30 15:55
閱讀 3549·2019-08-30 15:55
閱讀 1966·2019-08-30 15:44
閱讀 2727·2019-08-30 13:50