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