過去的一年中,關於 Docker 的話題從未斷過,而現在,從嘗試 Docker 到最終決定使用 Docker 的轉化率依然在逐步升高,關於 Docker 的討論更是有增無減。另外一方面,你們的注意力也漸漸從 「Docker 是什麼」轉移到「實踐 Docker」與「監控 Docker」上。html
本文轉自劉斌博文「如何選擇 Docker 監控方案 」,文中劉斌從技術的角度深刻解釋了 Docker 監控的數據採集原理,介紹了現有開源的監控方案,以及能 夠對 Docker 進行監控功能的主流 SaaS 服務工具。linux
上一篇文章中,咱們瞭解了開源的 Docker 監控方案,本篇聽聽斌哥介紹 Docker 監控的 SaaS 解決方案!!ios
##SaaSweb
對於中小型企業尤爲創業公司來講,自主開發或者直接利用現有的開源工具進行監控都有一些問題,主要是成本和風險的問題。對於中小企業,應該先把精力集中在發展核心業務,能外包的就先不本身作。並且不少中小公司你們都是全棧,沒有專門的運維人員,都是臨時抱佛腳,隨時都會變成救火隊員。算法
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快錢。這只是官方訂價,實際上還會便宜,貌似聯繫客服就能夠知道有多便宜了。
Cloud Insight的圖表功能也很豐富,能對任何指標以圖表的方式展現,還能在圖表上疊加事件,好比報警通知、服務啓動中止等,能在觀察到metric變更趨勢的同時,看到相應的時間,瞭解metric發生變更的緣由。好比CPU load超過必定值時,可能觸發報警,這時你能在圖表上看到相應的事件,一樣,若是CPU load一直不是很低,可是從某一時間點開始變低了,你可能也能從一次新的代碼部署中瞭解緣由。
Cloud Insight還支持ChatOps集成,包括國內的 BearyChat 和簡聊。隨着devops文化的普及,相信這些工具的重要性也會與日俱增。不過貌似簡聊已經開源了(不運營了?)。
##Sysdig
能夠認爲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,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,真的對解決人力和時間成本上有很是大的幫助。
##拓撲可視化 跨組件、跨基礎設施和應用,自動識別組件以及組件之間的依賴關係,以幫助更好的發現問題和解決問題。
這類服務有:
-- 全文完 --
更多 Docker 監控內容,請關注 OneAPM Blog_Cloud Insight 版塊。數據監控及管理平臺 Cloud Insight,讓數據監控及可視化更容易。
本文轉自 OneAPM 官方博客