使用InfluxDB+cAdvisor+Grafana配置Docker監(jiān)控

文檔來源

Docker監(jiān)控簡介

我們提供的Docker主機和容器越來越多,對Docker服務(wù)器和容器的監(jiān)控越來越必要。本文將引導(dǎo)你了解如何通過多個不同組件的配置和協(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:  V 1.0.0
- cAdvisior: V 0.24.1
- Grafana:   V 4.0.2

Docker監(jiān)控安裝與配置

下面,我們將根據(jù)上述的Docker監(jiān)控組件進行安裝和配置,形成統(tǒng)一的Docker監(jiān)控平臺。

我們將首先先安裝influxDB, 以便于它能夠與cAdvisor進行協(xié)作。

1. 安裝influxDB

下載influxDB鏡像

docker pull tutum/influxdb

運行influxdb容器

docker run -d \
   -p 8083:8083 \
   -p 8086:8086 \
   --expose 8090 \
   --expose 8099 \
   --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ù)庫
create database 'cadvisor'; 

# 創(chuàng)建用戶
CREATE USER 'cadvisor' WITH PASSWORD 'cadvisor'

# 用戶授權(quán)
grant all privileges on 'cadvisor' to 'cadvisor'

# 授予讀寫權(quán)限
grant WRITE on 'cadvisor' to 'cadvisor'
grant READ on '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 \
  -p 8080:8080 \
  --detach=true \ 
  --link influxsrv: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 \
  -p 3000:3000 \
  -e INFLUXDB_HOST=localhost \
  -e INFLUXDB_PORT=8086 \
  -e INFLUXDB_NAME=cadvisor \
  -e INFLUXDB_USER=root \ 
  -e INFLUXDB_PASS=root \
  --link influxsrv: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

Url:http://influxsrv:8086
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導(dǎo)航欄的保存按鈕,便可完成Dashboard的配置。

Save Config

至此, 所有配置步驟完成, 我們能夠看到Grafana顯示相關(guān)的監(jiān)控圖表信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容