1. 程式人生 > >使用InfluxDB+cAdvisor+Grafana配置Docker監控

使用InfluxDB+cAdvisor+Grafana配置Docker監控

Docker監控簡介

我們提供的Docker主機和容器越來越多,對Docker伺服器和容器的監控越來越必要。本文將引導你瞭解如何通過多個不同元件的配置和協作,以實現Docker監控。

Docker監控元件

首先, 我們假設在您的主機上已經安裝、配置和執行Docker Engine。請確保您可以通過Web瀏覽器在本地或者通過網路IP連線到Docker主機。以下我們將詳細介紹如何建立我們的Docker監控方案。

cAdvisor: Google開源的用於監控基礎設施應用的工具,它是一個強大的監控工具,不需要任何配置就可以通過執行在Docker主機上的容器來監控Docker容器,而且可以監控Docker主機。更多詳細操作和配置選項可以檢視Github上的cAdvisor專案文件。
influxDB: 它是一個分散式時間序列資料庫。cAdvisor僅僅顯示實時資訊,但是不儲存監視資料。因此,我們需要提供時序資料庫用於儲存cAdvisor元件所提供的監控資訊,以便顯示除實時資訊之外的時序資料。
Grafana: Grafana視覺化展示平臺允許我們視覺化地展示監控資訊。它允許我們對influxDB進行查詢,並通過強大的圖表功能進行視覺化展示。
本文配置元件版本資訊如下:

  • InfluxDB: V 1.0.0
  • cAdvisior: V 0.24.1
  • Grafana: V 4.0.2
    Docker監控安裝與配置

下面,我們將根據上述的Docker監控元件進行安裝和配置,形成統一的Docker監控平臺。

我們將首先先安裝influxDB, 以便於它能夠與cAdvisor進行協作。

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後臺管理,並登入後臺管理系統(預設使用者名稱:root, 預設密碼:root).

influxdb_connection_settings

2.建立cAdvisor應用資料庫

在登入influxdb後臺資料庫管理平臺後, 建立cAdvisor資料庫, 用於儲存cAdvisor應用所獲取的實時監控資料。在influxDB管理介面中的Querie s輸入框中建立資料庫和使用者:

create_database
 建立資料庫
create database
'cadvisor';
建立使用者 CREATE USER 'cadvisor' WITH PASSWORD 'cadvisor' 使用者授權 grant all privileges on 'cadvisor' to 'cadvisor' 授予讀寫許可權 grant WRITE on 'cadvisor' to 'cadvisor' grant READ on 'cadvisor' to 'cadvisor'

3.執行cAdvisor應用容器並與influxDB容器進行互聯

啟動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應用容器啟動成功後,通過Web瀏覽器訪問地址http://docker-host-ip:8080,便可以檢視cAdvisor監控工具所收集到的Docker主機和容器的資源統計資訊。

4.執行Grafana視覺化平臺並與influxDB容器進行互聯

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管理平臺

使用者名稱:admin
密 碼:admin

Grafana_Login
6.配置Grafana與influxDB資料庫連線

(1). 配置Granfana資料來源

在Grafana管理平臺中,單擊“新增資料來源”對資料來源進行配置。如下圖所示。

這裡寫圖片描述

基本資訊
Name:influxdb
Type:influxDB
Default: checked

HTTP Auth
Basic Auth: checked

Basic Auth Details
User: admin
Password: admin

InfluxDB Details
Database:cadvisor
User:cadvisor
Password:cadvisor

配置完成後, 我們已經建立與influxDB的連線,下面我們將其進行測試。

(2). 新增Dashboard

下面我們將使用Grafana配置我們的第一個Dashboard,並可視化來自cAdvisor的監控資料。

1). 點選“Grafana”圖示, 開啟Dashboard選單,選擇新建Dashboard;

這裡寫圖片描述

2). 在Dashboard面板中選擇相應的元件並拖動到相關的位置;

這裡寫圖片描述

3). 點選面板的標題,會彈出相應的選項”view”、”edit”、”Duplicates”、”share”和刪除按扭;
這裡寫圖片描述

4). 選擇”edit”選項,出現相應的配置項,在“Metrics”選項卡中配置相應的資料表和資料來源資訊;
這裡寫圖片描述

例如: 配置記憶體使用率資訊
這裡寫圖片描述

在Metric選項卡中, 配置資料表來源為:SELECT mean(“value”) FROM “memory_usage” WHERE $timeFilter GROUP BY time(10s) fill(0), 配置資料來源Panel Datasource為:cadvisor;

在Axes選項卡中配置相關的顯示單位。

這裡寫圖片描述
5). 配置完相關的選項後,點選Dashboard導航欄的儲存按鈕,便可完成Dashboard的配置。
這裡寫圖片描述

Save Config
至此, 所有配置步驟完成, 我們能夠看到Grafana顯示相關的監控圖表資訊。