当前位置: 代码迷 >> 综合 >> 第十七天 黑马十次方 Rancher、influxDB、cAdvisor、Grafana
  详细解决方案

第十七天 黑马十次方 Rancher、influxDB、cAdvisor、Grafana

热度:31   发布时间:2024-02-09 16:11:57.0

第10章-容器管理与容器监控

学习目标:

**
能够说出Rancher软件的作用,能够在Rancher中部署微服务
能够说出influxDB的作用,能够创建数据库、用户、赋予权限
能够说出cAdvisor 的作用,能够创建容器与influxDB连接
能够说出Grafana 的作用,能够使用Grafana监控容器的内存数据,并配置警告**

1 容器管理工具Rancher

1.1 什么是Rancher

  Rancher是一个开源的企业级全栈化容器部署及管理平台。Rancher为容器提供一揽 子基础架构服务:CNI兼容的网络服务、存储服务、主机管理、负载均衡、防护墙…… Rancher让上述服务跨越公有云、私有云、虚拟机、物理机环境运行,真正实现一键式应 用部署和管理。 https://www.cnrancher.com/ 

1.2 Rancher安装

(1)下载Rancher 镜像

docker pull rancher/server

(2)创建Rancher容器

docker run ‐d ‐‐name=rancher ‐‐restart=always ‐p 9090:8080 rancher/server

restart为重启策略
no,默认策略,在容器退出时不重启容器
on-failure,在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3,在容器非正常退出时重启容器,最多重启3次
always,在容器退出时总是重启容器
unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动 时就已经停止了的容器
(3)在浏览器输入地址: http://192.168.184.136:9090 即可看到高端大气的欢迎页
在这里插入图片描述
点击Got It 进入主界面
在这里插入图片描述
(4)切换至中文界面
点击右下角的English 在弹出菜单中选择中文
在这里插入图片描述
切换后我们就可以看到亲切的中文界面啦~
在这里插入图片描述

1.3 Rancher初始化

1.3.1 添加环境
Rancher 支持将资源分组归属到多个环境。 每个环境具有自己独立的基础架构资源及服 务,并由一个或多个用户、团队或组织所管理。
例如,您可以创建独立的“开发”、“测试”及“生产”环境以确保环境之间的安全隔离,将“开 发”环境的访问权限赋予全部人员,但限制“生产”环境的访问权限给一个小的团队。
(1)选择“Default -->环境管理” 菜单
在这里插入图片描述
(2)填写名称,点击“创建”按钮
在这里插入图片描述
(3)按照上述步骤,添加十次方测试环境和生产环境
在这里插入图片描述
(4)你可以通过点击logo右侧的菜单在各种环境下切换
在这里插入图片描述
1.3.2 添加镜像库
192.168.184.135
1.3.3 添加主机
(1)选择基础架构–>主机 菜单,点击添加主机
在这里插入图片描述
(2)拷贝脚本
在这里插入图片描述
(3)在服务器(虚拟机)上运行脚本
在这里插入图片描述
(4)点击关闭按钮后,会看到界面中显示此主机。我们可以很方便地管理主机的每个容 器的开启和关闭
在这里插入图片描述
1.3.4 添加应用
点击应用–>全部(或用户) ,点击“添加应用”按钮
在这里插入图片描述
填写名称和描述
在这里插入图片描述
点击“创建”按钮,列表中增加了新增的应用
在这里插入图片描述

1.4 应用部署

1.4.1 MySQL部署
镜像:centos/mysql-57-centos7 增加数据库服务
在这里插入图片描述
注意:添加环境变量 MYSQL_ROOT_PASSWORD=123456
在这里插入图片描述
点击创建按钮,完成创建 上述操作相当于以下docker命令

docker run ‐di ‐‐name mysql ‐p 3306:3306 ‐e MYSQL_ROOT_PASSWORD=123456 centos/mysql‐57‐centos7

