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

2023-11-11 01:18

本文主要是介绍DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、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 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

![这里写图片描述](https://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
1


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

这篇关于DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/386568

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,