Docker 監(jiān)控之 SaaS 解決方案

過(guò)去的一年中,關(guān)于 Docker 的話(huà)題從未斷過(guò),而如今,從嘗試 Docker 到最終決定使用 Docker 的轉(zhuǎn)化率依然在逐步升高,關(guān)于 Docker 的討論更是有增無(wú)減。另一方面,大家的注意力也漸漸從 “Docker 是什么”轉(zhuǎn)移到“實(shí)踐 Docker”與“監(jiān)控 Docker”上。

本文轉(zhuǎn)自劉斌博文「如何選擇 Docker 監(jiān)控方案 」,文中劉斌從技術(shù)的角度深入解釋了 Docker 監(jiān)控的數(shù)據(jù)采集原理,介紹了現(xiàn)有開(kāi)源的監(jiān)控方案,以及能 夠?qū)?Docker 進(jìn)行監(jiān)控功能的主流 SaaS 服務(wù)工具。

上一篇文章中,我們了解了開(kāi)源的 Docker 監(jiān)控方案,本篇聽(tīng)聽(tīng)斌哥介紹 Docker 監(jiān)控的 SaaS 解決方案??!

SaaS

  • turnkey解決方案
  • 維護(hù)成本 ~ Zero
  • 適合中小企業(yè)

對(duì)于中小型企業(yè)尤其創(chuàng)業(yè)公司來(lái)說(shuō),自主開(kāi)發(fā)或者直接利用現(xiàn)有的開(kāi)源工具進(jìn)行監(jiān)控都有一些問(wèn)題,主要是成本和風(fēng)險(xiǎn)的問(wèn)題。對(duì)于中小企業(yè),應(yīng)該先把精力集中在發(fā)展核心業(yè)務(wù),能外包的就先不自己做。而且很多中小公司大家都是全棧,沒(méi)有專(zhuān)門(mén)的運(yùn)維人員,都是臨時(shí)抱佛腳,隨時(shí)都會(huì)變成救火隊(duì)員。

SaaS最大的優(yōu)點(diǎn)是什么?那就是免運(yùn)維,開(kāi)箱即用,修改的代碼少甚至不需要修改代碼,或者只需要簡(jiǎn)單的安裝一個(gè)agent就可以工作了。很多SaaS軟件的開(kāi)場(chǎng)白都是運(yùn)行一條 yum install ,然后倒上一杯咖啡等幾分鐘,就能看到數(shù)據(jù)了。

你的初期投入非常小,上手非???,而且成本比較低(如果你的公司已經(jīng)有數(shù)百上千服務(wù)器了,則這部分成本可能會(huì)變高,就跟是自建機(jī)房還是用云主機(jī)的對(duì)比一樣)。

傳統(tǒng)APM一般也都提供了對(duì)Docker的監(jiān)控:

最近也有很多專(zhuān)門(mén)用于基礎(chǔ)設(shè)施監(jiān)控的SaaS服務(wù)

RancherLab公司有人寫(xiě)了篇文章,大家可以參考下。這篇文章名為《Comparing Seven Monitoring Options for Docker》,即對(duì)比了七種不同的監(jiān)控Docker的方案,包括使用 docker stats 命令, cAdvisor, Prometheus ,Sensu,以及saas服務(wù) Scout, Sysdig Cloud and DataDog等方案,作為結(jié)論作者覺(jué)得Datadog是這其中最優(yōu)秀的方案。

RancherLab有一個(gè)產(chǎn)品叫RancheOS,是一個(gè)專(zhuān)門(mén)為了運(yùn)行Docker準(zhǔn)備的微型Linux版本,它的口號(hào)是“The perfect place to run Docker”。跟CoreOS類(lèi)似,但是貌似功能不如CoreOS多,也沒(méi)有CoreOS有名,也沒(méi)有CoreOS中fleet、flannel和etcd這樣的組件,尤其是etcd,可以說(shuō)是CoreOS的副產(chǎn)品,但是幾乎成了Docker業(yè)界標(biāo)準(zhǔn)的kv store和服務(wù)發(fā)現(xiàn)組件了。

