网易首页 > 网易号 > 正文 申请入驻

OceanBase替换 MySQL,如何打造更稳定的Zabbix监控系统

0
分享至

作者简介:罗呈祥。现就职于北京翼鸥教育科技有限公司,负责数据库相关的运维管理和技术支持工作,擅长故障处理和性能优化,对分布式数据库也有深入研究。

近期,OceanBase 社区发布了一篇关于我们公司选型分布式数据库的文章(戳:),详细介绍了我们的选型考虑因素和对 TiDB、OceanBase 的测试对比,当然,我们最终选择了 OceanBase。

其实,最初我们决定探索 OceanBase 时,因为对其了解不深,所以决定从监控系统入手,一边研究,一边积累经验,监控系统的数据量也比较可观。可以说,监控系统是一块很好的试验田。

我们的监控系统采用 Zabbix 方案,因为 Zabbix 业务语言与我们公司的开发语言高度一致,Zabbix server 端使用 C++ 编写,前端采用 PHP 语言,今天我主要分享下我们在监控系统使用 OceanBase 替换 MySQL 的经验,包括业务痛点介绍、部署 OceanBase 时遇到的问题,以及 OceanBase 与 Zabbix 的版本兼容测试、功能验证等。

Zabbix 是一个基于 Web 界面的提供分布式系统监视及网络监视功能的企业级开源解决方案,能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制供系统管理员快速定位、解决存在的各种问题。我们公司在最初使用 Zabbix 时,选用 MySQL 存储数据,随着业务量的增加,要监控的设备和指标也越来越多,就出现了如下三个主要痛点。

痛点一:数据量大。使用过 Zabbix 的人都知道,Zabbix 有两张大表,即history_uint 和 history,用来存放监控数据。目前,我们监控系统的 history_uint 表数据增量约每天 33GB,history 表每天的数据增量约 50GB。因此,仅保留半年的数据,就非常庞大。

history和history_uint两表每天的数据增量

痛点二:数据读写瓶颈。随着业务量的增长,系统中被监控的设备也越来越多,监控数据的量也随之增长,MySQL 出现单点写入瓶颈。

痛点三:分区表不易维护。Zabbix 有几张存放监控数据的大表使用了按时间维度分区的分区表,便于数据清理,查询,但不利于维护。

Zabbix分区表分区规则

基于上述三个痛点,相较于 MySQL,OceanBase 的优势更加显著。

首先,针对数据量大的痛点,通过之前我们在生产环境做的一些数据迁移测试,OceanBase 可以把业务数据压缩至 MySQL 的 1/5 甚至 1/4,在相同规格的机器上,这样的数据压缩率可以支持我们存放期限更长的监控数据,一些线上数据迁移到 OceanBase 后的大小和压缩率如下表所示。

可以看到对于不同的表,OceanBase 的数据压缩率也不同, 综合来看,平均压缩率是 4.71。

其次,针对数据读写瓶颈这个痛点,由于 OceanBase 是基于 LSM-Tree 的分布式数据库,因此,在数据写入方面有天然优势。 根据生产环境规格的机器 sysbench 写入性能测试的结果,OceanBase 的综合写入性能是 MySQL 的 3 倍以上。

OceanBase的LSM-Tree架构

最后,针对痛点三的分区表不易维护,我们也对 OceanBase 进行了测试。 OceanBase 的 Online DDL 特性使它对分区表的维护非常平滑,不需要特定维护窗口停监控系统去做分区表的维护。truncate 表分区都是秒删,数据清理非常方便。 相比之下,MySQL 在清除分区的时候,不仅会锁表,还会造成大量的磁盘I/O。

此外,我们在监控系统中选择使用 OceanBase,也是为核心业务上线 OceanBase 积累经验。

选型OceanBase的原因

▋ 方案制定

我们计划先使用 4 台虚拟机进行兼容性测试和基础功能验证,机器规划如下:

* 由于是本人申请的,所以机器名以申请人本人名字命名 -_-!

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

我们的上线思路分为五步:

第一步,做兼容性测试。 主要测试存储与服务的兼容性,以及功能是否正常;

第二步,准备OceanBase集群和相关组件。 部署 OCP、OMS,使用 OCP 快速部署集群;

第三步,迁移历史数据。 用 OMS 将表结构和全量数据迁移到 OceanBase 中,同时选择增量数据同步;

第四步,打开维护窗口。 将服务数据库链接地址更换到 OceanBase 集群上;

第五步,清理同步链路释放服务器资源。