在这里插入图片描述
完成后服务列表中存在并且状态为激活 使用SQLyog测试链接,执行建表语句
1.4.2 RabbitMQ部署
镜像:rabbitmq:management 端口映射5671 5672 4369 15671 15672 25672
在这里插入图片描述
浏览器访问 http://192.168.184.136:15672/
1.4.3 Redis部署 (学员实现)
进入应用,点击添加服务 名称redis ,镜像redis ,端口映射6379
在这里插入图片描述
创建后使用客户端测试链接

redis‐cli ‐h 192.168.184.136

测试成功
1.4.4 MongoDB部署(学员实现)
名称mongo 镜像mongo 端口映射27017
1.4.5 ElasticSearch部署(学员实现)
名称elasticsearch 镜像elasticsearch:5.6.8 端口映射9300 9200
添加后,浏览器测试: http://192.168.184.136:9200/

1.5 微服务容器部署

1.5.1 Eureka微服务容器化部署
(1)在用户应用界面中点击“添加服务”
在这里插入图片描述
(2)填写名称、描述、镜像和端口映射,点击创建按钮
名称eureka 镜像 192.168.184.135:5000/tensquare_eureka:1.0-SNAPSHOT
在这里插入图片描述
(3)服务添加成功
在这里插入图片描述
(4)我们现在访问以下我们的系统
http://192.168.184.136:6868/ 可以正常访问
1.5.2 配置中心微服务部署
创建容器
添加服务config 镜像 192.168.184.135:5000/tensquare_config:1.0-SNAPSHOT
映射端口:12000
测试 浏览器输入 http://192.168.184.135:12000/base-dev.yml 可以查看到配置文件内 容
1.5.3 基础微服务部署
(1)添加服务base-service 镜像tensquare_base:1.0-SNAPSHOT 端口映射9001
在这里插入图片描述
(2)测试微服务 浏览器打开网址 http://192.168.184.136:9001/label 看是否可以看 到标签列表

1.6 扩容与缩容

1.6.1 扩容
(1)在Rancher将创建的base-service(基础信息微服务)删除 (2)重新创建base-service ,不设置端口映射
在这里插入图片描述
(3)在选择菜单API -->WebHooks ,点击“添加接收器”按钮
在这里插入图片描述
(4)填写名称等信息,选择要扩容的服务,点击创建按钮
在这里插入图片描述
(5)接收器列表中新增了一条记录 ,点击触发地址将地址复制到剪切板
在这里插入图片描述
(6)使用postman测试:
在这里插入图片描述
测试后,发现容器由原来的1个变为了3个
在这里插入图片描述
打开erueka,发现服务也有3个
在这里插入图片描述
1.6.2 缩容
刚才我们实现了扩容,那么如何减少容器数量呢?我们来试试如何缩容 (1)添加接收器 ,选择缩容,步长为1表示每次递减1个 ,点击创建按钮
在这里插入图片描述
(2)创建成功后,复制触发地址
在这里插入图片描述
(3)使用postman测试
在这里插入图片描述

2 influxDB

2.1 什么是influxDB

  influxDB是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储 监视数据。因此,我们需要提供时序数据库用于存储cAdvisor组件所提供的监控信息, 以便显示除实时信息之外的时序数据。 

2.2 influxDB安装

(1)下载镜像

docker pull tutum/influxdb

(2)创建容器

docker run ‐di \ ‐p 8083:8083 \ ‐p 8086:8086 \ ‐‐expose 8090 \ ‐‐expose 8099 \ ‐‐name influxsrv \ tutum/influxdb

端口概述: 8083端口:web访问端口 8086:数据写入端口 打开浏览器 http://192.168.184.135:8083/
在这里插入图片描述

2.3 influxDB常用操作

2.3.1 创建数据库

CREATE DATABASE "cadvisor"

回车创建数据库

SHOW DATABASES

查看数据库
2.3.2 创建用户并授权
创建用户