Datadog

  • 國(guó)外最好
  • 功能很強(qiáng)大
  • 安裝很簡(jiǎn)單

國(guó)外最流行的SaaS解決方案是Datadog,國(guó)內(nèi)可能比較成熟、規(guī)模較大的應(yīng)該算是Cloud Insight了。這類(lèi)服務(wù)用戶(hù)只需要注冊(cè)一個(gè)賬號(hào),按照安裝過(guò)程通過(guò)一條命令來(lái)安裝探針即可在web展示端看到數(shù)據(jù)。

要說(shuō)到Datadog的不足,那就是在國(guó)外,網(wǎng)絡(luò)延遲需要考慮,萬(wàn)一哪天不科學(xué)了也需要有所準(zhǔn)備。價(jià)格方面Datadog也比較貴。免費(fèi)plan支持5臺(tái)機(jī)器,而且只保留一天的數(shù)據(jù),而且沒(méi)有報(bào)警功能。收費(fèi)版15美元一臺(tái)主機(jī),支持報(bào)警功能,數(shù)據(jù)存儲(chǔ)13個(gè)月。

說(shuō)道SaaS,不得不提客服,直接面對(duì)非母語(yǔ)客服人員交流起來(lái)肯定會(huì)有諸多不順吧。

Cloud Insight

  • 實(shí)時(shí)數(shù)據(jù)
  • 歷史數(shù)據(jù)
  • 儀表盤(pán)
  • 混合監(jiān)控
  • 報(bào)警功能

當(dāng)然,最便宜的還是Cloud Insight,有多便宜呢,官方定價(jià)的話(huà)3個(gè)探針以下是免費(fèi)的,支持超過(guò)3臺(tái)主機(jī)的話(huà),平均每天1快錢(qián)。這只是官方定價(jià),實(shí)際上還會(huì)便宜,貌似聯(lián)系客服就可以知道有多便宜了。

Docker 監(jiān)控之 SaaS 解決方案
Docker 監(jiān)控之 SaaS 解決方案

Cloud Insight的圖表功能也很豐富,能對(duì)任何指標(biāo)以圖表的方式展示,還能在圖表上疊加事件,比如報(bào)警通知、服務(wù)啟動(dòng)停止等,能在觀察到metric變動(dòng)趨勢(shì)的同時(shí),看到相應(yīng)的時(shí)間,了解metric發(fā)生變動(dòng)的原因。比如CPU load超過(guò)一定值時(shí),可能觸發(fā)報(bào)警,這時(shí)你能在圖表上看到相應(yīng)的事件,同樣,如果CPU load一直不是很低,但是從某一時(shí)間點(diǎn)開(kāi)始變低了,你可能也能從一次新的代碼部署中了解原因。

Cloud Insight還支持ChatOps集成,包括國(guó)內(nèi)的 BearyChat 和簡(jiǎn)聊。隨著devops文化的普及,相信這些工具的重要性也會(huì)與日俱增。不過(guò)貌似簡(jiǎn)聊已經(jīng)開(kāi)源了(不運(yùn)營(yíng)了?)。

Sysdig

  • 免費(fèi)工具
  • SaaS服務(wù) Sysdig Cloud
  • 拓?fù)淇梢暬?/li>

可以認(rèn)為sysdig是strace + tcpdump + htop + iftop + lsof + 眾多l(xiāng)inux常用的系統(tǒng)監(jiān)控命令的合體。

如果你熟悉tcpdump,那么你知道它能還原整個(gè)網(wǎng)絡(luò)流量,而sysdig則是操作系統(tǒng)級(jí)別的監(jiān)控工具,能捕捉到所有OS事件和數(shù)據(jù)。而且sysdig原生支持Linux container,包括Docker和LXC,提供了基本的指標(biāo)監(jiān)控信息。除了性能指標(biāo),sysdig還能采集trace等日志信息,用于以后的問(wèn)題分析和解決。

Sysdig Cloud是sisdig的SaaS版,除了基本的單機(jī)sysdig功能之外,還提供了跨平臺(tái)跨基礎(chǔ)設(shè)施的組件間依賴(lài)關(guān)系的可視化。

