打造高逼格、可視化的Docker容器監(jiān)控系統(tǒng)平臺(tái)

為什么需要監(jiān)控哗脖?瀑踢?

對(duì)于一個(gè)物理機(jī)上運(yùn)行多個(gè)容器應(yīng)用時(shí),容器的運(yùn)行情況如:CPU使用率才避、內(nèi)存使用率橱夭、網(wǎng)絡(luò)狀態(tài)、磁盤(pán)空間等信息桑逝,都是需要去了解的棘劣,因此監(jiān)控是必須的。對(duì)于容器的監(jiān)控方案可謂多種多樣楞遏,本身自帶命令docker stats茬暇。
[root@docker ~]# docker stats
CONTAINER      CPU %    MEM USAGE / LIMIT    MEM %      NET I/O         BLOCK I/O    PIDS
bd96d72ed9c7   0.04%  14.97 MiB / 7.64 GiB  0.19%    8.22 MB / 805 MB   0 B / 0 B      9
665563143eb7   0.01%  18.12 MiB / 7.64 GiB   0.23%  19.7 MB / 18.5 MB   0 B / 39.4 MB  8
f2304dad5855  0.18%  98.45 MiB / 7.64 GiB   1.26%   1.07 GB / 9.97 MB   0 B / 2.13 GB  9
今天民工哥要介紹的是一款開(kāi)源方案cAdvisor+InfluxDB+Grafana。

組件簡(jiǎn)介

cAdvisor:用于數(shù)據(jù)采集

cadvisor谷歌公司自己用來(lái)監(jiān)控他們基礎(chǔ)設(shè)施的一款工具寡喝,這個(gè)工具厲害之處不僅能監(jiān)控docker容器的實(shí)時(shí)信息糙俗,而且還能將你的cadvisor這容器所在的主機(jī)的系統(tǒng)的實(shí)時(shí)信息,但是由于cadvisor只是能監(jiān)控到實(shí)時(shí)的信息而不能保存拘荡。


InfluxDB:用于數(shù)據(jù)存儲(chǔ)

InfluxDB 是用Go語(yǔ)言編寫(xiě)的一個(gè)開(kāi)源分布式時(shí)序臼节、事件和指標(biāo)數(shù)據(jù)庫(kù),無(wú)需外部依賴(lài)珊皿。所以我們要使用influxdb將這些實(shí)時(shí)監(jiān)控到的信息存放起來(lái)网缝。

InfluxDB主要特色功能
  • 基于時(shí)間序列,支持與時(shí)間有關(guān)的相關(guān)函數(shù)(如最大蟋定,最小粉臊,求和等);
  • 可度量性:你可以實(shí)時(shí)對(duì)大量數(shù)據(jù)進(jìn)行計(jì)算驶兜;
  • 基于事件:它支持任意的事件數(shù)據(jù)扼仲;
InfluxDB主要特點(diǎn)
  • 無(wú)結(jié)構(gòu)(無(wú)模式)
  • 可以是任意數(shù)量的列
  • 可拓展的;
  • 支持min, max, sum, count, mean, median 等一系列函數(shù)抄淑,方便統(tǒng)計(jì)
  • 原生的HTTP支持屠凶,內(nèi)置HTTP API
  • 強(qiáng)大的類(lèi)SQL語(yǔ)法
  • 自帶管理界面,方便使用

Grafana: 用于數(shù)據(jù)展示

Grafana是一個(gè)可視化面板(Dashboard)肆资,有著非常漂亮的圖表和布局展示矗愧,功能齊全的度量?jī)x表盤(pán)和圖形編輯器,支持Graphite郑原、zabbix唉韭、InfluxDB夜涕、Prometheus和OpenTSDB作為數(shù)據(jù)源。

Grafana主要特性:
  • 靈活豐富的圖形化選項(xiàng)
  • 可以混合多種風(fēng)格
  • 支持白天和夜間模式
  • 多個(gè)數(shù)據(jù)源属愤。

安裝布署過(guò)程

首先得有docker環(huán)境女器,這個(gè)就不用介紹了吧,請(qǐng)參考前面的文章

