Docker 監控之 SaaS 解決方案

過去的一年中,關於 Docker 的話題從未斷過,而現在,從嘗試 Docker 到最終決定使用 Docker 的轉化率依然在逐步升高,關於 Docker 的討論更是有增無減。另外一方面,你們的注意力也漸漸從 「Docker 是什麼」轉移到「實踐 Docker」與「監控 Docker」上。html

本文轉自劉斌博文「如何選擇 Docker 監控方案 」,文中劉斌從技術的角度深刻解釋了 Docker 監控的數據採集原理,介紹了現有開源的監控方案,以及能 夠對 Docker 進行監控功能的主流 SaaS 服務工具。linux

上一篇文章中,咱們瞭解了開源的 Docker 監控方案,本篇聽聽斌哥介紹 Docker 監控的 SaaS 解決方案!!ios

##SaaSweb

  • turnkey解決方案
  • 維護成本 ~ Zero
  • 適合中小企業

對於中小型企業尤爲創業公司來講,自主開發或者直接利用現有的開源工具進行監控都有一些問題,主要是成本和風險的問題。對於中小企業,應該先把精力集中在發展核心業務,能外包的就先不本身作。並且不少中小公司你們都是全棧,沒有專門的運維人員,都是臨時抱佛腳,隨時都會變成救火隊員。算法

SaaS最大的優勢是什麼?那就是免運維,開箱即用,修改的代碼少甚至不須要修改代碼,或者只須要簡單的安裝一個agent就能夠工做了。不少SaaS軟件的開場白都是運行一條 yum install ,而後倒上一杯咖啡等幾分鐘,就能看到數據了。docker

你的初期投入很是小,上手很是快,並且成本比較低(若是你的公司已經有數百上千服務器了,則這部分紅本可能會變高,就跟是自建機房仍是用雲主機的對比同樣)。後端

傳統APM通常也都提供了對Docker的監控:安全

最近也有不少專門用於基礎設施監控的SaaS服務服務器

RancherLab公司有人寫了篇文章,你們能夠參考下。這篇文章名爲《Comparing Seven Monitoring Options for Docker》,即對比了七種不一樣的監控Docker的方案,包括使用 docker stats 命令, cAdvisor, Prometheus ,Sensu,以及saas服務 Scout, Sysdig Cloud and DataDog等方案,做爲結論做者以爲Datadog是這其中最優秀的方案。網絡

RancherLab有一個產品叫RancheOS,是一個專門爲了運行Docker準備的微型Linux版本,它的口號是「The perfect place to run Docker」。跟CoreOS相似,可是貌似功能不如CoreOS多,也沒有CoreOS有名,也沒有CoreOS中fleet、flannel和etcd這樣的組件,尤爲是etcd,能夠說是CoreOS的副產品,可是幾乎成了Docker業界標準的kv store和服務發現組件了。

##Datadog

  • 國外最好
  • 功能很強大
  • 安裝很簡單

國外最流行的SaaS解決方案是Datadog,國內可能比較成熟、規模較大的應該算是Cloud Insight了。這類服務用戶只須要註冊一個帳號,按照安裝過程經過一條命令來安裝探針便可在web展現端看到數據。

要說到Datadog的不足,那就是在國外,網絡延遲須要考慮,萬一哪天不科學了也須要有所準備。價格方面Datadog也比較貴。免費plan支持5臺機器,並且只保留一天的數據,並且沒有報警功能。收費版15美圓一臺主機,支持報警功能,數據存儲13個月。

說道SaaS,不得不提客服,直接面對非母語客服人員交流起來確定會有諸多不順吧。

##Cloud Insight

  • 實時數據
  • 歷史數據
  • 儀表盤
  • 混合監控
  • 報警功能

固然,最便宜的仍是Cloud Insight,有多便宜呢,官方訂價的話3個探針如下是免費的,支持超過3臺主機的話,平均天天1快錢。這只是官方訂價,實際上還會便宜,貌似聯繫客服就能夠知道有多便宜了。

Docker 監控之 SaaS 解決方案

Docker 監控之 SaaS 解決方案

Cloud Insight的圖表功能也很豐富,能對任何指標以圖表的方式展現,還能在圖表上疊加事件,好比報警通知、服務啓動中止等,能在觀察到metric變更趨勢的同時,看到相應的時間,瞭解metric發生變更的緣由。好比CPU load超過必定值時,可能觸發報警,這時你能在圖表上看到相應的事件,一樣,若是CPU load一直不是很低,可是從某一時間點開始變低了,你可能也能從一次新的代碼部署中瞭解緣由。

Cloud Insight還支持ChatOps集成,包括國內的 BearyChat 和簡聊。隨着devops文化的普及,相信這些工具的重要性也會與日俱增。不過貌似簡聊已經開源了(不運營了?)。

##Sysdig

  • 免費工具
  • SaaS服務 Sysdig Cloud
  • 拓撲可視化

能夠認爲sysdig是strace + tcpdump + htop + iftop + lsof + 衆多linux經常使用的系統監控命令的合體。

若是你熟悉tcpdump,那麼你知道它能還原整個網絡流量,而sysdig則是操做系統級別的監控工具,能捕捉到全部OS事件和數據。並且sysdig原生支持Linux container,包括Docker和LXC,提供了基本的指標監控信息。除了性能指標,sysdig還能採集trace等日誌信息,用於之後的問題分析和解決。

