天天看點

(七) DockerUI與Shipyard以及InfluxDB+cAdvisor+Grafana配置監控

一、DockerUI

基于DockerAPI實作的鏡像容器倉庫管理

docker run -d -p 59000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
           

三大優點:

1:可以對運作着的容器進行批量操作

2:在容器網絡中-會顯示容器與容器間的網絡關系

3:在Volumes中顯示了所有挂載目錄

對我目前需求而言,好想dockerui 和 shipyard能和二為一呀。

一個緻命的缺點:

不支援多主機

容我想一下,如果我有N台docker主機時-我就需要一台台的用dockerui進行管理,想想都覺得麻煩。

就單台主機而言,dockerui是一款不錯的管理工具。

二、Shipyard以及docker叢集的監控

介紹一下接下來用到的各元件

1、docker

Docker daemon引擎

2、consul

服務發現和配置共享的服務軟體

3、swarm

基于docker的叢集排程管理軟體,docker 1.2版本中已經自動內建叢集功能了。

4、rethinkdb

RethinkDB是一個完全支援Memcached協定、資料可持久化的工業級key-value存儲系統,它自帶了cluster和web資源管理功能。

5、shipyard

docker可視化資源管理平台

6、registrator

服務自動注冊

7、nginx

web服務代理軟體

8、consultemplate

docker服務自動發現軟體,這個要結合nginx使用,當我們在主控端上啟動一個容器服務時,這時候consultemplate就會自動從consul服務上發現在這個容器,并更新nginx配置檔案。

9、cadvisor

google公司開源的docker容器資源監控軟體。通過主控端的/proc /sys /var/lib/docker等目錄收取容器運作資訊。

10、influxdb

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

11、grafana

圖表展現服務,功能非常強大。

12、graylog+ Elasticsearch

具有報警選項的可插入日志和事件分析伺服器

Shipyard一款WEB界面的docker管理工具,使用過程中涉及到幾個子產品-通訊方式,如下圖:

(七) DockerUI與Shipyard以及InfluxDB+cAdvisor+Grafana配置監控

一:proxy從/var/run/docker.sock這個unixsocket擷取資料,并被動等待swarm-agent查詢

二:swarm-agent通過proxy擷取資料,并向etcd推送

以上兩個 裝在需要被管理的伺服器上

三:etcd被動等待swarm-agent推送Docker主機的注冊資訊

四:swarm-manager使用etcd(shipyard-discovery)擷取基本資料

五:shipyard 跟rethinkdb和swarm-manager進行通訊

官方提供的安裝指令

#123伺服器
docker run -ti -d --restart=always --name shipyard-rethinkdb rethinkdb
docker run -ti -d -p 54001:4001 -p 57001:7001 --restart=always --name shipyard-discovery  microbox/etcd -name discovery
docker run -ti -d -p 2375:2375 --hostname=192.168.220.123 --restart=always --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy:latest
docker run -ti -d --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 etcd://192.168.220.123:54001
docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.220.123:2375 etcd://192.168.220.123:54001
docker run -ti -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm  -p 58081:8080 shipyard/shipyard:latest server -d tcp://swarm:3375
#127伺服器,shipyard有兩個節點 一個是自己本身,一個是127
docker run -ti -d -p 2375:2375 --hostname=192.168.220.127 --restart=always --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy:latest
docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.220.127:2375 etcd://192.168.220.123:54001

IE通路:http://192.168.220.123:58081/
登入:admin/Shipyard

鏡像和容器都自動加載啦,功能子產品:容器、鏡像、節點、倉庫、賬号、事件等,重點在容器和鏡像的管理。
容器-檢視啟動資訊


以及重新開機、停止、暫停、銷毀、重命名、進控制台、複制啟動容器(scale)等操作
當有多個節點時,使用pull images,會在每個節點上都下載下傳images
點評:功能很實用,基本符合實際要求。
           

來,現在開始搞監控

建立influxdb資料庫 用于存cadviser的采集的資料

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 --name influxsrv tutum/influxdb

![這裡寫圖檔描述](http://img.blog.csdn.net/20171112171648536?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTU4MDAzNjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
在網頁API裡面:
CREATE DATABASE "cadvisor" #建庫
CREATE USER "username" WITH PASSWORD 'password' #建使用者           

建立cadvisor采集名額

docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --link influxsrv:influxsrv --name=cadvisor google/cadvisor:latest -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086

再通路主控端8081端口           
(七) DockerUI與Shipyard以及InfluxDB+cAdvisor+Grafana配置監控

cpu 記憶體 網絡 容器資訊 都可以看到了

grafana的展示

docker run -d -p 3000:3000 -e INFLUXDB_HOST=192.168.0.202  -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=influxdb -e INFLUXDB_PASS=influxdb --link influxsrv:influxsrv --name grafana grafana/grafana           
(七) DockerUI與Shipyard以及InfluxDB+cAdvisor+Grafana配置監控

Shipyard:

https://www.shipyard-project.com/

增加主控端之後可以注冊到etcd裡面發現節點後用shipyard進行管理 小規模shipyard還是比較好用的