摘要:本文轉(zhuǎn)自劉斌博文如何選擇監(jiān)控方案,文中劉斌從技術(shù)的角度深入解釋了監(jiān)控的數(shù)據(jù)采集原理,介紹了現(xiàn)有開源的監(jiān)控方案,以及能夠?qū)M(jìn)行監(jiān)控功能的主流服務(wù)工具。下一章,劉斌將為大家介紹監(jiān)控的開原方案,主流服務(wù),及其特點(diǎn)。
過去的一年中,關(guān)于 Docker 的話題從未斷過,而如今,從嘗試 Docker 到最終決定使用 Docker 的轉(zhuǎn)化率依然在逐步升高,關(guān)于 Docker 的討論更是有增無減。另一方面,大家的注意力也漸漸從 “Docker 是什么”轉(zhuǎn)移到“實(shí)踐 Docker”與“監(jiān)控 Docker”上。
本文轉(zhuǎn)自劉斌博文 「如何選擇 Docker 監(jiān)控方案 」 ,文中劉斌從技術(shù)的角度深入解釋了 Docker 監(jiān)控的數(shù)據(jù)采集原理,介紹了現(xiàn)有開源的監(jiān)控方案,以及能夠?qū)?Docker 進(jìn)行監(jiān)控功能的主流 SaaS 服務(wù)工具。
上一篇文章中介紹了 Docker 監(jiān)控目的及技術(shù)基礎(chǔ),本篇文章將介紹,Docker 監(jiān)控方案的實(shí)現(xiàn)。
Docker 監(jiān)控方案的實(shí)現(xiàn)
自己動(dòng)手 + 開源軟件
SaaS
評價(jià)標(biāo)準(zhǔn)
功能
信息詳細(xì)程度
查詢的靈活程度
報(bào)警 + API
靈活性
定制
成本
學(xué)習(xí)、開發(fā)
維護(hù)
運(yùn)維
部署復(fù)雜程度
高可用
需要考慮的基本要素如上所示,不多述。
自己動(dòng)手
靈活性強(qiáng)
成本高
這里的成本包括開發(fā)成本,開發(fā)成本可能包括招人和培訓(xùn),開發(fā)時(shí)間和填坑時(shí)間。開發(fā)完了還需要維護(hù)成本,而且隨著Docker的升級,可能還需要對metric的采集實(shí)現(xiàn)進(jìn)行升級,以及各種bugfix。
自己動(dòng)手打造監(jiān)控方案
采集
存儲
展示
報(bào)警(動(dòng)作)
StatsD 是 Flickr 公司首先提出來的,后來由 Esty 公司發(fā)揚(yáng)光大的一個(gè)輕量級的指標(biāo)采集模塊。
簡單來講,StatsD 就是一個(gè)簡單的網(wǎng)絡(luò)守護(hù)進(jìn)程,基于 Node.js 平臺(Esty實(shí)現(xiàn),其實(shí)也有其他語言版本),通過 UDP 或者 TCP 方式偵聽各種統(tǒng)計(jì)信息,包括計(jì)數(shù)器和定時(shí)器,可以用來采集操作系統(tǒng)、不同數(shù)據(jù)庫、中間件的數(shù)據(jù)指標(biāo),進(jìn)行緩存、聚合,并發(fā)送到Graphite 等存儲和可視化系統(tǒng)中。
StatsD 具有以下優(yōu)點(diǎn):
簡單
首先安裝部署簡單,且StatsD 協(xié)議是基于文本的,可以直接寫入和讀取,方便實(shí)現(xiàn)各種客戶端和SDK。
Cloud Insight的探針也是采用這些方式,我們有些SDK也是基于StatsD的,目前有Ruby、Python和Java的,在 GitHub 上可以看到。
低耦合性
StatsD 守護(hù)進(jìn)程采取 UDP 這種無狀態(tài)的協(xié)議,收集指標(biāo)和應(yīng)用程序本身之間沒有依賴,不會阻塞應(yīng)用,不管StatsD的狀態(tài)是運(yùn)行中,還是沒在運(yùn)行,都不會影響應(yīng)用程序,應(yīng)用程序也不關(guān)心StatsD是否收到數(shù)據(jù)。
易集成
StatsD非常容易整合其他組件,可以自己編寫采集業(yè)務(wù)邏輯,發(fā)送到StatsD守護(hù)進(jìn)程即可。也就是說用戶的工作很簡單,只需要按定義好的規(guī)則采集數(shù)據(jù)發(fā)送到Stats,然后用Graphite存儲、展示,通過使用Riemann進(jìn)行報(bào)警。
Tcollector
來源于OpenTSDB
Tcollector 是一個(gè)采集指標(biāo)數(shù)據(jù)并保存到OpenTSDB的框架,你可以使用該框架自己編寫采集的業(yè)務(wù)邏輯。類似StatsD,運(yùn)行在客戶端,收集本地的metric信息,推送到OpenTSDB。
Collectd
System statistics collection daemon
存儲到RRD
插件機(jī)制(input/output)
簡單報(bào)警功能
Collectd即是一個(gè)守護(hù)進(jìn)程,也是一個(gè)框架,類似StatsD,它性能非常好,采用C語言編寫。Collectd不直接支持從Docker中取數(shù)據(jù),但是我們可以自己編寫插件來采集性能指標(biāo)數(shù)據(jù)。
Collectd有強(qiáng)大的插件機(jī)制,已經(jīng)實(shí)現(xiàn)了包括amqp、rrdtool、graphite、http、kafka、redis、mongodb、OpenTSDB以及CSV文件等在內(nèi)的各種插件。
在4.3版本之后還支持簡單的基于閾值檢查的報(bào)警機(jī)制。
cAdvisor是一個(gè)用于收集、聚合處理和輸出容器運(yùn)行指標(biāo)的守護(hù)進(jìn)程。而且cAdvisor基本算是一個(gè)獲取Docker性能數(shù)據(jù)的標(biāo)配了吧。
1.
一句命令就可以啟動(dòng)cAdvisor容器,訪問8080端口即可看到性能指標(biāo)數(shù)據(jù)。cAdvisor可以通過storage_driver參數(shù)將數(shù)據(jù)存到influxdb,同時(shí)也可以將metric輸出為Prometheus的格式,所以很多自定義Docker監(jiān)控系統(tǒng)都會采取cAdvisor + Prometheus 的組合。
存儲TSDB
OpenTSDB
Influxdb
RRDTool
Graphite
關(guān)于時(shí)序列數(shù)據(jù)庫,可以看附錄中相關(guān)的介紹文章。推薦使用OpenTSDB或者Influxdb,簡單對比一下各自特點(diǎn)如下:
OpenTSDB
Java & HBase
易擴(kuò)展(集群功能強(qiáng)大)
機(jī)器多,運(yùn)維稍顯麻煩
Influxdb
Golang
集群功能不太成熟
有類SQL的查詢語句
單臺即可工作
這兩者都支持自由模式和多維度,非常適合用于采用tag機(jī)制的數(shù)據(jù)模式建模。
開源可視化工具
Graphite
Influxdb + Grafana
Prometheus
光有數(shù)據(jù)是不夠的,raw data沒有任何意義,我們需要良好的可視化組件來展示數(shù)據(jù)和數(shù)據(jù)的內(nèi)在意義,發(fā)揮數(shù)據(jù)的作用。
我們也可以將數(shù)據(jù)存儲和展示交給其他開源軟件。
如果你的數(shù)據(jù)采集和存儲都是自己來完成的,只想使用一個(gè)外部的圖形化界面的話,選Grafana應(yīng)該沒錯(cuò),Grafana展現(xiàn)形式非常豐富,配置也很靈活。
以上,先到這里。
下一章,劉斌將為大家介紹 Docker 監(jiān)控的開原方案,主流 SaaS 服務(wù),及其特點(diǎn)。
超好用的監(jiān)控軟件 Cloud Insight 不僅能監(jiān)控 Docker,還能對 Nagios 進(jìn)行更好的可視化哦~
閱讀更多技術(shù)文章,請?jiān)L問 OneAPM 官方博客。
本文轉(zhuǎn)自 OneAPM 官方博客
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26564.html
摘要:斌哥是誰劉斌,擁有多年編程經(jīng)驗(yàn),曾參與翻譯過第一本書入門與實(shí)踐應(yīng)用安全權(quán)威指南等多本技術(shù)書籍,主講過入門與實(shí)踐課程的后臺工程師。主要的解決方式就是以或者為單位進(jìn)行監(jiān)控通過等方式。 過去的一年中,關(guān)于 Docker 的話題從未斷過,而如今,從嘗試 Docker 到最終決定使用 Docker 的轉(zhuǎn)化率依然在逐步升高,關(guān)于 Docker 的討論更是有增無減。另一方面,大家的注意力也漸漸從 D...
摘要:鑒于目前大多數(shù)服務(wù)器環(huán)境都是,提前接觸能夠相輔相成。正則也是必須要掌握的一個(gè)知識點(diǎn)。有多種創(chuàng)建多線程的方式,不過目前使用線程池的多一些。 原創(chuàng):小姐姐味道(微信公眾號ID:xjjdog),歡迎分享,轉(zhuǎn)載請保留出處。 你可能有所感悟。零散的資料讀了很多,但是很難有提升。到處是干貨,但是并沒什么用,簡單來說就是缺乏系統(tǒng)化。另外,噪音太多,雷同的框架一大把,我不至于全都要去學(xué)了吧。 這里,我...
摘要:應(yīng)該如何解決本文將給出若干提示,如何在生產(chǎn)環(huán)境中使用。路由匹配服務(wù)發(fā)現(xiàn)負(fù)載均衡跨容器通訊非??煽俊T趩蝹€(gè)端口上運(yùn)行一個(gè)服務(wù),節(jié)點(diǎn)的任意主機(jī)都可以訪問,負(fù)載均衡完全在后臺實(shí)現(xiàn)。 上周數(shù)人云給大家分享了——《你可能需要的關(guān)于Docker Swarm的經(jīng)驗(yàn)分享》今天給大家?guī)磉@位作者大大的后續(xù)文章——《Docker Swarm在生產(chǎn)環(huán)境中的進(jìn)階指南》 當(dāng)在本地開發(fā)環(huán)境中使用Docker,或者...
摘要:五參考文獻(xiàn)區(qū)塊鏈利用構(gòu)建自己的去中心化分布式系統(tǒng)相關(guān)文章和視頻推薦戴嘉樂入門基于和構(gòu)建自維護(hù)資源網(wǎng)關(guān)圓方圓學(xué)院匯集大批區(qū)塊鏈名師,打造精品的區(qū)塊鏈技術(shù)課程。 作者簡介:戴嘉樂( Mr.Maple ) | 前百度高級研發(fā)工程師 | IPFS應(yīng)用實(shí)踐者&布道師|個(gè)人網(wǎng)站:https://www.daijiale.cn聯(lián)系方式:微信號:daijiale6239。 一、背景 上篇文章[《(入門...
摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級技術(shù)專家我看過哪些技術(shù)類書籍。 大家好,我是...
閱讀 2331·2021-11-23 10:09
閱讀 2898·2021-10-12 10:11
閱讀 2605·2021-09-29 09:35
閱讀 1346·2019-08-30 15:53
閱讀 2272·2019-08-30 11:15
閱讀 2916·2019-08-29 13:01
閱讀 2300·2019-08-28 18:15
閱讀 3369·2019-08-26 12:13