Sysdig Cloud是sisdig的SaaS版,除了基本的單機sysdig功能以外,還提供了跨平臺跨基礎設施的組件間依賴關係的可視化。

##Librato

  • 數據聚合平臺
  • 簡單探針
  • 圖表和報警
  • 價格不貴

Librato是一個數據聚合平臺,而不是嚴格意義的監控系統。

Librato很容易從AWS CloudWatch和Heroku得到數據,若是是本身監控主機或者Docker,須要使用Collectd框架。它也有不少插件,能夠從StatsD、Riemann等數據源採集數據。

Librato的探針雖然功能不是強大,可是他提供了豐富的實時在線數據處理功能,用戶可使用DSL對任意時間序列數據組合進行數學運算,好比加減乘除、比率導數等。還支持和時間窗口滑動功能,即跟過去某一段時間進行比較。

Librato也支持報警,基於metric和條件,設置報警信息。

Librato是按照metric的個數和時間分辨率來收費的,在官網的主頁上有一個大概的估算,若是你有20個metric,而且時間間隔爲60秒,則一臺服務器的價格只有2美圓1個月,這比datadog要便宜。

##Axibase(ATSD)

  • 非開源TSDB
  • 支持報警
  • 預測功能

Docker 監控之 SaaS 解決方案

做爲TSDB,ATSD支持長時間存儲高精度的metric數據。ATSD支持多種數據採集工具和協議,好比tcollector, Collectd,固然ATSD也支持從多臺Docker主機手機指標數據,並長期保存,進行可視化和分析。

除了傳統的時間序列數據,ATSD還支持屬性(Properties)和消息這兩種類型的數據。屬性通常用於保存meta data,這有點相似標籤。和OpenTSDB同樣,ATSD也支持tag,咱們可使用這些tag進行過濾和聚合。

ATSD內置了自動迴歸推斷算法(holt-winters,arima),能夠提前預測故障。預測功能的準確性取決於數據的採集頻率,保存時間(也就是數據量大小)和算法。

最大的遺憾,就是ATSD不是開源,也不是免費的軟件,不過他們提供了一個社區版能夠無償使用,可是你只能在一個節點上安裝ATSD,並且不能用於盈利性服務,也不能對軟件進行修改以及再發布。

若是咱們只是評估一下,或者想本身構建監控方案,它的產品設計仍是很是值得咱們來借鑑一下。

##SaaS的挑戰 數據敏感性

採用SaaS,意味着你的數據都將會保存到公網,可能會帶來心理不安全感。實際上SaaS反而會更安全些,尤爲是對中小公司沒有專門的安全運維團隊的狀況下。

成本(遷移和使用成本)

通常來講這是一個一次性投入成本。而對於大公司來講,就像公有云同樣,成本可能會成爲問題。

內部抵抗(觀念、我的愛好)

來自技術人員自身的抵抗,不是每一個人都喜歡本身變得輕鬆,使用SaaS可能會給一些人帶來工做上的不充實感。

##Docker監控方案的發展趨勢 ###標籤機制 一種觀點:監控服務狀態賽過監控個別容器,經過tag機制對服務總體的性能指標進行聚合。

Tag能夠是任何維度,好比BU,地區,服務,甚至個別容器。

好比Docker和Kubernetes等都支持label機制,即tag機制。

啓動Daemon:

docker daemon –label com.example.group=「webserver」

啓動容器:

docker run –label com.example.group=「webserver」

Dockerfile:

LABEL com.example.group=「webserver」

###經過API打通

經過API化實現雙贏。開源軟件好比fluentd、Collectd等,都支持插件功能。包括Docker自己,也在1.11版本中,採用了runC做爲容器運行時,在上面經過containerD來統一控制,來支持符合OCI標準的容器。

##Total解決方案 包括從探針到展現、告警,就是如今相似Datadog和Cloud Insight這樣的產品,以及支持中間件的詳細程度,就像一個大市場,什麼都能買到,無論你用什麼軟件,平臺都能提供監控。

這就像是去了酒吧忽然想吃碗拉麪,而後居然酒吧能給你作出來的那種感受。

另外一個層面就是從RUEM(實時用戶體驗管理)到基礎設施層的 打通 。好比你看到某URL的用戶HTTP響應較慢,若是不能跟後端的APM打通,你儘管能識別出問題,可是你不知道如何解決。若是和後端的APM以及基礎設施監控打通,你就能定位到HTTP響應慢時,相應的後端代碼的位置,並根據後端代碼的位置從而進一步找到MySQL的監控數據以及系統異常事件,馬上知道問題的根本緣由所在並解決問題,能夠說效率應該能提升幾個數量級。

系統監控工具若是可以作到 All in One,真的對解決人力和時間成本上有很是大的幫助。

##拓撲可視化 跨組件、跨基礎設施和應用,自動識別組件以及組件之間的依賴關係,以幫助更好的發現問題和解決問題。

這類服務有:

  • Weave Scope
  • Ruxit
  • Sysdig

-- 全文完 --


更多 Docker 監控內容,請關注 OneAPM Blog_Cloud Insight 版塊。數據監控及管理平臺 Cloud Insight,讓數據監控及可視化更容易。

本文轉自 OneAPM 官方博客

相關文章
相關標籤/搜索