TiDB 在中国银行 Zabbix 监控方案中的应用
作者介绍
韩宇,中国银行信息科技运营中心工程师。
一、传统的 Zabbix 监控方案及主要问题
-
Agent:数据采集代理,部署于被监控服务器上; -
Server:Zabbix 的服务端,用于数据的采集和发送告警等; -
Web:用于数据采集和告警规则等配置,前端数据展示和 API 调用; -
数据库:MySQL 用的比较多,用于配置信息和监控数据的存储。当然了,随着 Zabbix 的版本的迭代升级,除了 MySQL 也支持了其他的数据库,在后面会简要的提到一些。
二、TiDB 在 Zabbix 中的应用
-
2016 年:用的单实例的 Zabbix,用了 MySQL,监控了 1000 + 的 Linux 服务器,当时存储了 60 天的分钟级数据。 -
2017 年:使用 Zabbix Server 进行双实例部署,各监控 1000 + 的 Linux 的服务器,尝试将历史数据用 Python 写入 Elasticsearch。但是,由于中间用了 Python 的读取写入过程,不如直接往数据库里写些稳定。所以当时用了一段时间,没有继续用下去。 -
2018 年:开始尝试使用 TiDB 代替 MySQL,这时的生产环境开始使用原生 Zabbix ,原生的 Zabbix 方案也已经支持 Elasticsearch 作为后端存储。但是考虑到 TiDB 兼容 MySQL 协议,且 TiDB 是分布式数据库,可能比 Elasticsearch 会有一些优势。再加上 Elasticsearch 在当时的易用性也不是很好,特别是升级的操作对于刚入门的用户来说是比较痛苦的,而 TiDB 的升级就比较平滑,因此,综合考虑后开始使用 TiDB 代替 MySQL。 -
2019 年:通过解决若干的替换问题后,TiZabbix 监控对象达到 9000+ ,数据量达到 15T。 -
2020 年:TiZabbix 监控对象达到了 10000+,数据量达到 18T,每日采集的数据条目大概是 14.5 亿条。 同时,稳定性也得到显著的提升,这里的稳定性,不是指单独 TiDB 的稳定性,由于 TiDB 官方建议用的硬件性能要求比较高,但是由于各种原因的限制,我们使用到的 TiZabbix 环境下 TiDB 的硬件性能不是很好,所以硬件性能的问题,会限制 TiDB 的稳定性。在 2020 年,通过解决了若干问题,在这些较差的硬件上,同样将 TiDB 的稳定性是达到了一个比较理想的水平。
三、TiZabbix 的优化提升
本文整理自韩宇在 上的演讲,大会相关视频可以关注官方 Bilibli 账号主页(ID:TiDB_Robot)。
典型实践
平安科技 |
北京银行 | 1. 2.
微众银行 |
华泰证券 |
Shopee |
马上消费金融 |
知乎 |
丰巢 |
美团点评 |
贝壳金服 |
易果生鲜 |
小红书 |
小米 |
58 集团 |
爱奇艺 |
转转二手交易网 |
摩拜单车 | 1. 2.
更多:https://pingcap.com/cases-cn/