(七) DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控...
一、DockerUI
基于DockerAPI實(shí)現(xiàn)的鏡像容器倉(cāng)庫(kù)管理
三大優(yōu)點(diǎn):
1:可以對(duì)運(yùn)行著的容器進(jìn)行批量操作
2:在容器網(wǎng)絡(luò)中-會(huì)顯示容器與容器間的網(wǎng)絡(luò)關(guān)系
3:在Volumes中顯示了所有掛載目錄
對(duì)我當(dāng)前需求而言,好想dockerui 和 shipyard能和二為一呀。
一個(gè)致命的缺點(diǎn):
不支持多主機(jī)
容我想一下,如果我有N臺(tái)docker主機(jī)時(shí)-我就需要一臺(tái)臺(tái)的用dockerui進(jìn)行管理,想想都覺(jué)得麻煩。
就單臺(tái)主機(jī)而言,dockerui是一款不錯(cuò)的管理工具。
二、Shipyard以及docker集群的監(jiān)控
介紹一下接下來(lái)用到的各組件
1、docker
Docker daemon引擎
2、consul
服務(wù)發(fā)現(xiàn)和配置共享的服務(wù)軟件
3、swarm
基于docker的集群調(diào)度管理軟件,docker 1.2版本中已經(jīng)自動(dòng)集成集群功能了。
4、rethinkdb
RethinkDB是一個(gè)完全支持Memcached協(xié)議、數(shù)據(jù)可持久化的工業(yè)級(jí)key-value存儲(chǔ)系統(tǒng),它自帶了cluster和web資源管理功能。
5、shipyard
docker可視化資源管理平臺(tái)
6、registrator
服務(wù)自動(dòng)注冊(cè)
7、nginx
web服務(wù)代理軟件
8、consultemplate
docker服務(wù)自動(dòng)發(fā)現(xiàn)軟件,這個(gè)要結(jié)合nginx使用,當(dāng)我們?cè)谒拗鳈C(jī)上啟動(dòng)一個(gè)容器服務(wù)時(shí),這時(shí)候consultemplate就會(huì)自動(dòng)從consul服務(wù)上發(fā)現(xiàn)在這個(gè)容器,并更新nginx配置文件。
9、cadvisor
google公司開(kāi)源的docker容器資源監(jiān)控軟件。通過(guò)宿主機(jī)的/proc /sys /var/lib/docker等目錄收取容器運(yùn)行信息。
10、influxdb
InfluxDB 是一個(gè)開(kāi)源分布式時(shí)序、事件和指標(biāo)數(shù)據(jù)庫(kù)。使用 Go 語(yǔ)言編寫,無(wú)需外部依賴。其設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)分布式和水平伸縮擴(kuò)展。用來(lái)存儲(chǔ)cadvisor的信息。
11、grafana
圖表展現(xiàn)服務(wù),功能非常強(qiáng)大。
12、graylog+ Elasticsearch
具有報(bào)警選項(xiàng)的可插入日志和事件分析服務(wù)器
Shipyard一款WEB界面的docker管理工具,使用過(guò)程中涉及到幾個(gè)模塊-通訊方式,如下圖:
一:proxy從/var/run/docker.sock這個(gè)unixsocket獲取數(shù)據(jù),并被動(dòng)等待swarm-agent查詢
二:swarm-agent通過(guò)proxy獲取數(shù)據(jù),并向etcd推送
以上兩個(gè) 裝在需要被管理的服務(wù)器上
三:etcd被動(dòng)等待swarm-agent推送Docker主機(jī)的注冊(cè)信息
四:swarm-manager使用etcd(shipyard-discovery)獲取基本數(shù)據(jù)
五:shipyard 跟rethinkdb和swarm-manager進(jìn)行通訊
官方提供的安裝命令
#123服務(wù)器 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服務(wù)器,shipyard有兩個(gè)節(jié)點(diǎn) 一個(gè)是自己本身,一個(gè)是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:54001IE訪問(wèn):http://192.168.220.123:58081/ 登錄:admin/Shipyard鏡像和容器都自動(dòng)加載啦,功能模塊:容器、鏡像、節(jié)點(diǎn)、倉(cāng)庫(kù)、賬號(hào)、事件等,重點(diǎn)在容器和鏡像的管理。 容器-查看啟動(dòng)信息以及重啟、停止、暫停、銷毀、重命名、進(jìn)控制臺(tái)、復(fù)制啟動(dòng)容器(scale)等操作 當(dāng)有多個(gè)節(jié)點(diǎn)時(shí),使用pull images,會(huì)在每個(gè)節(jié)點(diǎn)上都下載images 點(diǎn)評(píng):功能很實(shí)用,基本符合實(shí)際要求。來(lái),現(xiàn)在開(kāi)始搞監(jiān)控
創(chuàng)建influxdb數(shù)據(jù)庫(kù) 用于存cadviser的采集的數(shù)據(jù)
docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 --name influxsrv tutum/influxdb 在網(wǎng)頁(yè)API里面: CREATE DATABASE "cadvisor" #建庫(kù) CREATE USER "username" WITH PASSWORD 'password' #建用戶創(chuàng)建cadvisor采集指標(biāo)
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再訪問(wèn)宿主機(jī)8081端口cpu 內(nèi)存 網(wǎng)絡(luò) 容器信息 都可以看到了
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/grafanaShipyard:
https://www.shipyard-project.com/
增加宿主機(jī)之后可以注冊(cè)到etcd里面發(fā)現(xiàn)節(jié)點(diǎn)后用shipyard進(jìn)行管理 小規(guī)模shipyard還是比較好用的
總結(jié)
以上是生活随笔為你收集整理的(七) DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 利用Python制作王者荣耀出装小助手,
- 下一篇: Delphi 计算儒略日(Julian