Let's go, TiCheck!
作者: CuteRay 原文来源:https://tidb.net/blog/7a6ee1a4
前言
自 TiDB Hackathon 2021 已过去 100 多天了,可能很多小伙伴已经将我们遗忘了,没关系,可以重新回顾一下:专栏 - 回顾下 Hackathon 中的 TiCheck | TiDB 社区
这次,我们带来的是 TiCheck alpha v1.0,多了一些好玩儿、有意思的功能,欢迎各位感兴趣的小伙伴上手试玩,你可能会碰到 BUG,不要害怕,直接提出来,提 issue 亦或者私信轻喷,当然也可以提出你们宝贵的意见,红豆泥阿里嘎多。
DigitalChinaOpenSource/TiCheck: TiDB automated checklist for hackathon 2021. (github.com)
Tips:目前开发主要是集中在 dev 分支,master 分支是参加 Hackathon 2021 的代码分支。
介绍
TiCheck 是一个开源、共享的 TiDB 自动巡检平台,目的是缩短各位 TiDB DBA 们每日巡检的时间,构建一个开源、共享的巡检脚本平台。与其余 TiDB 巡检工具相比,TiCheck 不是从 Grafana 监控采集的图表数据,来生成最终的巡检报告,更多的是通过自定义的脚本与阈值,来判断集群的状态。
在 TiCheck 中,巡检的每个指标都是一个脚本,通过脚本,你可以将 Dashboard, Prometheus 、SQL 语句的结果统一输出到巡检指标中,再也不用开多个平台去查看集群状态。至于巡检脚本,可以各位 DBA 自定义,也可以从远程脚本仓库下载,同时,也可以把自己的巡检脚本贡献到远程脚本仓库,而我们有个小愿望,就是与各位 DBA 共建一个脚本仓库。
在 TiCheck 中,每一次巡检的结果都会保存,用户可以非常方便的看到一段时间内数据库集群的历史巡检结果,可以很直观的看到数据库在某一段时间内的状态。此时,如面对领导们询问数据库历史状态,就再也不用去对比各种历史监控页面了,能够做到快速响应。
TiCheck 功能
多集群管理
我相信,很多小伙伴,手上有着不仅仅一套 TiDB 集群。光一套 TiDB 集群的日常巡检任务,就有点繁琐了,更别说有的大佬公司不差钱,搞了十几套 TiDB 集群,压在小伙伴一人身上,每天一个个集群的巡检过去,还要写报告,最后每天都在加班写报告。忙吗?那的确是挺忙的。所以,为了方便大家,造福同为 DBA 们,我们在 Hackathon 后加了多集群管理的功能,解放 DBA 每天繁复的日常巡检任务,让 DBA 们有更多的时间干更多的活(资本家听了都流泪)。
自定义巡检指标 & 执行巡检
如前面所提到的,在 TiCheck 中,巡检中的每一个指标都是一个自定义脚本,用户可以自定义巡检指标的阈值,以符合自己预期的结果。并且,可以随心所欲的设置每次巡检的项目,对于重要的指标,可以每天巡检,对于那些一段时间才能看到效果的指标,可以在每日巡检中将其关掉,到需要巡检这项指标的时候,再启用就 OK,极大的减少每日巡检的复杂程度,做到有目的性,针对性的巡检。
巡检详情 & 报告下载
TiCheck 会将每一次巡检结果存储起来,并且在前端以可视化表格、柱状图的样式进行展示,方便运维人员在执行巡检任务之后,查看巡检指标状态,包括历史巡检记录,能够很直观的了解到最近一周,一个月,一年出现较多的异常指标等,能够从历史中出现异常较多的巡检指标中,找出数据库所存在的问题。同时,用户还能将巡检结果下载到本地,一键巡检完成之后,可以将报告直接下载,能快速完成每日巡检的工作任务,同样能快速响应领导想要了解数据库当日状态的要求,只需要两步就能交差,十分的美妙。
巡检脚本仓库
用 TiCheck 久了,可能会积累很多巡检脚本,有些是自己独有原创的,而有些其实别人已经写过了,这样就会出现各种重复造轮子的事情。在当下,拥抱开源,一起共享,大家可以将自己的巡检脚本上传到远程脚本仓库,也可以从脚本仓库下载别人写好的脚本。而我们会逐步完善脚本仓库中各种巡检脚本,同时,也期望各位使用 TiCheck 的小伙伴们,分享出自己日常所用到的脚本。
定时巡检
此次,我们还加上了定时巡检任务的功能,彻底解放各位 DBA 们,突出一个自动化。定时任务的规则是遵循 crontab,由各位 DBA 自己去设置。后面,TiCheck 还会将每日定时巡检任务对接到各种告警系统,再也不用担心出了问题不能及时响应了。
快速上手
Use Docker
Local install
展望
TiCheck 目前还有些许小 bug,未来我们会一一修复,也会根据大家的反馈,做些许更改。未来我们想做的功能:
定时巡检完成之后,对接到告警系统,将相应异常指标输出到告警系统之中,或者将报告通过短信、钉钉、企微、邮件等方式发送给相关运维人员,避免每天都要去机房蹲点;
加入深度分析、根因分析等,提前发掘集群可能存在的问题,比如通过巡检指标异常的时候,能够快速定位到集群问题的根本原因,方便运维人员的维护,避免长时间的集群排查。
更多有意思、有用的功能想法,可以随时提出来。4.
最后
期待与社区小伙伴一起来完善 TiCheck,如有兴趣,欢迎来提交 pr;
在使用过程中,如遇到任何不满问题,或是说希望得到改进的地方,抑或是期待新的功能,欢迎提交 issue 或者私信给我留言;
TiCheck 作品还不是特别的成熟完善,未来呢,也可能会对代码重构,如看到代码中任何不合理的位置,欢迎来指正!
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/5e13833fb7c377b2526981fe0】。文章转载请联系作者。
评论