前言

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个组件,看名字都是非常眼熟的一些组件。

可以将其划分成三个主要部分:

  1. Cluster-Server,File-Server和 OpenAPI-Server 组成的TIEM本身的主体服务,可以理解成用于对其他组件进行封装集成,统一管理的服务。

  2. Elasticsearch,Filebeat 和 Kibana 组成的一套日志文件收集和分析的功能。

  3. 监控告警三件套,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 ManagementClusters ManagementWork Task ManagementSystem 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的功能进来。整体功能大概有这些:

  1. 集群基本状态和配置查询;

  2. 集成Dashboard的性能分析,慢查询和日志分析等;

  3. Grafana 的监控告警配置;

  4. 集群参数的统一查看和修改(这个功能我真的是期待太久了,一直以为会先上Dashboard);

  5. 数据备份和同步工具使用;

  6. 克隆集群。

  7. 集群扩缩容操作。

终于,我再也不用在运维的时候,去 Dashboard,Grafana 和 Terminal 之间反复横跳。另外还有两个页面,一个是数据的导入导出,一个是参数组。

参数组可以设置多套自定义参数模板直接应用到部署的 TiDB 集群中,这个功能是相当的赞!毕竟 TiDB 集群和系统参数太多了,而且每个版本还都有差异。在参数组中已经内置了 TiDB 多个版本的默认参数,比起翻文档可来的快多了!

WorkFlow Task Management

在这个页面,会将所有的工作流进行记录,所谓工作流,就是我们在 TiEM 里面的操作任务,例如导入物理机,创建集群,删除集群等等都会作为一个工作流去执行。所以我们在这个页面能够知道历史的操作记录,还有每个任务的执行详情,是否成功。如果有任务失败了,可以点进去查看任务运行的每一步,具体是到哪一步的时候失败的,方便于我们进行问题排查。

在本次测试集群部署的时候遇到的很多问题,都是通过工作流记录来排查的,很实用的一个功能。

Systems Management

最后一个大模块是系统管理,这个模块和 TiDB 集群没有关系,而是针对于 TiEM 本身的一个管理模块。

很直观就能看到,有三个子页面,System MonitorSystems LogsSystem 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初体验相关推荐

  1. 如何使用云容器搭建基于CentOS7的Hadoop2.x伪分布式环境(CSDN开发者云平台使用初体验)

    文章目录 前言 CSDN开发者云平台 白piao云主机 云容器购买指南 创建过程 安装Hadoop2.x 详细安装步骤如下: 我们先开始配置java环境 hadoop2.x(2022.06.12更新) ...

  2. 大数据平台之初体验 | 网易猛犸 | 数据仓库、调度系统、数据质量、离线与实时计算应有尽有。

    一句话介绍 一站式大数据管理和应用开发平台,具有敏捷易用,成熟稳定,安全可靠,开放灵活的特点. 平台架构 产品功能 1.大规模数据存储与计算 支持不同的存储方案和计算方案,灵活满足客户的需求.支持 H ...

  3. 华为云AI开发平台ModelArts 初体验

    序 近期有机会学习了华为云AI开发平台ModelArts,了解到这是一个面向AI开发者的一站式开发平台,涉及到数据准备和标注,模型训练,部署为上线为在线服务,测试服务等开发全流程.针对不同的开发者有上 ...

  4. 编程刷题平台Codewars初体验-Java

    点此欢迎光临我的个人网站[一几文星球] 最近发现了一个很多网友都在推荐的编程刷题平台Codewars,作为一个对啥都好奇(啥都学不深 )的编程菜鸟,我二话不说直接开始注册体验. 网站一进,嘿,全英文, ...

  5. Starling移动平台开发初体验

    请先配置最新版本的sdk: >> flex_sdk_4.6http://www.adobe.com/devnet/flex/flex-sdk-download.html >> ...

  6. 异构数据库中间件sequoia(c-jdbc)初体验(1.安装试运行)

    老板要俺找个异构多数据库系统,运行起来. 一个周的时间,成果如下: 1.了解当前多库系统的研究情况 2.安装了当前流行的多库中间件sequoia 一.多库系统研究情况 两种体系结构: 1基于数据库引擎 ...

  7. easymock平台语法初体验

    第一个mock接口 {"head": {"version": "11111","bizcode": function({ ...

  8. Mysql数据库(一)——mysql数据库初体验

    Mysql数据库(一)--mysql数据库初体验 一.数据库的概念 1.数据库的组成 ①.表 ②.数据库 2.数据库类型 ①.关系型数据库 ②.非关系型数据库(NoSQL (Not Only SQL) ...

  9. Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验

    Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblog ...

最新文章

  1. ecs安装tomcat和mysql_centos(Linux)系统阿里云ECS搭建 jdk,tomcat和MySQL环境,并部署web程序...
  2. 安装SecureCRT
  3. 使用Python部署机器学习模型的10个实践经验
  4. 奇瑞s61鸿蒙,数码提前曝光,奇瑞新能源 S61 将搭载华为鸿蒙车机系统
  5. 测试嵌套JavaScript对象键的存在
  6. java jar 打包命令行_Java程序命令行打包Jar
  7. 关于使用asp.net调试器出现的问题及相关解决方法
  8. [包计划] node-fs-extra
  9. 模拟真实环境之内网漫游
  10. python连连看小游戏_python实现连连看游戏
  11. 文本相似度、文本匹配、文本聚类
  12. 微信抢红包算法 java_java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo...
  13. 关于城市智慧道路建设的思考
  14. 2022-2027年中国图书馆RFID行业市场深度分析及投资战略规划报告
  15. centos 7重置密码
  16. Springboot毕设项目查听课管理系统zkb6w(java+VUE+Mybatis+Maven+Mysql)
  17. Vivo 监控系统演进之路
  18. 初来乍到,捣鼓捣鼓前端
  19. 亚马逊影响者红人,用关联视频给卖家带来哪些好处?
  20. Android 2⃣️day

热门文章

  1. 观念刷新:蜕变的前提
  2. 记录一次Oo0代码混淆实现方法
  3. gromacs ngmx_Gromacs的DEMO教程中文版
  4. python判断输入的内容是否为一个数字(整数、负数)
  5. iPhone与iWatch连接、控制、数据传递(Swift)
  6. 2021年最新k8s面试题
  7. php微信接口怎么开发,php微信公众平台配置接口开发程序的方法实例详解
  8. 蓝桥杯2017省赛C/C++A组题1迷宫题解(深搜dfs)
  9. android zip中文乱码,Android中解压zip中文乱码处理
  10. linux 访问windows 端口,Linux和Windows下查看端口详解