作者:漆锐​



前言

自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功能

  1. 多集群管理

我相信,很多小伙伴,手上有着不仅仅一套TiDB集群。光一套TiDB集群的日常巡检任务,就有点繁琐了,更别说有的大佬公司不差钱,搞了十几套TiDB集群,压在小伙伴一人身上,每天一个个集群的巡检过去,还要写报告,最后每天都在加班写报告。忙吗?那的确是挺忙的。所以,为了方便大家,造福同为DBA们,我们在Hackathon 后加了多集群管理的功能,解放DBA每天繁复的日常巡检任务,让DBA们有更多的时间干更多的活(资本家听了都流泪)。

Let

  1. 自定义巡检指标&执行巡检

如前面所提到的,在TiCheck中,巡检中的每一个指标都是一个自定义脚本,用户可以自定义巡检指标的阈值,以符合自己预期的结果。并且,可以随心所欲的设置每次巡检的项目,对于重要的指标,可以每天巡检,对于那些一段时间才能看到效果的指标,可以在每日巡检中将其关掉,到需要巡检这项指标的时候,再启用就OK,极大的减少每日巡检的复杂程度,做到有目的性,针对性的巡检。

Let

Let

  1. 巡检详情&报告下载

TiCheck会将每一次巡检结果存储起来,并且在前端以可视化表格、柱状图的样式进行展示,方便运维人员在执行巡检任务之后,查看巡检指标状态,包括历史巡检记录,能够很直观的了解到最近一周,一个月,一年出现较多的异常指标等,能够从历史中出现异常较多的巡检指标中,找出数据库所存在的问题。同时,用户还能将巡检结果下载到本地,一键巡检完成之后,可以将报告直接下载,能快速完成每日巡检的工作任务,同样能快速响应领导想要了解数据库当日状态的要求,只需要两步就能交差,十分的美妙。

Let

  1. 巡检脚本仓库

用TiCheck久了,可能会积累很多巡检脚本,有些是自己独有原创的,而有些其实别人已经写过了,这样就会出现各种重复造轮子的事情。在当下,拥抱开源,一起共享,大家可以将自己的巡检脚本上传到远程脚本仓库,也可以从脚本仓库下载别人写好的脚本。而我们会逐步完善脚本仓库中各种巡检脚本,同时,也期望各位使用TiCheck的小伙伴们,分享出自己日常所用到的脚本。

Let

Let

  1. 定时巡检

此次,我们还加上了定时巡检任务的功能,彻底解放各位DBA们,突出一个自动化。定时任务的规则是遵循crontab,由各位DBA自己去设置。后面,TiCheck还会将每日定时巡检任务对接到各种告警系统,再也不用担心出了问题不能及时响应了。

Let



快速上手



Use Docker

# clone repo
git clone -b dev https://github.com/DigitalChinaOpenSource/TiCheck.git
cd TiCheck

# use docker to build image
docker build -t ticheck:latest .

# use docker to run this image
cker run --name ticheck -p 8066:8066 -d ticheck:latest

# and you can access ticheck through port 8066



Local install

# clone repo
git clone -b dev https://github.com/DigitalChinaOpenSource/TiCheck.git
cd TiCheck

# install ticheck
make install



展望

TiCheck目前还有些许小bug,未来我们会一一修复,也会根据大家的反馈,做些许更改。未来我们想做的功能:

  1. 定时巡检完成之后,对接到告警系统,将相应异常指标输出到告警系统之中,或者将报告通过短信、钉钉、企微、邮件等方式发送给相关运维人员,避免每天都要去机房蹲点;
  2. 加入深度分析、根因分析等,提前发掘集群可能存在的问题,比如通过巡检指标异常的时候,能够快速定位到集群问题的根本原因,方便运维人员的维护,避免长时间的集群排查。
  3. 更多有意思、有用的功能想法,可以随时提出来。


最后

  1. 期待与社区小伙伴一起来完善TiCheck,如有兴趣,欢迎来提交pr;
  2. 在使用过程中,如遇到任何不满问题,或是说希望得到改进的地方,抑或是期待新的功能,欢迎提交issue或者私信给我留言;
  3. TiCheck作品还不是特别的成熟完善,未来呢,也可能会对代码重构,如看到代码中任何不合理的位置,欢迎来指正!