▋ 环境准备

我们根据官方文档部署了 OceanBase、OCP、OMS,在测试环境中也并没有做太多规范化的配置,在导入表结构后,使用即可。但根据我们的部署经验,要注意 default collation 为 utf8mb4_bin。

测试集群的拓扑图

租户管理界面

但我们在环境准备的过程遇到了一些问题:

第一,由于我们公司使用的 MySQL 版本是 8.0,在编译好 Zabbix-server 后,发现连接 OceanBase 时总是失败,而更换为 MySQL 5.7 版本的环境后编译可以连接上数据库,可能原因是 8.0 版本的密码加密方式与 5.7 版本不同,这倒也不是什么大问题。

Zabbix系统界面

第二,系统提示数据库版本的问题。因为 OceanBase Proxy 对外显示默认版本是 MySQL 5.6.25 ,Zabbix 会提示版本不支持,所以,需要修改 OceanBase Proxy 的 MySQL_version 参数到支持的版本,我们改成了 8.0.20 版本(ps:这个小功能不错,可以根据需求调整到任意版本)。

▋ 功能测试

准备好环境后,我们开始功能测试与验证,主要查看服务运行状态,检查 Zabbix-server、UI 服务是否能正常启动,以及在长时间运行后的状态检查,还要检查基础功能,包括增加监控项、数据采集,数据读取,接口健康检查,报警事件触发等。此外,验证数据迁移的一致性(OMS 自带数据一致性校验功能,所以只进行了抽样检查),以及进行 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 表插入数据的触发器。

Zabbix中的部分触发器

那么,手动写“外挂”实现触发器的功能是否可行呢?我们也做了一些测试。通过对触发器创建语句的分析,我们发现,在源表数据有变化的时候,包含 insert、delete、update,触发器会把对应的数据插入 changelog 表。也就是说,只要订阅表变更信息即可。

怎样实现源表的变更订阅呢?这里就可以使用 OceanBase 开源生态的重要工具——OMS。 我们是通过 OMS 订阅表的变化,把数据写入 Kafka,然后消费 Kafka 的数据写到 changelog 里。通过这种方式,我们再进行功能测试,发现上述 Zabbix 的四个问题全部解决了,各种功能测试可以正常使用。

需要说明的是,在我们测试时,OceanBase 还是 3.1.4 版本,现在 OceanBase 的 4.0 版本已经发布,触发器功能也开放了,后续我们会进行 OceanBase 4.0 版本与 Zabbix 的兼容性测试,敬请期待后续分享。

选择 OceanBase 做 Zabbix 监控系统的底层存储后,我们也在 Zabbix 代码上做了一些兼容性修改,从目前的使用情况看,运行状态良好。由于 OceanBase 使用 Paxos 协议确保主副本和从副本数据强一致,DML 操作插入、更新、删除等首先写入 MemTable,业务高峰期也不会出现磁盘 I/O 告警和主从延迟的情况。

目前我们已经在测试环境、线上环境上线了两套 OceanBase 集群,也已经在业务中使用了 OceanBase,后续会有更多业务陆续迁移到 OceanBase 中。

记得 OceanBase 在 2021 年开源的时候,我就尝试部署过 3.x 版本,过程复杂,成功率低。 在不断地快速迭代下,其部署变得方便,屡试不爽,再随着生态工具(OCP、OMS、ODC 等)的发布,OceanBase 社区版产品体系越来越完善,越来越好用。

有奖征稿:

随着国内数据库等信创产品越发强大,很多社区用户越来越活跃,期待更多用户分享Zabbix与国产系统支持的经验,做好知识体系、文档建设,与用户共创建强大的生态。

案例

扫一扫|加入技术交流群

微信号|17502189550

备注“使用Zabbix年限+企业+姓名”

5000+用户已加入!

一个人走得快,一群人走得远!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
100个代表团与会,1000多万美元的开销

100个代表团与会,1000多万美元的开销

寰宇大观察
2024-06-15 15:45:20
同村人评价火爆全网的“数学天才少女”:孩子聪明又懂事

同村人评价火爆全网的“数学天才少女”:孩子聪明又懂事

央广网
2024-06-16 00:30:04
荒诞!医学院老师因紧急救人致上课迟到,被罚2000元和评优资格?

荒诞!医学院老师因紧急救人致上课迟到,被罚2000元和评优资格?

走读新生
2024-06-16 00:04:47
开始了!俄罗斯军人亲属呼吁官员儿子顶替亲人

