摘要:可以指定一個(gè)已停止的容器,但是停止的容器不返回任何數(shù)據(jù)。但它并不意味著你的每個(gè)容器都能訪問那么多的內(nèi)存默認(rèn)時(shí)命令會(huì)每隔秒鐘刷新一次,如果只看當(dāng)前狀態(tài)指定查看某個(gè)容器的資源可以指定名稱或本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見
前言
傳統(tǒng)虛機(jī)監(jiān)控一般采用類似Zabbix的方案,但容器出現(xiàn)之后,再使用Zabbix agent來采集數(shù)據(jù)的話就顯得有些吃力了,如果每個(gè)容器都像OS那樣監(jiān)控,則metric數(shù)量將會(huì)非常巨大,而且這些數(shù)據(jù)很可能幾分鐘之后就沒有意義了(容器已經(jīng)停止或漂移),且容器的指標(biāo)匯總更應(yīng)該是按照APP甚至POD維度。
如果只是過渡方案,或者想將容器監(jiān)控統(tǒng)一到公司現(xiàn)有的Zabbix中,可以參考zabbix-docker-monitoring,有很多模板如:zabbix-template-app-docker.xml
參考文章:https://segmentfault.com/a/11...
Docker原生監(jiān)控常用方式:
docker ps/top/logs
docker stats
docker Remote API
docker 偽文件系統(tǒng)
docker stats
該命令默認(rèn)以流式方式輸出,如果想打印出最新的數(shù)據(jù)并立即退出,可以使用 no-stream=true 參數(shù)。
可以指定一個(gè)已停止的容器,但是停止的容器不返回任何數(shù)據(jù)。
例如:
Remote API
Docker Remote API是一個(gè)取代遠(yuǎn)程命令行界面(rcli)的REST API
如:curl http://127.0.0.1:4243/containers/json
可以使用API來獲取監(jiān)控?cái)?shù)據(jù)并集成到其他系統(tǒng),注意不要給Docker daemon帶來性能負(fù)擔(dān),如果你一臺(tái)主機(jī)有很多容器,非常頻繁的采集可能會(huì)大量占據(jù)CPU
偽文件系統(tǒng)
以下操作的環(huán)境為:Centos7系統(tǒng) docker17.03版本
docker stats的數(shù)據(jù)來自于/sys/fs/cgroup下的文件
mem usage那一列的值,來自于
/sys/fs/cgroup/memory/docker/[containerId]/memory.usage_in_bytes
如果沒限制內(nèi)存,Limit = machine_mem,否則來自于
/sys/fs/cgroup/memory/docker/[id]/memory.limit_in_bytes
內(nèi)存使用率 = memory.usage_in_bytes/memory.limit_in_bytes
一般情況下,cgroup文件夾下的內(nèi)容包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等信息:
如memory下的文件有:
幾個(gè)常用的指標(biāo)含義:
memory.stat中的信息是最全的:
更多資料參考:cgroup memory
原理分析:Libcontainer 深度解析
總結(jié)優(yōu)缺點(diǎn):
優(yōu)點(diǎn):原生,很方便的看到當(dāng)前宿主機(jī)上所有容器的CPU、內(nèi)存、網(wǎng)絡(luò)流量等數(shù)據(jù)。
缺點(diǎn):只能統(tǒng)計(jì)當(dāng)前宿主機(jī)的所有容器,數(shù)據(jù)是實(shí)時(shí)的,沒有存儲(chǔ),沒有報(bào)警,沒有可視化。
備注:
1.如果你沒有限制容器內(nèi)存,那么docker stats將顯示您的主機(jī)的內(nèi)存總量。但它并不意味著你的每個(gè)容器都能訪問那么多的內(nèi)存
2.默認(rèn)時(shí)stats命令會(huì)每隔1秒鐘刷新一次,如果只看當(dāng)前狀態(tài):docker stats --no-stream
3.指定查看某個(gè)容器的資源可以指定名稱或PID: docker stats --no-stream registry 1493
本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見:container-monitor-book
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32833.html
摘要:可以指定一個(gè)已停止的容器,但是停止的容器不返回任何數(shù)據(jù)。但它并不意味著你的每個(gè)容器都能訪問那么多的內(nèi)存默認(rèn)時(shí)命令會(huì)每隔秒鐘刷新一次,如果只看當(dāng)前狀態(tài)指定查看某個(gè)容器的資源可以指定名稱或本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見 前言 傳統(tǒng)虛機(jī)監(jiān)控一般采用類似Zabbix的方案,但容器出現(xiàn)之后,再使用Zabbix agent來采集數(shù)據(jù)的話就顯得有些吃力了,如果每個(gè)容器都像OS那樣監(jiān)控,則me...
摘要:正在走遠(yuǎn),新年之初,小數(shù)精選過去一年閱讀量居高的技術(shù)干貨,從容器到微服務(wù)云原生,匯集成篇精華集錦,充分反映了這一年的技術(shù)熱點(diǎn)走向。此文值得收藏,方便隨時(shí)搜索和查看。,小數(shù)將繼續(xù)陪伴大家,為朋友們奉獻(xiàn)更有逼格的技術(shù)內(nèi)容。 2017正在走遠(yuǎn),新年之初,小數(shù)精選過去一年閱讀量居高的技術(shù)干貨,從容器、K8S 到微服務(wù)、云原生、Service Mesh,匯集成52篇精華集錦,充分反映了這一年的技...
摘要:在中包含大量的了相關(guān)的信息參考原生監(jiān)控文章的收集器更多源碼參考文章總結(jié)優(yōu)缺點(diǎn)優(yōu)點(diǎn)谷歌開源產(chǎn)品,監(jiān)控指標(biāo)齊全,部署方便,而且有官方的鏡像。 概述 為了解決docker stats的問題(存儲(chǔ)、展示),谷歌開源的cadvisor誕生了,cadvisor不僅可以搜集一臺(tái)機(jī)器上所有運(yùn)行的容器信息,還提供基礎(chǔ)查詢界面和http接口,方便其他組件如Prometheus進(jìn)行數(shù)據(jù)抓取,或者cadvis...
摘要:在中包含大量的了相關(guān)的信息參考原生監(jiān)控文章的收集器更多源碼參考文章總結(jié)優(yōu)缺點(diǎn)優(yōu)點(diǎn)谷歌開源產(chǎn)品,監(jiān)控指標(biāo)齊全,部署方便,而且有官方的鏡像。 概述 為了解決docker stats的問題(存儲(chǔ)、展示),谷歌開源的cadvisor誕生了,cadvisor不僅可以搜集一臺(tái)機(jī)器上所有運(yùn)行的容器信息,還提供基礎(chǔ)查詢界面和http接口,方便其他組件如Prometheus進(jìn)行數(shù)據(jù)抓取,或者cadvis...
摘要:斌哥是誰劉斌,擁有多年編程經(jīng)驗(yàn),曾參與翻譯過第一本書入門與實(shí)踐應(yīng)用安全權(quán)威指南等多本技術(shù)書籍,主講過入門與實(shí)踐課程的后臺(tái)工程師。主要的解決方式就是以或者為單位進(jìn)行監(jiān)控通過等方式。 過去的一年中,關(guān)于 Docker 的話題從未斷過,而如今,從嘗試 Docker 到最終決定使用 Docker 的轉(zhuǎn)化率依然在逐步升高,關(guān)于 Docker 的討論更是有增無減。另一方面,大家的注意力也漸漸從 D...
閱讀 2385·2021-11-18 10:07
閱讀 2337·2021-09-22 15:59
閱讀 3095·2021-08-23 09:42
閱讀 2296·2019-08-30 15:44
閱讀 1208·2019-08-29 15:06
閱讀 2335·2019-08-29 13:27
閱讀 1230·2019-08-29 13:21
閱讀 1431·2019-08-29 13:13