(七) DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 一、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能和二为一呀。

一、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管理工具,使用过程中涉及到几个模块-通讯方式,如下图:

image

一: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端口

image

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

image

Shipyard:
https://www.shipyard-project.com/
增加宿主机之后可以注册到etcd里面发现节点后用shipyard进行管理 小规模shipyard还是比较好用的

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
3月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
385 3
|
2月前
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
123 20
|
2月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
167 7
|
2月前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
258 3
|
3月前
|
数据采集 Prometheus 监控
监控堆外第三方监控工具Grafana
监控堆外第三方监控工具Grafana
80 5
|
3月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
360 0
|
6月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之Grafana安装与配置
prometheus学习笔记之Grafana安装与配置
|
6月前
|
Prometheus 监控 数据可视化
Grafana 插件生态系统:扩展你的监控能力
【8月更文第29天】Grafana 是一个流行的开源平台,用于创建和共享统计数据的仪表板和可视化。除了内置的支持,Grafana 还有一个强大的插件生态系统,允许用户通过安装插件来扩展其功能。本文将介绍一些 Grafana 社区提供的插件,并探讨它们如何增强仪表盘的功能性。
403 1
|
6月前
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
629 1
|
5月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
512 0