开始了!俄罗斯军人亲属呼吁官员儿子顶替亲人

亡海中的彼岸花
2024-06-15 08:56:51
银行副行长误将女员工表白视频群发,两人相差20岁,官方发声力挺

银行副行长误将女员工表白视频群发,两人相差20岁,官方发声力挺

求实者
2024-06-14 22:18:32
上海这种事也越来越多了!

上海这种事也越来越多了!

吴女士
2024-06-15 14:02:29
G7发布联合声明,不许中国援俄,不许武力收台,也不许反制菲律宾

G7发布联合声明,不许中国援俄,不许武力收台,也不许反制菲律宾

贺文萍
2024-06-15 16:53:41
何谓“法律面前人人平等”?美国司法界判拜登儿子和特朗普都有罪

何谓“法律面前人人平等”?美国司法界判拜登儿子和特朗普都有罪

爆角追踪
2024-06-15 22:57:15
563支AI队伍和姜萍答了同一份试卷:最高34分,无一入围决赛

563支AI队伍和姜萍答了同一份试卷:最高34分,无一入围决赛

经济观察报
2024-06-15 19:56:17
数学老师说姜萍属于勤奋型选手,中考数学没答完卷,数学天赋在中专才逐渐显现出来

数学老师说姜萍属于勤奋型选手,中考数学没答完卷,数学天赋在中专才逐渐显现出来

封面新闻
2024-06-15 15:40:29
瑞士峰会传来消息,好家伙,幸亏中国没去参加,普京早就布好局了

瑞士峰会传来消息,好家伙,幸亏中国没去参加,普京早就布好局了

千里持剑
2024-06-15 12:53:07
追梦回应克莱取关勇士:我觉得这很好笑 你们都想看有人感到受伤

追梦回应克莱取关勇士:我觉得这很好笑 你们都想看有人感到受伤

罗说NBA
2024-06-16 05:19:26
网传:焚烧电动车现场,黑烟滚滚,网友纳闷,专家学者集体沉默!

网传:焚烧电动车现场,黑烟滚滚,网友纳闷,专家学者集体沉默!

眼光很亮
2024-06-16 08:01:14
倒查30年后补税是个危险信号

倒查30年后补税是个危险信号

深度财线
2024-06-15 22:03:47
税太高了?一家企业要交13%增值税、25%企业所得税、20%分红税

税太高了?一家企业要交13%增值税、25%企业所得税、20%分红税

小蜜情感说
2024-06-16 07:50:02
幸亏当年没答应爱因斯坦,否则云南省,可能就成了现在的巴勒斯坦

幸亏当年没答应爱因斯坦,否则云南省,可能就成了现在的巴勒斯坦

赢梯
2024-06-13 09:43:08
格兰德:克罗斯当时想要与格策持平的薪水,他如今是最成功的球员

格兰德:克罗斯当时想要与格策持平的薪水,他如今是最成功的球员

直播吧
2024-06-16 09:04:20
闹大了!陈芋汐代言李宁,造型酷似日本风,网友直接炸锅了

闹大了!陈芋汐代言李宁,造型酷似日本风,网友直接炸锅了

吃鱼思故渊
2024-06-15 21:49:52
欧洲杯被中文广告包围?破案了:均为虚拟广告牌,与现场不一样!

欧洲杯被中文广告包围?破案了:均为虚拟广告牌,与现场不一样!

风过乡
2024-06-15 16:53:50
冒充职业球员?欧洲杯惊现200多斤大胖子 当年差点加盟中超

冒充职业球员?欧洲杯惊现200多斤大胖子 当年差点加盟中超

球事百科吖
2024-06-16 00:04:33
2024-06-16 11:00:49
ZabbixChina
ZabbixChina
提供学习平台和技术支持
274文章数 21关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

40余套房屋涉嫌"一房多卖" 有购房者内心积郁因病去世

头条要闻

40余套房屋涉嫌"一房多卖" 有购房者内心积郁因病去世

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

江宏杰秀儿女刺青,不怕刺激福原爱?

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

东风奕派eπ008售21.66万元 冰箱彩电都配齐

态度原创

手机
艺术
家居
数码
军事航空

手机要闻

这次稳妥了,小米15系列手机发布时间、配置信息都有了准信

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

家居要闻

空谷来音 朴素留白的侘寂之美

数码要闻

小米 Redmi Buds 6 青春版耳机通过多项认证,搭载恒玄蓝牙方案

军事要闻

普京提停火和谈条件 美防长迅速回应

无障碍浏览 进入关怀版