Docker容器技術(shù)入門(mén)(一)

1住诸、部署influxDB服務(wù)

[root@master ~]# docker run -d --name influxdb -p 8086:8086 tutum/influxdb
Unable to find image 'tutum/influxdb:latest' locally
Trying to pull repository docker.io/tutum/influxdb ... 
latest: Pulling from docker.io/tutum/influxdb
a3ed95caeb02: Pull complete 
23efb549476f: Pull complete 
aa2f8df21433: Pull complete 
ef072d3c9b41: Pull complete 
c9f371853f28: Pull complete 
a248b0871c3c: Pull complete 
749db6d368d0: Pull complete 
db2492acfcc3: Pull complete 
b7e7d2e12d53: Pull complete 
4272a53eef10: Pull complete 
9b2fefdb5321: Pull complete 
Digest: sha256:5b7c5e318303ad059f3d1a73d084c12cb39ae4f35f7391b79b0ff2c0ba45304b
Status: Downloaded newer image for docker.io/tutum/influxdb:latest
f384db08ffc78e01fc27bf4c35dc6503b0fd2473cd8d5114b4d8a5475f928b53
說(shuō)明:
  • -d :后臺(tái)運(yùn)行此容器
  • --name :?jiǎn)⑦\(yùn)容器分配名字influxdb
  • -p :映射端口驾胆,8083端口為infuxdb管理端口,8086端口是infuxdb的數(shù)據(jù)端口
  • tutum/influxdb:通過(guò)這個(gè)容器來(lái)運(yùn)行的只壳,默認(rèn)會(huì)在docker官方倉(cāng)庫(kù)pull下來(lái)
查看容器
[root@master ~]# docker ps
CONTAINER ID      IMAGE          COMMAND      CREATED           STATUS                   PORTS                      NAMES
f2304dad5855   tutum/influxdb   "/run.sh"   4 seconds ago   Up 4 seconds  0.0.0.0:8083->8083/tcp, 0.0.0.0:8086->8086/tcp   influxdb

現(xiàn)在可以通過(guò)瀏覽器去訪問(wèn)influxdb的管理端了

接下來(lái)創(chuàng)建cadvisor的數(shù)據(jù)庫(kù)與用戶俏拱,這個(gè)用于后期配置granfa

回車(chē)直接創(chuàng)建完成如下圖

創(chuàng)建管理用戶

創(chuàng)建完成如下圖

同時(shí)也是可以使用CLI命令行界面來(lái)創(chuàng)建的,命令一樣

2吼句、布署cadvisor服務(wù)

[root@master ~]# docker run -d \
--name=cadvisor \
-p 8082:8080 \
-v /:/rootfs,ro \
-v /var/run:/var/run \
-v /sys:/sys,ro \
-v /var/lib/docker/:/var/lib/docker,ro \
google/cadvisor \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_host=influxdb:8086
Unable to find image 'google/cadvisor:latest' locally
Trying to pull repository docker.io/google/cadvisor ... 
latest: Pulling from docker.io/google/cadvisor
ab7e51e37a18: Pull complete 
a2dc2f1bce51: Pull complete 
3b017de60d4f: Pull complete 
Digest: sha256:9e347affc725efd3bfe95aa69362cf833aa810f84e6cb9eed1cb65c35216632a
Status: Downloaded newer image for docker.io/google/cadvisor:latest
a212dc33c9424b6e36485334511e6317bdebc06977b9af374b81b0cab113e724
說(shuō)明:
  • -d :后臺(tái)運(yùn)行此容器
  • --name :?jiǎn)⑦\(yùn)容器分配名字cadvisor
  • -p :映射端口8082:8080(由于環(huán)境8080端口被占用,cadvisor默認(rèn)端口是8080不建議修改)
  • -v:把宿主機(jī)的目錄映射到容器中事格,這些目錄都是cadviso需要采集的目錄文件和監(jiān)控內(nèi)容
  • -storage_driver:需要指定cadvisor的存儲(chǔ)驅(qū)動(dòng)惕艳、數(shù)據(jù)庫(kù)主機(jī)、數(shù)據(jù)庫(kù)名
  • google/cadvisor:通過(guò)cadvisor這個(gè)鏡像來(lái)運(yùn)行容器驹愚,默認(rèn)會(huì)在docker官方倉(cāng)庫(kù)把鏡像pull下來(lái)远搪;
