2021 年的 TiDB Hackathon 在狂欢中完结了,然而其余味却是久久难以消散。作为 TiDB 十年老粉的选手,真的是非常有幸可能加入如此优良的流动,但遗憾的是咱们的 TiCheck 并没有取得一个很好的问题,当青姐发表 20 强的时候,我看看整整三遍名单,考虑了很久,果然还是咱们太弱了嘛。
第一天看完大家预选赛的问难,虽说是能感触到在座各位大佬的弱小,然而仍旧抱有一丝丝的空想本人的我的项目可能怀才不遇,直到最初后果进去的时候,咱们也是继承某些低劣的传统,各种找借口来刺激本人,比方,评委们都是一群干开发和大老板们,他们能懂个锤子的数据库运维,他们懂咱们做运维的苦楚嘛?
好了,回来谈一谈咱们这个项 - Automated checklist, 又叫 TiCheck, 最早这个我的项目源自咱们一个实在场景下的运维生存,大家都晓得,数据库是一个十分重要的零碎,尤其在一些非常重视平安和稳固的情景中,比方金融银行这些,那么数据库的治理和运维就非常的简单和好受,举几个列子:
大量的日常操作必须都进行脚本化,一套数据库得整一两百个脚本,还得现写现审核,每当上头有个新的操作需要,你就得写一个脚本,最次要的是数据库脚本这个货色,很难去找到现有的间接用,每个 DBA 都有本人的小私库。
TiDB 有 Grafana, Dashboard 而后加上数据库 SQL 查问,共有三种办法获取数据库的不同信息,然而,当你的网络和权限受限的时候,你很难说去三个中央来查看数据库是否失常,同时每次查看集群信息,得从三个中央跳来跳去的,如果能有个对立的中央来查看这些,会不会十分难受?
日常巡检,就是每天下来查看数据库是否失常,有无异样和隐患,TiDB 有多稳,不须要多说了吧,再加上一堆监控和告警,能出什么问题呢?然而为了数据安全,你就必须每天下来巡逻一边,把所有巡检指标过一遍,并且进行巡检记录,这个少则十几分钟,多则几小时的操作,在安稳运行的每一天都是折磨,你巴不得明天某个指标来点小问题,让本人显得有一丝价值。
历史记录的问题,数据库日常巡检之后,这些记录保留与否,如何保留,多久清理一次等等问题,同时如果想要查看历史巡检的状况,只能一份一份的看,如果想要看一段时间巡检的统计和剖析,还得手动操作一波,而这个又是领导们经常想要的。
说到领导,领导常常会关怀数据库状态是否失常,用的怎么样,这个时候,你得写一份领导看的懂的报告,加一些易懂的图图表表,如果你把那些 Grafana 和 SQL 查问后果拿过来,我只能说很难。最重要的是,当领导要看的时候,你得在最短的工夫内拿出报告,不然有得好果子吃。
在这个我的项目中干了许久之后,咱们慢慢发现,咱们成为了一个又一个的操作机器,日复一日的脚本生成,日常巡检(点点点),文档生成。没多少技术含量不说,每天还显得异样繁忙,到底在繁忙些什么呢?
在写了无数个脚本之后,我的某个共事率先发难了,咱们当初讲的是一个什么?开源!共享!为什么就是没有人共享一下数据库脚本,做一个脚本仓库,大家把本人的脚本上传上去,也能够从下面下载各种各样的脚本,这难道不难受?
的确,但第二个共事感觉,不如做一个巡检平台,最好一键巡检完,生成报告,省得每天花一堆工夫做巡检写报告,跟个机器人似的,最好是那有那种可视化的展现模式,这样不便看,也不便应酬老板们。
所以,为什么不两个合在一起呢?刚好就这次 Hackathon,咱们能够开发一个日常巡检平台,欸~,就是冲,说不定还能白嫖十万块钱。
这个平台能够干什么呢?
首先,它必定能够一键跑一次日常巡检,对于巡检指标,能够本人增加不同的脚本和阈值来设定,进行自定义设置。并且你能够设置一个周期工作,比如说每天 6 点跑一次指定巡检。
而后有可视化平台,不便运维人员执行巡检工作,查看巡检指标状态,包含历史巡检记录和巡检剖析,最近一周,一个月,一年呈现较多的异样指标等
能够随便导出历史巡检记录,老板来了齐全不慌,当然,你也能够通过这个平台来治理你的巡检历史文件,导出,批改和清理等。
最重要的来了,巡检的每个指标都是一个脚本,通过脚本,你能够将 Dashboard, Prometheus 和 SQL 语句的后果对立输入到巡检指标中,再也不必开多个平台去查看集群状态。而且咱们建设了近程脚本仓库,下面有大量现成的脚本共用户下载应用,你也能够书写本人的脚本奉献下来!
当然这个平台还能够集成很多其余的性能,这些性能也是咱们将来布局的,但因为 Hackathon 工夫无限没有实现的:
每日定时主动巡检实现后,能够对接用户的告警零碎,对相应异样指标输入到告警零碎之中,或者将报告通过短信的形式发送到相干运维人员,防止人员须要每天到机房查看。
通过历史巡检数据能够对集群状态进行深度剖析,提前挖掘集群可能存在问题,例如每日巡检到存储空间增长状况,来预测将来多少天会呈现存储空间有余的状况。
退出根因剖析性能(这个其实是我原本和另一个搭档报名 Hackathon 较量加入的我的项目,但因为他太忙了,就弃赛了),当发现巡检指标异样的时候,可能疾速定位到集群问题的根本原因,不便运维人员的保护,防止长时间的集群排查。
Hackathon 只是一个开始,各种各样的花式 idea 在其中涌出,关上一扇扇新的大门,巡检平台这个我的项目,尽管没有获得较好的问题,然而咱们不心愿巡检平台刚刚开始就完结了,因为咱们置信,会有许多人 遇到咱们这相似的运维问题,那么主动巡检平台就会有他存在的价值。
所以大家如果对于巡检平台有什么更好的想法,能够分割咱们,对其进行优化,或是集成到其余平台一起应用。
Github: DigitalChinaOpenSource/TiCheck: TiDB automated checklist for hackathon 2021. (github.com)