天天看點

Docker 監控之 SaaS 解決方案

上一篇文章中,我們了解了開源的 docker 監控方案,本篇聽聽斌哥介紹 docker 監控的 saas 解決方案!!

turnkey解決方案

維護成本 ~ zero

适合中小企業

對于中小型企業尤其創業公司來說,自主開發或者直接利用現有的開源工具進行監控都有一些問題,主要是成本和風險的問題。對于中小企業,應該先把精力集中在發展核心業務,能外包的就先不自己做。而且很多中小公司大家都是全棧,沒有專門的運維人員,都是臨時抱佛腳,随時都會變成救火隊員。

saas最大的優點是什麼?那就是免運維,開箱即用,修改的代碼少甚至不需要修改代碼,或者隻需要簡單的安裝一個agent就可以工作了。很多saas軟體的開場白都是運作一條 <code>yum install</code> ,然後倒上一杯咖啡等幾分鐘,就能看到資料了。

你的初期投入非常小,上手非常快,而且成本比較低(如果你的公司已經有數百上千伺服器了,則這部分成本可能會變高,就跟是自建機房還是用雲主機的對比一樣)。

傳統apm一般也都提供了對docker的監控:

<a href="http://blog.oneapm.com/tags-new+relic.html">new relic</a>

<a href="http://blog.oneapm.com/tags-appdynamics.html">appdynamics</a>

dynatrace(ruxit)

最近也有很多專門用于基礎設施監控的saas服務

<a href="http://blog.oneapm.com/tags-datadog.html">datadog</a>

sysdig

<a href="http://www.oneapm.com/ci/feature.html">cloud insight</a>

clusterup

scout

rancherlab有一個産品叫rancheos,是一個專門為了運作docker準備的微型linux版本,它的口号是“the perfect place to run docker”。跟coreos類似,但是貌似功能不如coreos多,也沒有coreos有名,也沒有coreos中fleet、flannel和etcd這樣的元件,尤其是etcd,可以說是coreos的副産品,但是幾乎成了docker業界标準的kv store和服務發現元件了。

國外最好

功能很強大

安裝很簡單

國外最流行的saas解決方案是datadog,國内可能比較成熟、規模較大的應該算是cloud insight了。這類服務使用者隻需要注冊一個賬号,按照安裝過程通過一條指令來安裝探針即可在web展示端看到資料。

要說到datadog的不足,那就是在國外,網絡延遲需要考慮,萬一哪天不科學了也需要有所準備。價格方面datadog也比較貴。免費plan支援5台機器,而且隻保留一天的資料,而且沒有報警功能。收費版15美元一台主機,支援報警功能,資料存儲13個月。

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

實時資料

曆史資料

儀表盤

混合監控

報警功能

Docker 監控之 SaaS 解決方案
Docker 監控之 SaaS 解決方案

cloud insight的圖表功能也很豐富,能對任何名額以圖表的方式展示,還能在圖表上疊加事件,比如報警通知、服務啟動停止等,能在觀察到metric變動趨勢的同時,看到相應的時間,了解metric發生變動的原因。比如cpu load超過一定值時,可能觸發報警,這時你能在圖表上看到相應的事件,同樣,如果cpu load一直不是很低,但是從某一時間點開始變低了,你可能也能從一次新的代碼部署中了解原因。

免費工具

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的探針雖然功能不是強大,但是他提供了豐富的實時線上資料處理功能,使用者可以使用dsl對任意時間序列資料組合進行數學運算,比如加減乘除、比率導數等。還支援和時間視窗滑動功能,即跟過去某一段時間進行比較。

librato也支援報警,基于metric和條件,設定報警資訊。

librato是按照metric的個數和時間分辨率來收費的,在官網的首頁上有一個大概的估算,如果你有20個metric,并且時間間隔為60秒,則一台伺服器的價格隻有2美元1個月,這比datadog要便宜。

非開源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可能會給一些人帶來工作上的不充實感。

一種觀點:監控服務狀态勝過監控個别容器,通過tag機制對服務整體的性能名額進行聚合。

tag可以是任何次元,比如bu,地區,服務,甚至個别容器。

比如docker和kubernetes等都支援label機制,即tag機制。

啟動daemon:

<code>docker daemon –label com.example.group=“webserver”</code>

啟動容器:

<code>docker run –label com.example.group=“webserver”</code>

dockerfile:

<code>label com.example.group=“webserver”</code>

通過api化實作共赢。開源軟體比如fluentd、collectd等,都支援插件功能。包括docker本身,也在1.11版本中,采用了runc作為容器運作時,在上面通過containerd來統一控制,來支援符合oci标準的容器。

包括從探針到展示、告警,就是現在類似datadog和cloud insight這樣的産品,以及支援中間件的詳細程度,就像一個大市場,什麼都能買到,不管你用什麼軟體,平台都能提供監控。

這就像是去了酒吧突然想吃碗拉面,然後竟然酒吧能給你做出來的那種感覺。

系統監控工具如果能夠做到 all in one,真的對解決人力和時間成本上有非常大的幫助。

跨元件、跨基礎設施和應用,自動識别元件以及元件之間的依賴關系,以幫助更好的發現問題和解決問題。

這類服務有:

weave scope

ruxit

-- 全文完 --

繼續閱讀