09 Docker 容器監(jiān)控

監(jiān)控原理

Docker 是基于 Namespace喻括、Cgroups 和聯(lián)合文件系統(tǒng)實現(xiàn)的焦读。其中 Cgroups 不僅可以用于容器資源的限制达布,還可以提供容器的資源使用率宏悦,無論何種監(jiān)控方案的實現(xiàn)骇窍,底層數據都來源于 Cgroups瓜晤。
Cgroups 的工作目錄為 /sys/fs/cgroup,該目錄下包含了 Cgroups 的所有內容腹纳,Cgroups 包含很多子系統(tǒng)痢掠,可以用來對不同的資源進行限制,例如對 CPU嘲恍、內存足画、PID、磁盤IO 等資源進行限制和監(jiān)控佃牛。

總的來說淹辞,容器的監(jiān)控原理其實就是定時讀取 Linux 主機上相關文件并展示給用戶


獲取容器指標信息

以下說明下監(jiān)控組件是如何獲取到容器的資源限制和使用狀態(tài)的:

### 運行后的容器ID為:51041a74070e9260e82876974762b8c61c5ed0a51832d74fba6711175f89ede1
$ docker run --cpus=1 --memory=2g --name=nginx -d nginx

### Docker會在/sys/fs/cgroup/memory/docker目錄下以容器ID為名稱創(chuàng)建對應的文件夾
$ ls -l /sys/fs/cgroup/memory/docker/51041a74070e9260e82876974762b8c61c5ed0a51832d74fba6711175f89ede1
total 0
-rw-r--r-- 1 root root 0 Sep  2 15:21 cgroup.clone_children
--w--w--w- 1 root root 0 Sep  2 15:13 cgroup.event_control
-rw-r--r-- 1 root root 0 Sep  2 15:12 cgroup.procs
-rw-r--r-- 1 root root 0 Sep  2 15:12 memory.failcnt
--w------- 1 root root 0 Sep  2 15:21 memory.force_empty
......

### memory.limit_in_bytes 文件代表該容器內存限制大小俘侠,單位為 byte
$ cat /sys/fs/cgroup/memory/docker/51041a74070e9260e82876974762b8c61c5ed0a51832d74fba6711175f89ede1/memory.limit_in_bytes
2147483648

### 網絡的監(jiān)控數據來源是從 /proc/{Pid}/net/dev 目錄下讀取的
$ docker inspect nginx | grep Pid
            "Pid": 27348,
            "PidMode": "",
            "PidsLimit": 0,

### 根據Pid去獲取該容器的每一個網卡的流量接收和發(fā)送情況象缀,以及錯誤數彬向、丟包數等信息
$ cat /proc/27348/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

監(jiān)控方案

生產環(huán)境中,監(jiān)控容器的狀態(tài)十分重要攻冷,通過監(jiān)控可以隨時掌握容器的運行狀態(tài)娃胆,做到線上隱患和問題早發(fā)現(xiàn),早解決等曼。而 Docker 容器的監(jiān)控方案有很多里烦,除了自帶的 docker stats 命令,還有很多開源的解決方案禁谦,例如 sysdig胁黑、cAdvisorPrometheus 等州泊。


內置命令

使用 Docker 自帶的 docker stats 命令丧蘸,可以方便地看到主機上所有容器的 CPU、內存遥皂、網絡IO力喷、磁盤IO、PID 等資源的使用情況演训,但是它只能獲取本機數據弟孟,而且無法查看歷史監(jiān)控數據,也沒有可視化展示面板样悟。命令示范如下:

$ docker run --cpus=2 --memory=4g --name=nginx -d nginx

$ docker stats nginx
CONTAINER      CPU %         MEM USAGE / LIMIT     MEM %      NET I/O       BLOCK I/O           PIDS
nginx          18.70%        2.088 GiB / 4 GiB     52.2%      0 B / 0 B     256 MB / 266 MB     357

cAdvisor

cAdvisor 是谷歌開源的一款通用的容器監(jiān)控解決方案拂募,它不僅可以采集機器上所有運行的容器信息,還提供了基礎的查詢界面和 HTTP 接口窟她,更方便與外部系統(tǒng)結合陈症。所以,cAdvisor 很快成了容器指標監(jiān)控最常用組件震糖,并且 Kubernetes 也集成了 cAdvisor 作為容器監(jiān)控指標的默認工具录肯。

總體來說,使用 cAdvisor 監(jiān)控容器具有以下特點:
● 可以同時采集物理機和容器的狀態(tài)试伙;
● 可以展示監(jiān)控歷史數據嘁信。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末于样,一起剝皮案震驚了整個濱河市疏叨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌穿剖,老刑警劉巖蚤蔓,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異糊余,居然都是意外死亡秀又,警方通過查閱死者的電腦和手機单寂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吐辙,“玉大人宣决,你說我怎么就攤上這事』杷眨” “怎么了尊沸?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贤惯。 經常有香客問我洼专,道長,這世上最難降的妖魔是什么孵构? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任屁商,我火速辦了婚禮,結果婚禮上颈墅,老公的妹妹穿的比我還像新娘蜡镶。我一直安慰自己,他們只是感情好恤筛,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布帽哑。 她就那樣靜靜地躺著,像睡著了一般叹俏。 火紅的嫁衣襯著肌膚如雪妻枕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天粘驰,我揣著相機與錄音屡谐,去河邊找鬼。 笑死蝌数,一個胖子當著我的面吹牛愕掏,可吹牛的內容都是我干的。 我是一名探鬼主播顶伞,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼饵撑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了唆貌?” 一聲冷哼從身側響起滑潘,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锨咙,沒想到半個月后语卤,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年粹舵,在試婚紗的時候發(fā)現(xiàn)自己被綠了钮孵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡眼滤,死狀恐怖巴席,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情诅需,我是刑警寧澤情妖,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站诱担,受9級特大地震影響毡证,放射性物質發(fā)生泄漏。R本人自食惡果不足惜蔫仙,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一料睛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧摇邦,春花似錦恤煞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至丑慎,卻和暖如春喜喂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竿裂。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工玉吁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腻异。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓进副,卻偏偏與公主長得像,于是被迫代替她去往敵國和親悔常。 傳聞我的和親對象是個殘疾皇子影斑,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容