Librato

  • 數(shù)據(jù)聚合平臺(tái)
  • 簡(jiǎn)單探針
  • 圖表和報(bào)警
  • 價(jià)格不貴

Librato是一個(gè)數(shù)據(jù)聚合平臺(tái),而不是嚴(yán)格意義的監(jiān)控系統(tǒng)。

Librato很容易從AWS CloudWatch和Heroku獲得數(shù)據(jù),如果是自己監(jiān)控主機(jī)或者Docker,需要使用Collectd框架。它也有很多插件,可以從StatsD、Riemann等數(shù)據(jù)源采集數(shù)據(jù)。

Librato的探針雖然功能不是強(qiáng)大,但是他提供了豐富的實(shí)時(shí)在線(xiàn)數(shù)據(jù)處理功能,用戶(hù)可以使用DSL對(duì)任意時(shí)間序列數(shù)據(jù)組合進(jìn)行數(shù)學(xué)運(yùn)算,比如加減乘除、比率導(dǎo)數(shù)等。還支持和時(shí)間窗口滑動(dòng)功能,即跟過(guò)去某一段時(shí)間進(jìn)行比較。

Librato也支持報(bào)警,基于metric和條件,設(shè)置報(bào)警信息。

Librato是按照metric的個(gè)數(shù)和時(shí)間分辨率來(lái)收費(fèi)的,在官網(wǎng)的主頁(yè)上有一個(gè)大概的估算,如果你有20個(gè)metric,并且時(shí)間間隔為60秒,則一臺(tái)服務(wù)器的價(jià)格只有2美元1個(gè)月,這比datadog要便宜。

Axibase(ATSD)

  • 非開(kāi)源TSDB
  • 支持報(bào)警
  • 預(yù)測(cè)功能
Docker 監(jiān)控之 SaaS 解決方案

作為T(mén)SDB,ATSD支持長(zhǎng)時(shí)間存儲(chǔ)高精度的metric數(shù)據(jù)。ATSD支持多種數(shù)據(jù)采集工具和協(xié)議,比如tcollector, Collectd,當(dāng)然ATSD也支持從多臺(tái)Docker主機(jī)手機(jī)指標(biāo)數(shù)據(jù),并長(zhǎng)期保存,進(jìn)行可視化和分析。

除了傳統(tǒng)的時(shí)間序列數(shù)據(jù),ATSD還支持屬性(Properties)和消息這兩種類(lèi)型的數(shù)據(jù)。屬性一般用于保存meta data,這有點(diǎn)類(lèi)似標(biāo)簽。和OpenTSDB一樣,ATSD也支持tag,我們可以使用這些tag進(jìn)行過(guò)濾和聚合。