查看cadvisor容器:
[root@master ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                   NAMES
a212dc33c942        google/cadvisor     "/usr/bin/cadvisor..."   2 minutes ago       Up 2 minutes        0.0.0.0:8082->8080/tcp                 cadvisor

現(xiàn)在可以通過(guò)瀏覽訪問(wèn)cadisor的管理頁(yè)面

cadvisor的基礎(chǔ)圖形功能也酷炫的

測(cè)試是否寫(xiě)入influxdb數(shù)據(jù)庫(kù)

3、布署granafa

[root@master ~]# docker run -d --name grafana -p 3000:3000 grafana/grafanaUnable to find image 'grafana/grafana:latest' locallyTrying to pull repository docker.io/grafana/grafana ... latest: Pulling from docker.io/grafana/grafanaf2aa67a397c4: Pull complete 89573effc7c8: Pull complete b55c103da375: Pull complete Digest: sha256:364bec4a39ecbec744ea4270aae35f6554eb6f2047b3ee08f7b5f1134857c32cStatus: Downloaded newer image for docker.io/grafana/grafana:latest665563143eb74e5e2e76b7a1533cbf67a68590d355b0b22d453eac07e0e0b616[root@master ~]# docker psCONTAINER ID      IMAGE             COMMAND        CREATED          STATUS              PORTS                  NAMES665563143eb7  grafana/grafana       "/run.sh"   48 seconds ago    Up 47 seconds    0.0.0.0:3000->3000/tcp     grafana

訪問(wèn)WEB管理端

用戶名:密碼 admin:admin

添加數(shù)據(jù)源

之后保存并測(cè)試連接

新建New dashboard

這里隨便選擇一個(gè)容器做為測(cè)試使用逢捺,實(shí)際環(huán)境可根據(jù)實(shí)際環(huán)境填寫(xiě)

保存返回到HOME界面后谁鳍,如下圖

最終的效果圖如下

參考鏈接 https://mp.weixin.qq.com/s?__biz=MzI0MDQ4MTM5NQ==&mid=2247486129&idx=1&sn=986d170f115071cbe676d211a0458008&chksm=e91b6fadde6ce6bb271dedda23acef2c031ee3bdd7d9e2034ceab9a9e2c65f2caa98932e9491&mpshare=1&scene=23&srcid=06286ANinenJOBN5AeiL1IYa#rd

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市劫瞳,隨后出現(xiàn)的幾起案子倘潜,更是在濱河造成了極大的恐慌,老刑警劉巖志于,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涮因,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡伺绽,警方通過(guò)查閱死者的電腦和手機(jī)养泡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)奈应,“玉大人澜掩,你說(shuō)我怎么就攤上這事≌日酰” “怎么了肩榕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)程梦。 經(jīng)常有香客問(wèn)我点把,道長(zhǎng)橘荠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任郎逃,我火速辦了婚禮哥童,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘褒翰。我一直安慰自己贮懈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布优训。 她就那樣靜靜地躺著朵你,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揣非。 梳的紋絲不亂的頭發(fā)上抡医,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音早敬,去河邊找鬼忌傻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛搞监,可吹牛的內(nèi)容都是我干的水孩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼琐驴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼俘种!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起绝淡,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宙刘,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后够委,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體荐类,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年茁帽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玉罐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡潘拨,死狀恐怖吊输,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铁追,我是刑警寧澤季蚂,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響扭屁,放射性物質(zhì)發(fā)生泄漏算谈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一料滥、第九天 我趴在偏房一處隱蔽的房頂上張望然眼。 院中可真熱鬧,春花似錦葵腹、人聲如沸高每。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鲸匿。三九已至,卻和暖如春阻肩,著一層夾襖步出監(jiān)牢的瞬間带欢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工烤惊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洪囤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓撕氧,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親喇完。 傳聞我的和親對(duì)象是個(gè)殘疾皇子伦泥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容