八 、DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控
来源:互联网 发布:随机森林算法 原理图 编辑:程序博客网 时间:2024/06/12 19:55
一、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管理工具,使用过程中涉及到几个模块-通讯方式,如下图:
一: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 rethinkdbdocker run -ti -d -p 54001:4001 -p 57001:7001 --restart=always --name shipyard-discovery microbox/etcd -name discoverydocker 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:latestdocker run -ti -d --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 etcd://192.168.220.123:54001docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.220.123:2375 etcd://192.168.220.123:54001docker 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有两个节点 一个是自己本身,一个是127docker 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:latestdocker 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![这里写图片描述](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端口
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
Shipyard:
https://www.shipyard-project.com/
增加宿主机之后可以注册到etcd里面发现节点后用shipyard进行管理 小规模shipyard还是比较好用的
- 八 、DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控
- 使用InfluxDB+cAdvisor+Grafana配置Docker监控
- 使用InfluxDB+cAdvisor+Grafana配置Docker监控
- Cadvisor-InfluxDB-Grafana监控实现
- Docker 集群监控平台---cAdvisor-InfluxDB-Grafana
- cAdvisor、InfluxDB、Grafana搭建Docker1.12性能监控平台
- 使用influxdb+cadvisor+grafana的docker镜像搭建一个实时监控系统的环境
- 利用谷歌开源工具cAdvisor 结合influxdb存储+Grafana前端展示进行Docker容器的监控
- 监控 Grafana + collectd + InfluxDB
- ubuntu influxDb + grafana 监控系统
- 开源grafana可视化监控+influxdb
- 利用Metrics+influxdb+grafana构建监控平台
- 使用 Collectd + InfluxDB + Grafana 监控主机
- Influxdb+collectd+grafana搭建现代化监控系统
- grafana 配合influxdb监控的Sql例子
- collectd, influxdb, grafana协同作战,不一样的监控
- 利用Metrics+influxdb+grafana构建监控平台
- 时序数据监控系统Influxdb+Grafana+Fluented
- mac 各种问题汇总
- rocketmq 一主多从 的同步机制
- 分布式锁机制
- python 常用的内置模块使用
- 数位dp 总结 51nod数字1的数量 数字0-9的数量
- 八 、DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控
- 合法回文-计蒜客
- javascript克隆对象
- 从btree的角度来说说为什么插入频繁的mysql innodb表必须要自增id 必须自增id
- 一个bug引发的哲学思考
- select.union all .where.解决方案
- 微服务实战(三):深入微服务架构的进程间通信
- 微服务实战(四):服务发现的可行方案以及实践案例
- mybatis延迟加载