天天看點

Docker容器可視化監控中心搭建

概述

一個主控端上可以運作多個容器化應用,容器化應用運作于主控端上,我們需要知道該容器的運作情況,包括 CPU使用率、記憶體占用、網絡狀況以及磁盤空間等等一系列資訊,而且這些資訊随時間變化,我們稱其為時序資料,本文 将實操 如何搭建一個可視化的監控中心 來收集這些承載着具體應用的容器的時序資訊并可視化分析與展示!

準備鏡像

  • adviser:負責收集容器的随時間變化的資料
  • influxdb:負責存儲時序資料
  • grafana:負責分析和展示時序資料

部署Influxdb服務

可以将其視為一個資料庫服務,其确實用于存儲資料。之是以選用該資料庫,原因正如官網所說:

Open Source Time Series DB Platform for Metrics & Events (Time Series Data)

下面我們将該服務部署起來

docker run -d -p 8086:8086 \
-v ~/influxdb:/var/lib/influxdb \
--name influxdb tutum/influxdb
           
  • 進入influxdb容器内部,并執行influx指令:
docker exec -it influxdb influx
           
  • 建立資料庫test和root使用者用于本次試驗測試
CREATE DATABASE "test"            
CREATE USER "root" WITH PASSWORD 'root' WITH ALL PRIVILEGES            

部署cAdvisor服務

谷歌的cadvisor可以用于收集Docker容器的時序資訊,包括容器運作過程中的資源使用情況和性能資料。

  • 運作cadvisor服務
docker run -d \
-v /:/rootfs -v /var/run:/var/run -v /sys:/sys \ -v /var/lib/docker:/var/lib/docker \ --link=influxdb:influxdb --name cadvisor google/cadvisor:v0.27.3 \ --storage_driver=influxdb \ --storage_driver_host=influxdb:8086 \ --storage_driver_db=test \ --storage_driver_user=root \ --storage_driver_password=root            

特别注意項:

在運作上述docker時,這裡有可能兩個其他配置項需要添加(CentOS, RHEL需要):

  • --privileged=true

設定為true之後,容器内的root才擁有真正的root權限,可以看到host上的裝置,并且可以執行mount;否者容器内的root隻是外部的一個普通使用者權限。由于cadvisor需要通過socket通路docker守護程序,在CentOs和RHEL系統中需要這個這個選項。

  • --volume=/cgroup:/cgroup:ro

對于CentOS和RHEL系統的某些版本(比如CentOS6),cgroup的層級挂在/cgroup目錄,是以運作cadvisor時需要額外添加–volume=/cgroup:/cgroup:ro選項。

部署Grafana服務

grafana則是一款開源的時序資料分析工具,而且界面專業易用,等下等部署好了,大家就能感受到:

docker run -d -p 5000:3000 \
-v ~/grafana:/var/lib/grafana \ --link=influxdb:influxdb \ --name grafana grafana/grafana            

至此3個容器都已經啟動了:

下面開始具體實驗了

實戰

  • 通路grafana服務

打開localhost:5000來通路grafana的web服務,此時提示你需要登入,注意使用者名和密碼都是

admin

登入後可以看到grafana的首頁面:

看的很明顯,在Grafana上有好幾個步驟需要做,這裡

Install Grafana

已經完成了,接下來我們需要:

  • Add data source
  • Create dashboard
  • …...
  • Add Data Source

點選Add data source進入

然後主要是Setting頁籤設定

我們需要根據實際情況來填寫各項内容:

Data source添加成功會予以提示

資料源添加完成以後,我們需要添加儀表盤(Dashboard)

  • Add Dashboard

點選Add dashboard進入

這裡有很多類型的儀表盤供選擇,我們選用最常用的Graph就好

進入之後,點選Panel Title下拉清單,再選擇Edit進行編輯即可

在Edit裡面主要的就是需要添加查詢的條件,繼續看下文

  • Add Query Editor

查詢條件中我們可以選擇要監控的名額:

這裡選一個memory usage好了,然後要監控的容器選擇grafana自身好了。

當然這裡不止可以監控一個名額,也不止可以監控一個容器,更多組合我們隻需要在下面并列着一個一個添加query條目就好!

最後我添加了三個監控條件,分别用于監控grafana、influxdb和cadvisor三個容器的memory usage名額,并将其同時顯示于圖中,怎麼樣是不是很直覺!

這裡可以摸索的設定項還有很多,比如一些坐标自定義、顯示政策自定義,甚至我們還可以自定義報警政策等等

本文轉自掘金-

Docker容器可視化監控中心搭建