ATSD內(nèi)置了自動(dòng)回歸推斷算法(holt-winters,arima),可以提早預(yù)測(cè)故障。預(yù)測(cè)功能的準(zhǔn)確性取決于數(shù)據(jù)的采集頻率,保存時(shí)間(也就是數(shù)據(jù)量大?。┖退惴ā?/p>

最大的遺憾,就是ATSD不是開(kāi)源,也不是免費(fèi)的軟件,不過(guò)他們提供了一個(gè)社區(qū)版可以免費(fèi)使用,但是你只能在一個(gè)節(jié)點(diǎn)上安裝ATSD,而且不能用于盈利性服務(wù),也不能對(duì)軟件進(jìn)行修改以及再發(fā)布。

如果我們只是評(píng)估一下,或者想自己構(gòu)建監(jiān)控方案,它的產(chǎn)品設(shè)計(jì)還是非常值得我們來(lái)借鑒一下。

SaaS的挑戰(zhàn)

數(shù)據(jù)敏感性

采用SaaS,意味著你的數(shù)據(jù)都將會(huì)保存到公網(wǎng),可能會(huì)帶來(lái)心理不安全感。實(shí)際上SaaS反而會(huì)更安全些,尤其是對(duì)中小公司沒(méi)有專(zhuān)門(mén)的安全運(yùn)維團(tuán)隊(duì)的情況下。

成本(遷移和使用成本)

一般來(lái)說(shuō)這是一個(gè)一次性投入成本。而對(duì)于大公司來(lái)說(shuō),就像公有云一樣,成本可能會(huì)成為問(wèn)題。

內(nèi)部抵抗(觀念、個(gè)人愛(ài)好)

來(lái)自技術(shù)人員自身的抵抗,不是每個(gè)人都喜歡自己變得輕松,使用SaaS可能會(huì)給一些人帶來(lái)工作上的不充實(shí)感。

Docker監(jiān)控方案的發(fā)展趨勢(shì)

標(biāo)簽機(jī)制

一種觀點(diǎn):監(jiān)控服務(wù)狀態(tài)勝過(guò)監(jiān)控個(gè)別容器,通過(guò)tag機(jī)制對(duì)服務(wù)整體的性能指標(biāo)進(jìn)行聚合。

Tag可以是任何維度,比如BU,地區(qū),服務(wù),甚至個(gè)別容器。

比如Docker和Kubernetes等都支持label機(jī)制,即tag機(jī)制。

啟動(dòng)Daemon:

docker daemon –label com.example.group=“webserver”

啟動(dòng)容器:

docker run –label com.example.group=“webserver”

Dockerfile:

LABEL com.example.group=“webserver”

通過(guò)API打通

通過(guò)API化實(shí)現(xiàn)共贏。開(kāi)源軟件比如fluentd、Collectd等,都支持插件功能。包括Docker本身,也在1.11版本中,采用了runC作為容器運(yùn)行時(shí),在上面通過(guò)containerD來(lái)統(tǒng)一控制,來(lái)支持符合OCI標(biāo)準(zhǔn)的容器。

Total解決方案

包括從探針到展示、告警,就是現(xiàn)在類(lèi)似Datadog和Cloud Insight這樣的產(chǎn)品,以及支持中間件的詳細(xì)程度,就像一個(gè)大市場(chǎng),什么都能買(mǎi)到,不管你用什么軟件,平臺(tái)都能提供監(jiān)控。

這就像是去了酒吧突然想吃碗拉面,然后竟然酒吧能給你做出來(lái)的那種感覺(jué)。

另一個(gè)層面就是從RUEM(實(shí)時(shí)用戶(hù)體驗(yàn)管理)到基礎(chǔ)設(shè)施層的 打通 。比如你看到某URL的用戶(hù)HTTP響應(yīng)較慢,如果不能跟后端的APM打通,你盡管能識(shí)別出問(wèn)題,但是你不知道如何解決。如果和后端的APM以及基礎(chǔ)設(shè)施監(jiān)控打通,你就能定位到HTTP響應(yīng)慢時(shí),相應(yīng)的后端代碼的位置,并根據(jù)后端代碼的位置從而進(jìn)一步找到MySQL的監(jiān)控?cái)?shù)據(jù)以及系統(tǒng)異常事件,立刻知道問(wèn)題的根本原因所在并解決問(wèn)題,可以說(shuō)效率應(yīng)該能提高幾個(gè)數(shù)量級(jí)。

系統(tǒng)監(jiān)控工具如果能夠做到 All in One,真的對(duì)解決人力和時(shí)間成本上有非常大的幫助。

拓?fù)淇梢暬?/h2>

跨組件、跨基礎(chǔ)設(shè)施和應(yīng)用,自動(dòng)識(shí)別組件以及組件之間的依賴(lài)關(guān)系,以幫助更好的發(fā)現(xiàn)問(wèn)題和解決問(wèn)題。

這類(lèi)服務(wù)有:

  • Weave Scope
  • Ruxit
  • Sysdig

-- 全文完 --


更多 Docker 監(jiān)控內(nèi)容,請(qǐng)關(guān)注 OneAPM Blog_Cloud Insight 版塊。數(shù)據(jù)監(jiān)控及管理平臺(tái) Cloud Insight,讓數(shù)據(jù)監(jiān)控及可視化更容易。

本文轉(zhuǎn)自 OneAPM 官方博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容