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指標,並將其同時顯示於圖中,怎麼樣是不是很直觀!
這裡可以摸索的設置項還有很多,比如一些坐標自定義、顯示策略自定義,甚至我們還可以自定義報警策略等等
後記
- 作者更多的原創文章在Mooc
作者一些其他容器化應用方面的文章:
- 利用K8S技術棧打造個人私有雲系列連載文章
- 利用ELK搭建Docker容器化應用日誌中心
作者: hansonwang99
鏈接:https://www.imooc.com/article/26278
來源:慕課網
本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作
推薦閱讀:
打造個人品牌 so easy !_慕課手記
Go 100來行代碼創建自己的靜態伺服器
開發基於以太坊的DApp,都要會哪些技能?
【Kotlin中使用Dagger2】基礎入門篇(一)
在Docker的助攻下,2018年將是Kubernetes之年
推薦閱讀:
※移動端 IP 優選方案
※OpenStack、CloudStack、Eucalyptus和vCloud Director四大主流雲平台怎麼選?
※一個高速LVS-DR替代系統設計 -- 基於dpdk的高性能負載均衡器
※360°透視:雲原生架構及設計原則
※雲計算:敢問路在何方