TiDB数据库管控平台——TiEM初体验
前言
TiDB 从 4.0 开始推出 TiUP 对 TiDB 集群进行安装部署和运维操作,极大程度的降低了 TiDB 集群的管控复杂度。然而 TiUP 作为一款命令行工具仍然无法完全满足很多人的需求,能不能再简单点呀?能不能有个UI界面操作下呀?能不能有个图片看看集群情况呀?能不能一键就完成部署啊?能不能点点点就能自动数据迁移和备份还原等等等?
甲方的需求总是那么的变态但又显得好像很合理的样子,终于 PingCAP 宣布要推出一款 TiDB 管理的界面工具了 —— TiEM,上述的需求好像真的就实现了。
于是满怀好奇和期待的我,立马通过官方渠道发出了试用申请!很快啊,拉群,发安装包,手把手教学,几天不到,就完成了整个TiEM的试用体验。包括安装部署TiEM工具,导入配置,一键部署,集群操作,数据迁移备份等等,体验还是相当不错滴!
所以下面给大家分享一下 TiEM 工具的体验过程。
TiEM架构
TiEM是支持在线和离线安装的,但是由于目前还没有开放相关的地址,所以试用版是发的gz压缩包,还包括配套文件。整个文件900M左右。
安装部署的详细过程这里就不一一截图详述了,直接看看部署后的EM架构。
TiEM虽然只是一个可视化TiDB集群管理工具,但是本身的架构和TiDB类似,包含非常多的组件,管理TiEM就感觉像在管理TiDB集群一样。可以看出来TiEM的目标可远远不只是一个管理工具这么简单,未来肯定会根据需求,添加越来越多的组件和服务。
目前TiEM集群一共包含AlterManager,Cluster-Server,Elasticsearch,File-Server,Filebeat,OpenAPI-Server,Jaeger,Kibana,Nginx,Grafana和 Prometheus等11个组件,看名字都是非常眼熟的一些组件。
可以将其划分成三个主要部分:
Cluster-Server,File-Server和 OpenAPI-Server 组成的TIEM本身的主体服务,可以理解成用于对其他组件进行封装集成,统一管理的服务。
Elasticsearch,Filebeat 和 Kibana 组成的一套日志文件收集和分析的功能。
监控告警三件套,Grafana,Prometheus 和 AlterManager。
最后还有一个 Jaeger 是用于整体服务调用链路的追踪和分析,毕竟服务太多了。对于这些组件如果感兴趣可以单独去了解一下,而由这些组件组成的TiEM整体架构大致如下:
最上层是TiEM UI,可视化界面,通过OpenAPI-Server,和File-Server来获取数据,而中间Business Model 也就是实现TiEM管理层面,将下层的基础设施,进行统一封装和管理,当然这里面也包括自身的管理,例如用户,主机,集群的管理等等。TiEM同时也会封装TiUP的所有操作,可以简单理解成将TiUP操作可视化,而TiUP那一套这里也不做赘述了。
最下层的基础设施中除了我们刚刚在上面看到的一些组件外,还包含有Sqlite(轻量级数据库)和一个ETCD(高可用数据库),代表下层也是会做一定的高可用。其中Sqlite我理解是用于存一部分的辅助数据,目前还不清楚具体是怎么进行数据的分类和存放。
整个架构是非常清晰明了的四层架构,基础设置 —> 服务集成和封装 —> 公开接口 —> 前端展示。
TiEM功能模块
来到大家最关心的部分,就是TiEM的使用。在使用之前,因为目前TiEM的部分功能没有具体实现,所以在部署完成后,需要直接访问OpenAPI来进行初始化,初始化的过程中有两步比较重要。第一步导入主机的规格模板,方便于后期部署的时候,可以给每个TiDB节点选择相应的规格,例如CPU和内存等。第二步是添加TiDB产品,配置每个组件的相关参数的范围,同样是为了创建TiDB集群的时候可以选择部署的组件。
完成初始化后,就可以使用内置默认的账号密码登录主页。整个页面风格类似 Dashboard,从左边的菜单栏,可以看到整个系统一共具有四个功能模块:Resources Management, Clusters Management,Work Task Management 和 System Management.
Resources Management
主机资源管理,用于所有的虚拟机和物理机管理,可以视作为资源池。通过导入功能,将现有的机器资源导入到资源池中,那么后面在一键部署TiDB集群的时候,会通过现有的资源池中,选择合适的机器用于部署相应的节点。
选择合适的机器,主要依靠的是导入主机时给每个主机所定义的标签(Purpose),有三种标签,分别是 Compute(TiDB-Server),Storage(TiKV or TiFlash),Schedule(PD)。
Clusters Management
TiDB集群管理的功能模块。下面有三个子页面,分别是Clusters,Import&Export 和 Parameter Groups。
Clusters可以创建并管理集群,下图是我通过上面的三台主机搭建的一个测试集群。在这个页面,你可以看到该集群的基本信息,同时还集成了TiDB Dashboard和Grafana的功能进来。整体功能大概有这些:
集群基本状态和配置查询;
集成Dashboard的性能分析,慢查询和日志分析等;
Grafana 的监控告警配置;
集群参数的统一查看和修改(这个功能我真的是期待太久了,一直以为会先上Dashboard);
数据备份和同步工具使用;
克隆集群。
集群扩缩容操作。
终于,我再也不用在运维的时候,去 Dashboard,Grafana 和 Terminal 之间反复横跳。另外还有两个页面,一个是数据的导入导出,一个是参数组。
参数组可以设置多套自定义参数模板直接应用到部署的 TiDB 集群中,这个功能是相当的赞!毕竟 TiDB 集群和系统参数太多了,而且每个版本还都有差异。在参数组中已经内置了 TiDB 多个版本的默认参数,比起翻文档可来的快多了!
WorkFlow Task Management
在这个页面,会将所有的工作流进行记录,所谓工作流,就是我们在 TiEM 里面的操作任务,例如导入物理机,创建集群,删除集群等等都会作为一个工作流去执行。所以我们在这个页面能够知道历史的操作记录,还有每个任务的执行详情,是否成功。如果有任务失败了,可以点进去查看任务运行的每一步,具体是到哪一步的时候失败的,方便于我们进行问题排查。
在本次测试集群部署的时候遇到的很多问题,都是通过工作流记录来排查的,很实用的一个功能。
Systems Management
最后一个大模块是系统管理,这个模块和 TiDB 集群没有关系,而是针对于 TiEM 本身的一个管理模块。
很直观就能看到,有三个子页面,System Monitor,Systems Logs 和 System Tracer。用户可以通过系统监控,日志分析和调用链路追踪三个维度去查看整个 TiEM 系统目前的运行状态,基本是全方位的工具都用上了。如果 TiEM 系统层面出现任何问题,通过这些来进行排查会非常的方便。
那么作为一个 DBA 也可以简单的将 TiEM 作为一个特殊的 “TiDB Cluster” 来进行日常运维和问题排查。
体验感想
体验 TiEM 平台,虽然还有部分高级功能没有测试到,但是基本的功能都走了一遍(这里很感谢 PingCAP 的技术支持人员,非常耐心的解答了很多问题)。抛开内部功能的具体实现不说,单纯就集成 TiDB 众多周边工具的统一平台,其实意义已经非常大了。何况 TiEM 的功能实现基本也都满足了我的预期,部分功能甚至超出了我的预期,例如像工作流和参数组的功能。
大致的一些功能在上文都给大家介绍了一遍,下面谈谈TiEM这个平台目前1.0.0版本还有那些不足和我的小建议。
初始化集群时的页面操作,这一块目前是 curl 手动调 OpenAPI 完成的,后期应该会很快就补上前端页面;
TiEM 本身的用户组模块,目前只有内置管理员,通过交流了解,已经设计了一套基于 RBAC 模型的权限管理,下个版本应该会推出;
在资源管理页面中,对于导入的主机配置无法进行修改,只能导入和删除,如果机器发生变化或者导入失败,只能删除再重新导入;
一键部署时无法为TiDB节点选择指定机器,只能设置Purpose标签,系统自动按照Purpose选择机器。同时一个挂载盘只允许一个节点,也就是一台机器上如果你想要多个节点,必须给每个节点配置一个挂载盘。这两点在部署时比较僵硬,很难满足各种部署场景;
工作流中,没有重放或者重试的功能,例如我某一系列操作,中间出现问题失败了,解决这个问题之后,我需要重新操作一遍。如果对于这个工作流,能够直接重放或者重试会好很多;
建议在主机管理页面,增加一个连接到服务器终端的功能,通过这个功能可以在页面对服务器进行一些指令操作。方便后面如果排查出服务器相关问题,能够直接登上去操作。
当然除此之外,还有遇到了一些小bug,都已经反馈给技术人员了,帮助他们完善 TiEM 产品。在这一波体验之后,我对 TiEM 这个平台的正式发布可以说是相当期待的,同时更期待的是,会不会进行开源呢?让咱们也能给这个 TiEM 平台添砖加瓦。
TiDB数据库管控平台——TiEM初体验相关推荐
- 如何使用云容器搭建基于CentOS7的Hadoop2.x伪分布式环境(CSDN开发者云平台使用初体验)
文章目录 前言 CSDN开发者云平台 白piao云主机 云容器购买指南 创建过程 安装Hadoop2.x 详细安装步骤如下: 我们先开始配置java环境 hadoop2.x(2022.06.12更新) ...
- 大数据平台之初体验 | 网易猛犸 | 数据仓库、调度系统、数据质量、离线与实时计算应有尽有。
一句话介绍 一站式大数据管理和应用开发平台,具有敏捷易用,成熟稳定,安全可靠,开放灵活的特点. 平台架构 产品功能 1.大规模数据存储与计算 支持不同的存储方案和计算方案,灵活满足客户的需求.支持 H ...
- 华为云AI开发平台ModelArts 初体验
序 近期有机会学习了华为云AI开发平台ModelArts,了解到这是一个面向AI开发者的一站式开发平台,涉及到数据准备和标注,模型训练,部署为上线为在线服务,测试服务等开发全流程.针对不同的开发者有上 ...
- 编程刷题平台Codewars初体验-Java
点此欢迎光临我的个人网站[一几文星球] 最近发现了一个很多网友都在推荐的编程刷题平台Codewars,作为一个对啥都好奇(啥都学不深 )的编程菜鸟,我二话不说直接开始注册体验. 网站一进,嘿,全英文, ...
- Starling移动平台开发初体验
请先配置最新版本的sdk: >> flex_sdk_4.6http://www.adobe.com/devnet/flex/flex-sdk-download.html >> ...
- 异构数据库中间件sequoia(c-jdbc)初体验(1.安装试运行)
老板要俺找个异构多数据库系统,运行起来. 一个周的时间,成果如下: 1.了解当前多库系统的研究情况 2.安装了当前流行的多库中间件sequoia 一.多库系统研究情况 两种体系结构: 1基于数据库引擎 ...
- easymock平台语法初体验
第一个mock接口 {"head": {"version": "11111","bizcode": function({ ...
- Mysql数据库(一)——mysql数据库初体验
Mysql数据库(一)--mysql数据库初体验 一.数据库的概念 1.数据库的组成 ①.表 ②.数据库 2.数据库类型 ①.关系型数据库 ②.非关系型数据库(NoSQL (Not Only SQL) ...
- Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验
Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblog ...
最新文章
- ecs安装tomcat和mysql_centos(Linux)系统阿里云ECS搭建 jdk,tomcat和MySQL环境,并部署web程序...
- 安装SecureCRT
- 使用Python部署机器学习模型的10个实践经验
- 奇瑞s61鸿蒙,数码提前曝光,奇瑞新能源 S61 将搭载华为鸿蒙车机系统
- 测试嵌套JavaScript对象键的存在
- java jar 打包命令行_Java程序命令行打包Jar
- 关于使用asp.net调试器出现的问题及相关解决方法
- [包计划] node-fs-extra
- 模拟真实环境之内网漫游
- python连连看小游戏_python实现连连看游戏
- 文本相似度、文本匹配、文本聚类
- 微信抢红包算法 java_java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo...
- 关于城市智慧道路建设的思考
- 2022-2027年中国图书馆RFID行业市场深度分析及投资战略规划报告
- centos 7重置密码
- Springboot毕设项目查听课管理系统zkb6w(java+VUE+Mybatis+Maven+Mysql)
- Vivo 监控系统演进之路
- 初来乍到,捣鼓捣鼓前端
- 亚马逊影响者红人,用关联视频给卖家带来哪些好处?
- Android 2⃣️day
热门文章
- 观念刷新:蜕变的前提
- 记录一次Oo0代码混淆实现方法
- gromacs ngmx_Gromacs的DEMO教程中文版
- python判断输入的内容是否为一个数字(整数、负数)
- iPhone与iWatch连接、控制、数据传递(Swift)
- 2021年最新k8s面试题
- php微信接口怎么开发,php微信公众平台配置接口开发程序的方法实例详解
- 蓝桥杯2017省赛C/C++A组题1迷宫题解(深搜dfs)
- android zip中文乱码,Android中解压zip中文乱码处理
- linux 访问windows 端口,Linux和Windows下查看端口详解