(七) DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控...
一、DockerUI
基于DockerAPI實現的鏡像容器倉庫管理
三大優點:
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管理工具,使用過程中涉及到幾個模塊-通訊方式,如下圖:
一: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:54001IE訪問: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 在網頁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端口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/grafanaShipyard:
https://www.shipyard-project.com/
增加宿主機之后可以注冊到etcd里面發現節點后用shipyard進行管理 小規模shipyard還是比較好用的
總結
以上是生活随笔為你收集整理的(七) DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用Python制作王者荣耀出装小助手,
- 下一篇: Delphi 计算儒略日(Julian