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