CREATE USER "cadvisor" WITH PASSWORD 'cadvisor' WITH ALL PRIVILEGES

查看用户

SHOW USRES

用户授权

grant all privileges on cadvisor to cadvisor 
grant WRITE on cadvisor to cadvisor 
grant READ on cadvisor to cadvisor

2.3.3 查看采集的数据
切换到cadvisor数据库,使用以下命令查看采集的数据

SHOW MEASUREMENTS

现在我们还没有数据,如果想采集系统的数据,我们需要使用Cadvisor软件来实现

3 cAdvisor

3.1 什么是cAdvisor

  Google开源的用于监控基础设施应用的工具,它是一个强大的监控工具,不需要任 何配置就可以通过运行在Docker主机上的容器来监控Docker容器,而且可以监控Docker 主机。更多详细操作和配置选项可以查看Github上的cAdvisor项目文档。 

3.2 cAdvisor安装

(1)下载镜像

docker pull google/cadvisor

(2)创建容器

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 ‐storage_driver=influxdb ‐storage_driver_db=cadvisor ‐ storage_driver_host=influxsrv:8086

WEB前端访问地址
http://192.168.184.135:8080/containers/
性能指标含义参照如下地址 https://blog.csdn.net/ZHANG_H_A/article/details/53097084
再次查看influxDB,发现已经有很多数据被采集进去了。

4 Grafana

4.1 什么是Grafana

  Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功 能齐全的度量仪表盘和图形编辑器。支持Graphite、zabbix、InfluxDB、Prometheus和 OpenTSDB作为数据源。 Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式; 多个数据源。 

4.2 Grafana安装

(1)下载镜像

docker pull grafana/grafana

(2)创建容器

docker run ‐d ‐p 3001:3000 ‐e INFLUXDB_HOST=influxsrv ‐e INFLUXDB_PORT=8086 ‐e INFLUXDB_NAME=cadvisor ‐e INFLUXDB_USER=cadvisor ‐e INFLUXDB_PASS=cadvisor ‐‐link influxsrv:influxsrv ‐‐name grafana grafana/grafana

(3)访问

http://192.168.184.135:3001

用户名密码均为admin
在这里插入图片描述
(4)登录后提示你修改密码
在这里插入图片描述
(5)之后进入主页面
在这里插入图片描述

4.3 Grafana的使用

4.3.1 添加数据源
(1)点击设置,DataSource
在这里插入图片描述
(2)点击添加data source
在这里插入图片描述
(3)为数据源起个名称,指定类型、地址、以及连接的数据库名、用户名和密码
在这里插入图片描述
点击保存。数据源建立成功
在这里插入图片描述
4.3.2 添加仪表盘
(1)选择Dashboards --Manager
在这里插入图片描述
(2)点击“添加”按钮
(3)点击Graph 图标
在这里插入图片描述
(4)出现下面图表的界面 ,点击Panel Title 选择Edit (编辑)
在这里插入图片描述
(5)定义标题等基础信息
在这里插入图片描述
(6)设置查询的信息为内存,指定容器名称
在这里插入图片描述
(7)指定y轴的单位 为M
在这里插入图片描述
(8)保存
在这里插入图片描述
填写名称
在这里插入图片描述
4.4.3 预警通知设置
(1)选择菜单 alerting–> Notification channels
在这里插入图片描述
(2)点击Add channel 按钮
在这里插入图片描述
(3)填写名称,选择类型为webhook ,填写钩子地址
在这里插入图片描述
这个钩子地址是之前对base微服务扩容的地址
在这里插入图片描述
(4)点击SendTest 测试 观察基础微服务是否增加容器
(5)点击save保存
(6)按照同样的方法添加缩容地址
4.4.4 仪表盘预警设置
(1)再次打开刚刚编辑的仪表盘
在这里插入图片描述
(2)点击 Create Alert
在这里插入图片描述
设置预警线
(3)选择通知
在这里插入图片描述
在这里插入图片描述
保存更改

  相关解决方案