黄东旭解析 TiDB 的核心优势
469
2024-03-27
TiHC 为 TiDB 爱好者开发工具,属于个人行为与 PingCAP 官方无关,请谨慎使用;
TiHC 现阶段作者定义为 Alpha 版本,因此存在诸多 BUG 与不完善,生产环境请谨慎使用,如导致任何损失与作者无关;
TiHC 的发版将在 Github 完成,鉴于国内用户可能由于 “科学上网” 原因无法登录 Github,作者还会同步在 Gitee 更新代码;
本篇文章的目的是希望 TiDB 爱好者初步体验 TiHC ,作者认为一个好用、有价值的工具软件不应该限于作者的个人脑补,而应切合真实的使用场景。因此,希望得到各位爱好者的宝贵意见并对 TiHC 不断加以改进。
鉴于声明 4 ,如果大家反馈 TiHC 没有使用价值,作者会果断终止丰富该工具的行为,欢迎文章留言。
TiHC (TiDB Healthy Check) 是一个开源的、基于 rust 构建的 TiDB 巡检工具,目的是为缩短巡检时间,提高交付效率。与传统 ***、MySQL 等巡检工具使用 SQL 采集对应内存表、操作系统指标,最终生成 Html 巡检报告不同。因为 TiDB 排查问题的方法论基于 Grafana 监控指标构建,tihc 借鉴 TiDB 官方工具 tiup 分发 ssh 的原理,分布式采集各节点信息并整合 grafana 监控,最终生成可交付的巡检 Office Doc 文件。
TiHC 的作用 :
1. 对于 TiDB DBA 角色,节约 TiDB 巡检过程中大量可模版化工作;
2. 对于 Others DBA 角色,提供一套针对 TIDB 健康检查的简单方法;
Tips : TiHC 不期望探究所有性能细节,仅关注 TiDB 读写请求流中较为常见、重要的组件监控进行采集与分析。详细的根因分析还是需 Grafana 各组件配合分析、定论。
TiHC 价值何在 :
1. 作为非甲方 DBA 而言,存在巡检后需为客户出具巡检报告的工作场景,如果巡检的数据库是 TiDB ,那么 TiHC 可以为你缩短大量编写文档的时间,专心依据 Grafana 检查客户集群是否有问题便可;
2. 作为 TiDB 小白巡检 TIDB 数据库时,由于 TiDB 非按照常理的、非内存表信息、等待事件的巡检方法论经常导致手足无措,那么 TiHC 期望巡检报告从上至下浏览完后,可以列出很多预设的问题对常见风险简单预、判定、学习; 3.对 TiDB 巡检而言,据作者所知还处于一个依据 DBA 经验巡检阶段,即:不同 DBA 对 TIDB 的认识不同,巡检时侧重点也不同。这将会导致交付报告的给规范化,而 *** 由于强大的应用生态,很多爱好者写出来的巡检报告模版(Html)可以对其他 DBA 起到启发、规范作用,这也是 TiHC 期望做到的。 4. 另外,很多“甲方爸爸” 其实根本不在意巡检报告的细节,只在意结论如何,TiHC 可以让你 1min 交差(前提是巡检下来,数据库真的没有潜在问题)。
采集 grafana 监控面板
调用 grafana-image-render 插件,获取指定时间段内的监控信息。
生成 Docx 巡检文档
TiHC 将收集的统计数据排版、生成 Office Word 文档模版,仅需少量修改便可直接交付客户。
轻量化巡检采集操作
TiHC 只需初次巡检时,配置 Grafana-image-render。此后,仅需要可执行文件便可完成全部巡检。
TiHC 遵循 terminal cli 使用风格,可 --help 或 -h 简单查看使用方法。
$ tihc % ./bin/tihc -h TiHC 1.0 Jan Su TiHC (TiDB Healthy Check) is a tool designed by RUST to reduce inquiry timeand improve delivery efficiency. USAGE: tihc[OPTIONS] FLAGS: -h, --help Prints help information -v, --version Print TiHC version OPTIONS: -c <cluster_name> The name of cluster which need to health check. -t <grafana_end_time>The TSO of grafana endtime which need to get images. -p <grafana_pwd> Use password of target grafana. (default "admin") -f <grafana_start_time> The TSO of grafana start time which need to get images. -u <grafana_user> Use user name of target grafana. (default "admin") -P <ssh_pwd>The password to login via SSH with"ssh_user". -U <ssh_user> The user name to login via SSH.针对安装部署、使用过程中遇到的诸多,非软件 BUG 问题作者创建了 Github Project Wiki FAQ,更多细节相见 TiHC Wiki。
首先,使用 TiHC 之前需要选择一个已经部署好 TiDB 的集群作为巡检目标; 其次,使用 TiHC 前需要在 TiDB 中控机的 tidb 用户下,执行脚本为 Grafana 配置插件 grafana-image-render,TiHC 作者准备了deploy_grafana_image_render.sh 部署脚本。该脚本有两种部署模式 online 和 offline 两种; 下面仅展示 online 下载方式部署 grafana-image-render,至于 offline 方式请参考 Wiki 描述,部署过程中遇到的问题请参考 Wiki FAQ。
wgethttps://github.com/jansu-dev/tihc/releases/download/v0.1.0-alpha/tihc-v0.1.0-alpha-linux-amd64.tar.gz&& \ tar -zxvf tihc-v0.1.0-alpha-linux-amd64.tar.gz && \ cd tihc-v0.1.0-alpha-linux-amd64 && \ chmod 777 ./deploy_grafana_image_render.sh && \ ./deploy_grafana_image_render.sh CLUSTER_NAME online最后,部署成功屏幕输出 [Log ] --> grafana-image-renderer has been downloaded and configed successfully!,如下:
使用一下命令执行巡检,详情见 TiHC Wiki Quick Start 部分。
./tihc -c xu-tidb \ -u admin \ # grafana 登录用户名 -p admin \ # grafana 登录密码 -U tidb \ # 各节点 ssh 登录用户名 -P tidb \ # 各节点 ssh 登录密码 -f "2022-03-17 14:00:00" \ # grafana 图像采集开始时间点 -t "2022-03-17 14:10:00" # grafana 图像采集结束时间点当巡检命令发出后 terminal 输出如下,并且会在 tihc 可执行文件目录下找到的名为 tidb_check.docx 的文件。
最后,将 tidb_check.docx 文件从 tidb 中控机上取下打开,可双击查看生成的巡检文档。概览如下:
最后,附上 3 张操作全流程图,帮助大家串联上面的步骤拆解:
在本地安装 Rust 环境下,访问 tihc repo 直接获取源码至本地。使用 make 命令便可编译二进制文件。
# Get repo from github git clone git@github.com:jansu-dev/tihc.git && cd tihc # Build the tool by Makefile make # Get binary of tihc ll ./bin/tihc作者作为 rust 的初学者,期待与大家一起构建 TiHC 工具,如有兴趣者可以直接提交 PR;
TiHC 现在代码中缺少很多注释,作者会陆续将其补充完整,更好让感兴趣者参与其中;
针对使用过程中遇到的任何问题,大家均可通过 Issue 提问交流(主),或者本文下方留言(辅);
TiHC 虽然简单将各模块抽离,模仿流水线设计模式构建,但因急于实现功能且代码实战应验少导致功能过于耦合,未来可能大幅度重构
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。