首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

翼鸥教育通过OceanBase,打造了更稳定的Zabbix监控系统

此前,翼鸥教育表示,将在核心业务中使用 OceanBase 数据库。该消息一出,立马引发行业关注。

作为被全球150+个国家的6万多所学校与机构选择的班课教学解决方案,之前翼鸥教育的业务数据主要存储在MySQL。但由于在使用期间,翼鸥教育发现MySQL存在容量瓶颈、数据读写瓶颈和分区表不易维护的问题,便决定换成分布式数据库,来进行更好地运作。

在综合考量了稳定性、易运维、低成本、高性能、丰富生态等多维度的因素后,最终翼鸥教育决定探索 OceanBase。

翼鸥教育从监控系统入手,对OceanBase展开研究。他们的监控系统采用的是 Zabbix 方案,使用 4 台虚拟机进行兼容性测试和基础功能验证,机器规划如下:

选择部署的 OceanBase 软件版本如下表所示:

整体上线思路为:第一步,做兼容性测试。主要测试存储与服务的兼容性,以及功能是否正常;第二步,准备OceanBase集群和相关组件。部署 OCP、OMS,使用 OCP 快速部署集群;第三步,迁移历史数据。用 OMS 将表结构和全量数据迁移到 OceanBase 中,同时选择增量数据同步;第四步,打开维护窗口。将服务数据库链接地址更换到 OceanBase 集群上;第五步,清理同步链路释放服务器资源。

准备好环境后,翼鸥教育开始功能测试与验证,主要查看服务运行状态,检查 Zabbix-server、UI 服务是否能正常启动,以及在长时间运行后的状态检查。同时还要检查基础功能,包括增加监控项、数据采集,数据读取,接口健康检查,报警事件触发等。此外,包括验证数据迁移的一致性、Zabbix 版本升级、agent 升级等也都要进行监测。

在 Zabbix 6.0 版本测试过程中,各种功能正常,但在测试升级过程中(Zabbix版本从 6.0 升级到 6.2)遇到了一些问题:

触发器问题:OceanBase 不支持触发器,所有触发器都建在 changelog 表。

OceanBase 不支持把 text 修改为 varchar,在 4.0 版本之后支持,问题暂时搁置。

changelog 表的问题,从代码上看是升级时要写数据,使用触发器,需要再验证。

Zabbix 添加机器后,重启 Zabbix server 才能连通,这可能与程序有关,因为同一个程序,在使用 MySQL 时正常。该问题是 Zabbix 6.2 版本使用过程中的问题,比较致命,需要重点处理。

经过查看 Zabbix 源码和测试验证,发现造成以上问题的根本原因是 OceanBase 3.1.x 版本不支持触发器。因为 Zabbix 在 6.0(LTSC)版本的表结构中,没有使用到触发器,而在 6.2 版本中,在一些表上建立了向 changelog 表插入数据的触发器。

于是,翼鸥教育尝试手动写“外挂”,来实现触发器的功能。他们通过对触发器创建语句的分析,发现在源表数据有变化的时候,包含 insert、delete、update,触发器会把对应的数据插入 changelog 表。也就是说,只要订阅表变更信息即可。

至于如何实现源表的变更订阅,可以通过 OMS 订阅表的变化,把数据写入 Kafka,然后消费 Kafka 的数据写到 changelog 里。通过这种方式再进行功能测试,发现上述 Zabbix 的四个问题全部解决了,各种功能测试可以正常使用。

值得一提的是,在翼鸥教育测试时,OceanBase 还是 3.1.4 版本,现在 OceanBase 的 4.0 版本已经发布,触发器功能也开放了。

翼鸥教育的相关负责人表示,选择 OceanBase 做 Zabbix 监控系统的底层存储后,他们也在 Zabbix 代码上做了一些兼容性修改,从目前的使用情况看,运行状态良好。而此次在监控系统中选择使用 OceanBase,也是为翼鸥教育核心业务上线 OceanBase 积累经验。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230111A064A700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券