天天看點

Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄

目錄

  • 目錄
    • 基礎概念
      • cAdvisor
      • InfluxDB
      • Grafana
    • 鏡像清單
    • 啟動腳本
    • influxdb 設定
    • cAdvisor
    • Grafana 圖形配置
    • 示例圖請右鍵打開新标簽檢視原圖
    • 參考連結

基礎概念

cAdvisor

​ cAdvisor 為Docker容器使用者提供了了解運作時容器資源使用和性能特征的工具。cAdvisor的容器抽象基于Google的lmctfy容器棧,是以原生支援Docker容器并能夠“開箱即用”地支援其他的容器類型。cAdvisor部署為一個運作中的daemon,它會收集、聚集、處理并導出運作中容器的資訊。這些資訊能夠包含容器級别的資源隔離參數、資源的曆史使用狀況、反映資源使用和網絡統計資料完整曆史狀況的柱狀圖。

InfluxDB

InfluxDB 是一個開源分布式時序、事件和名額資料庫。使用 Go 語言編寫,無需外部依賴。其設計目标是實作分布式和水準伸縮擴充.

  • 其主要特色功能
    • 基于時間序列,支援與時間有關的相關函數(如最大,最小,求和等)
    • 可度量性:你可以實時對大量資料進行計算
    • 基于事件:它支援任意的事件資料

​InfluxDB的主要特點

  • 無結構(無模式):可以是任意數量的列可拓展的
  • 支援min, max, sum, count, mean, median 等一系列函數,友善統計
  • 原生的HTTP支援,内置HTTP API
  • 強大的類SQL文法
  • 自帶管理界面,友善使用

Grafana

Graphite 是一款開源的監控繪圖工具。可以實時收集、存儲、顯示時間序列類型的資料(time series data),有些類似Kibana的東西。

​- 以下是官方的說明

  • 用于可視化大型測量資料的開源程式,他提供了強大和優雅的方式去建立、共享、浏覽資料。dashboard中顯示了你不同metric資料源中的資料。
  • 常用于網際網路基礎設施和應用分析,但在其他領域也有機會用到,比如:工業傳感器、家庭自動化、過程控制等等。
  • 有熱插拔控制台和可擴充的資料源,目前已經支援Graphite、Cloudwatch、Prometheus、InfluxDB、Elasticsearch。

鏡像清單

[[email protected] workdir]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
registry            latest              e6ba8c         hours ago         MB
grafana/grafana     .                        weeks ago          MB
jevic.io/nginx      alpine              d964ab5d0abe         weeks ago          MB
google/cadvisor     fejta               fe153dd2defc         weeks ago          MB
jevic.io/cadvisor   fejta               fe153dd2defc         weeks ago          MB
jevic.io/influxdb                   fa42a093e0         months ago         MB
tutum/influxdb                      fa42a093e0         months ago         MB
提示:請勿下載下傳使用 influxdb:latest 鏡像
           

啟動腳本:

[[email protected] workdir]# cat influxdb.sh 
#!/bin/bash
docker service create \
--network jevic-io \
-p : \
-p : \
--mount source=influxdb-vol,type=volume,target=/var/lib/influxdb \
--name=influxdb \
--constraint 'node.hostname==node01' \
jevic.io/influxdb:

[[email protected] workdir]# cat cadvisor.sh 
#!/bin/bash
docker service create \
--network jevic-io \
--name cadvisor \
-p : \
--mode global \  #為每個節點建立一個服務,收集節點docker性能資料
--mount source=/var/run,type=bind,target=/var/run,readonly=false \
--mount source=/,type=bind,target=/rootfs,readonly=true \
--mount source=/sys,type=bind,target=/sys,readonly=true \
--mount source=/var/lib/docker,type=bind,target=/var/lib/docker,readonly=true \
jevic.io/cadvisor:fejta -storage_driver=influxdb -storage_driver_host=influxdb: -storage_driver_db=cadvisor

[[email protected] workdir]# cat grafana.sh 
#!/bin/bash
docker service create \
--network jevic-io \
--name grafana \
#-e "GF_SECURITY_ADMIN_PASSWORD=passwd" \
--constraint 'node.hostname==master' \
-p : \
grafana/grafana:.
           

influxdb 設定

  • 通路 8083端口 使用者名密碼預設都為 root
    Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄
  • 建立資料庫并檢視
    • CREATE DATABASE “cadvisor”
    • SHOW DATABASES
Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄
Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄

cAdvisor

  • cdvisor運作以後,可以通過http://192.168.11.140:8080/ 檢視到Docker運作的機器和容器狀态
    Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄
  • 通過http://192.168.11.140:8080/docker/,可以看到Docker伺服器的基本資訊,如Host、鏡像資料、視窗資料等情況
    Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄

Grafana 圖形配置

  • 運作Grfana容器,通過浏覽器打開http://192.168.11.130:3000,使用者名admin,密碼admin
  • 配置資料源
    Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄

示例圖【請右鍵打開新标簽檢視原圖】

Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄
Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄
Docker 叢集監控平台---cAdvisor-InfluxDB-Grafana目錄

參考連結

  • http://docs.grafana.org
  • https://www.brianchristner.io/how-to-setup-docker-monitoring/
  • https://github.com/google/cadvisor
  • https://github.com/vegasbrianc/docker-monitoring
  • 五個Docker監控工具的對比