Docker監(jiān)控簡介
我們提供的Docker主機和容器越來越多神郊,對Docker服務(wù)器和容器的監(jiān)控越來越必要。本文將引導你了解如何通過多個不同組件的配置和協(xié)作洽蛀,以實現(xiàn)Docker監(jiān)控王污。
Docker監(jiān)控組件
首先描滔, 我們假設(shè)在您的主機上已經(jīng)安裝、配置和運行Docker Engine露氮。請確保您可以通過Web瀏覽器在本地或者通過網(wǎng)絡(luò)IP連接到Docker主機祖灰。以下我們將詳細介紹如何創(chuàng)建我們的Docker監(jiān)控方案。
cAdvisor: Google開源的用于監(jiān)控基礎(chǔ)設(shè)施應(yīng)用的工具畔规,它是一個強大的監(jiān)控工具局扶,不需要任何配置就可以通過運行在Docker主機上的容器來監(jiān)控Docker容器,而且可以監(jiān)控Docker主機油讯。更多詳細操作和配置選項可以查看Github上的cAdvisor項目文檔详民。
influxDB: 它是一個分布式時間序列數(shù)據(jù)庫延欠。cAdvisor僅僅顯示實時信息陌兑,但是不存儲監(jiān)視數(shù)據(jù)。因此由捎,我們需要提供時序數(shù)據(jù)庫用于存儲cAdvisor組件所提供的監(jiān)控信息兔综,以便顯示除實時信息之外的時序數(shù)據(jù)。
Grafana: Grafana可視化展示平臺允許我們可視化地展示監(jiān)控信息狞玛。它允許我們對influxDB進行查詢软驰,并通過強大的圖表功能進行可視化展示。
本文配置組件版本信息如下:
-InfluxDB:V1.0.0-cAdvisior:V0.24.1-Grafana:V4.0.2
Docker監(jiān)控安裝與配置
下面心肪,我們將根據(jù)上述的Docker監(jiān)控組件進行安裝和配置锭亏,形成統(tǒng)一的Docker監(jiān)控平臺。
我們將首先先安裝influxDB, 以便于它能夠與cAdvisor進行協(xié)作硬鞍。
1. 安裝influxDB
下載influxDB鏡像
dockerpull tutum/influxdb
運行influxdb容器
docker run -d \? -p8083:8083\-p8086:8086\--expose8090\--expose8099\--name influxsrv \tutum/influxdb
influxdb容器運行成功后慧瘤,通過Web瀏覽器訪問http://docker-host-ip:8083訪問influxdb后臺管理,并登錄后臺管理系統(tǒng)(默認用戶名:root, 默認密碼:root)固该。
influxdb_connection_settings
2. 創(chuàng)建cAdvisor應(yīng)用數(shù)據(jù)庫
在登錄influxdb后臺數(shù)據(jù)庫管理平臺后锅减, 創(chuàng)建cAdvisor數(shù)據(jù)庫, 用于存儲cAdvisor應(yīng)用所獲取的實時監(jiān)控數(shù)據(jù)伐坏。在influxDB管理界面中的Querie s輸入框中創(chuàng)建數(shù)據(jù)庫和用戶:
create_database
# 創(chuàng)建數(shù)據(jù)庫createdatabase'cadvisor';# 創(chuàng)建用戶CREATE USER'cadvisor'WITH PASSWORD'cadvisor'# 用戶授權(quán)grant all privilegeson'cadvisor'to'cadvisor'# 授予讀寫權(quán)限grant WRITEon'cadvisor'to'cadvisor'grant READon'cadvisor'to'cadvisor'
3. 運行cAdvisor應(yīng)用容器并與influxDB容器進行互聯(lián)
啟動cAdvisor容器
docker run \? --volume=/:/rootfs:ro\--volume=/var/run:/var/run:rw\--volume=/sys:/sys:ro\--volume=/var/lib/docker/:/var/lib/docker:ro\-p8080:8080\--detach=true\--linkinfluxsrv:influxsrv \--name=cadvisor \google/cadvisor:latest \? -storage_driver=influxdb \-storage_driver_db=cadvisor \-storage_driver_host=influxsrv:8086
cAdvisor應(yīng)用容器啟動成功后怔匣,通過Web瀏覽器訪問地址http://docker-host-ip:8080,便可以查看cAdvisor監(jiān)控工具所收集到的Docker主機和容器的資源統(tǒng)計信息桦沉。
cAdvisor WebUI
4. 運行Grafana可視化平臺并與influxDB容器進行互聯(lián)
docker run -d \? -p3000:3000\-e INFLUXDB_HOST=localhost \-e INFLUXDB_PORT=8086\-e INFLUXDB_NAME=cadvisor \-e INFLUXDB_USER=root \-e INFLUXDB_PASS=root \--linkinfluxsrv:influxsrv \--name grafana \grafana/grafana
5. 登錄Grafana管理平臺
通過Web瀏覽器訪問地址http://docker-host-ip:3000登錄Grafana管理平臺每瞒。
用戶名:admin
密 碼:admin
Grafana_Login
6. 配置Grafana與influxDB數(shù)據(jù)庫連接
(1). 配置Granfana數(shù)據(jù)源
在Grafana管理平臺中,單擊“添加數(shù)據(jù)源”對數(shù)據(jù)源進行配置纯露。如下圖所示剿骨。
Add_Datasource
基本信息
Name:influxdb
Type:influxDB
Default: checked
Http settings
Access:proxy
HTTP Auth
Basic Auth: checked
Basic Auth Details
User: admin
Password: admin
InfluxDB Details
Database:cadvisor
User:cadvisor
Password:cadvisor
配置完成后, 我們已經(jīng)建立與influxDB的連接苔埋,下面我們將其進行測試懦砂。
(2). 添加Dashboard
下面我們將使用Grafana配置我們的第一個Dashboard,并可視化來自cAdvisor的監(jiān)控數(shù)據(jù)。
1). 點擊“Grafana”圖標, 打開Dashboard菜單荞膘,選擇新建Dashboard罚随;
New Dashboard
2). 在Dashboard面板中選擇相應(yīng)的組件并拖動到相關(guān)的位置;
Add_Component
3). 點擊面板的標題羽资,會彈出相應(yīng)的選項"view"淘菩、"edit"、"Duplicates"屠升、"share"和刪除按扭潮改;
Edit Component
4). 選擇"edit"選項,出現(xiàn)相應(yīng)的配置項腹暖,在“Metrics”選項卡中配置相應(yīng)的數(shù)據(jù)表和數(shù)據(jù)源信息汇在;
Edit_Configure
例如: 配置內(nèi)存使用率信息
Edit Memory Usage
在Metric選項卡中, 配置數(shù)據(jù)表來源為:SELECT mean("value") FROM "memory_usage" WHERE $timeFilter GROUP BY time(10s) fill(0)脏答, 配置數(shù)據(jù)源Panel Datasource為:cadvisor糕殉;
在Axes選項卡中配置相關(guān)的顯示單位。
Config Axies
5). 配置完相關(guān)的選項后殖告,點擊Dashboard導航欄的保存按鈕阿蝶,便可完成Dashboard的配置。
Save Config
至此黄绩, 所有配置步驟完成羡洁, 我們能夠看到Grafana顯示相關(guān)的監(jiān)控圖表信息。