您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[OceanBase]:蔡飞志:看Zabbix如何基于OceanBase高效解决监控系统三大痛点 - 发现报告
当前位置:首页/行业研究/报告详情/

蔡飞志:看Zabbix如何基于OceanBase高效解决监控系统三大痛点

信息技术2024-08-23-OceanBase王***
AI智能总结
查看更多
蔡飞志:看Zabbix如何基于OceanBase高效解决监控系统三大痛点

看Zabbix如何基于OceanBase高效解决监控系统三大痛点 蔡飞志 OceanBase技术专家 目录 Contents 01业务背景介绍 Zabbix监控系统和使用介绍 02监控数据管理的痛点 监控数据量大,磁盘占用高,分区表维护困难,增删耗时长 03OceanBase实践 OceanBase的七大竞争力、Zabbix存储由MySQL替换为OceanBase、测试遇到的问题 04总结 用技术让海量数据的管理和使用更简单 01业务背景介绍 Zabbix功能简介 Zabbix监控系统介绍 Zabbix监控系统架构 •可从任何设备、系统、应用程序上采集数据 •可以自定义数据采集 •自定义灵活的问题阈值 •对趋势预测作出积极反应 •关键问题告警 •通过强大的数据可视化 •ZabbixServer:负责接收和处理从各个监控代理(Agent)或主动模式(Activemode)的监控信息,并将结果存储在数据库中。 •监控代理(Agent):安装在被监控设备上,负责采集并发送监控 数据给ZabbixServer。 •数据库:用于存储ZabbixServer接收到的监控信息。 •前端界面:提供Web界面,用于配置监控项、图像、触发器等,并展示监控数据。 •报警机制:当监控项的值超出预设的阈值时,Zabbix可以通过邮件、 短信等方式进行报警。 •远程命令执行:Zabbix还支持通过远程命令执行功能来控制、管理被监控设备。 agent S M S proxyZabbixserverDB集群 为何选择Zabbix 兼容性高 支持多种监控方式、监控对象 (网络、系统、硬件、存储、应用等等)、告警机制;丰富的API和扩展方式 性能强大 高效的数据收集和处理能力,监控设备接近上万,监控项数量千万级别,触发器数量百万级别 开源稳定 替换商业监控软件,降低运维成本,经过多年社区的发展,已经成为一种成熟、稳定、可靠的监控解决方案 02 监控数据管理的痛点 Zabbix作为企业级监控解决方案,可以监控多种组件,如服务器、网络设备、数据库、应用程序等。在企业级监控中,需要监控的项目数量通常较多,每个项目又可能需要监控多个指标,导致产生的数据量非常庞大。以一台MySQL服务器为例,一台就有近300个监控项,涉及到硬件状态、服务状态等。 低峰期数据每日新增约50G 磁盘容量有限,业务高峰时磁盘告警频发 性能瓶颈,MySQL出现单点读写瓶颈 在Zabbix中,有几张数据写入非常大的表,需要定期清理,在生产环境中,监控数据保留三个月。将原始表进行改造,把非分区表改为按时间分区的分区表(range分区类型)。 并通过分区表维护脚本来维护分区表,删除保留期限之外的数据。 开始 打开维护窗口 关闭告警通道 运行分区管理脚本 输出日志 运行日志 所有分区增删成功 是窗口时间充足否 运行分区管理脚本 额外申请维护窗口 结束 history 按天分区,数据保留一个月 history_uint Zabbix大表分区规划 history_log history_str 按月分区,数据永久保留 history_texttrends trends_uint 需要额外的维护时间 维护时间内不能完成会造成Zabbix出错 脚本有失败的风险 业务规模 小型业务 中型业务 大型业务 核心业务 小规格机器 MySQL 主机 DB2 Ⅳ 高规格 RAC 高规格 RAC 共享存储 高规格机器 Oracle 传统数据库选型 ⅠIIⅢ OB OB OB OB 高规格 OB 高规格 OB 高规格 OB 高规格 OB OB OB OB OB OB OB OB OB 小规格 OB OceanBase 对应用透明的扩展性-Zone内扩展(垂直扩容) OBServer P1 P2 P3 P4 OBServer P1 P2 P3 P4 Driver/Proxy OBServer P1 P2 P3 P4 在OB集群里追加服务器 OBServer P5 P6 P7 P8 OBServer P5 P6 P7 P8 OBServer P5 P6 P7 P8 修改租户的Unit数 OBServer P2 P P ZONE1 OBServer P6 ZONE2 OBServer ZONE3 LeaderFollower 数据自动均衡 •数据同步速度>500MB/s •无需停服务 对应用透明的扩展性-水平扩zone(水平扩容) Driver/Proxy OBServer OBServer OBServer OBServer OBServer P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P3 P4 P3 P4 P3 P4 P3 P4 OBServer OBServer OBServer OBServer OBServer P5 P6 P5 P6 P5 P6 P5 P6 P7 P8 P7 P8 P7 P8 P7 P8 集群级别追加zone 数据自动进行复制 P3 P6 P4 P •数据同步速度>500MB/s P5 P7 ZONE1 ZONE2 P8 ZONE3 ZONE4 ZONE5 LeaderFollower 自动选出Leader P •根据zone的优先级 •无需停服务 大集群&多租户 大集群:将长尾应用的多实例MySQL统一进行管理,有效提高资源密度,消除存储碎片。 多租户:实现数据库内核级虚拟化,满足数据安全隔离的同时,提供基于业务画像的可伸缩计算资源,同时通过Leader打散实现混部。 通过提升资源密度的方式,实现满足相同业务需求的情况下,降低资源成本。 03OceanBase实践 OceanBase的七大关键竞争力 完全自主研发14年完全自主研发,代码级可控,大规模金融核心场景12年可靠性验证 原生分布式全量数据校验真正实现数据强一致,数据不丢失,高可用,平滑扩展 单机分布式一体化 自研一体化架构突破高性能和高可用,实现应用无限扩展和服务永远在线 HTAP混合事务与实时分析处理 一份数据既能做事务处理又能实时分析,通过HTAP助力拓展更多可能 Oracle/MySQL平滑迁移 Oracle/MySQL平滑迁移快速、最小成本搬迁应用与数据 高级压缩技术 基于LSM-Tree的高压缩引擎平衡了“性能”和“压缩”的瓶颈,有效降低存储成本70%-90% 原生多租户 原生多租户,资源隔离按需使用,灵活管理 数据一致性 OceanBase原生分布式 动态扩缩容 数据库内置多种强校验机制,能够自动发现多副本数据的不一致、网络数据错误、磁盘静默错误、索引与主表的不一致错误等,保证数据可靠。基于paxos选举协议在故障发生时进行自主选举。少数派节点发生宕机时,支持快速无损自动切换,RTO<30秒 高可用性 集群级: 与传统单机数据库相比,基于分布式架构的OceanBase数据库提供灵活的在线扩展性。在集群持续可用的前提下,提供在线扩缩容 租户级: •水平扩缩容:调整租户资源池的UNIT_NUM数 •垂直扩缩容:调整UNIT的资源规格 运营商网络/CDN 机房1号 机房2号 机房3号 机房4号 机房5号 负载均衡 负载均衡 负载均衡 负载均衡 负载均衡 网络注册中心/消息/事务 网络注册中心/消息/事务 网络注册中心/消息/事务 交财交财 易务易务 交财交财 易务易务 交财 易务 …. 00010203 …. 0203…… …. …. 04050203 0203…… …. 00010203 OBServer SQL引擎 ZONE-1 OBServer 总控服务(主)RootService SQL引擎 OBServer SQL引擎 事务引擎事务引擎事务引擎 存储引擎存储引擎存储引擎 分区 分…分 区区 分区 分…分 区区 分区 分…分 区区 数据高可靠服务高可用 OBServer SQL引擎 ZONE-2 OBServer 总控服务(备)RootService SQL引擎 OBServer SQL引擎 事务引擎事务引擎事务引擎 存储引擎存储引擎存储引擎 分区 分…分 区区 分区 分…分 区区 分区 分…分 区区 ZONE-3 OBServer 总控服务(备) OBServer SQL引擎 RootService SQL引擎 OBServer SQL引擎 事务引擎事务引擎事务引擎 存储引擎存储引擎存储引擎 分区 分…分 分 区区 区 分…分分 区区 区 分…分 区区 超越6级国标灾难恢复能力,同一中心数据库异常、跨数据中心中断时数据不丢失,业务不停机 OceanBase高级压缩 表名 数据行数 迁移前大小(M) 迁移到OceanBase表大小(M) OceanBase压缩率 tb01 798728403 519445 117162 4.43 tb02 1080966456 252357 59213 4.26 tb03 161642614 247981 43918 5.65 tb04 238384756 137625 33536 4.1 tb05 104799544 48013 9329 5.15 tb06 17811054 55933 3257 17.17 tb07 10779978 8717 3025 2.88 tb08 28050594 4905 1876 2.61 tb09 15121626 3125 443 7.06 tb10 4004670 789 356 2.22 tb11 1254191 3273 205 15.95 1b12 909331 521 146 3.57 平均压缩率 1282684 272466 4.71 注:使用OceanBase3.1.4版本 库的collation显示不正确 在Zabbixserver连接OceanBase后,会获取数据库的collation。Zabbix报错: 10310:20230406:224022.650Zabbixsupportsonly"utf8_bin,utf8mb3_bin,utf8mb4_bin"collation(s).Database"zabbix"hasdefaultcollation"utf8mb4_general_ci" 从zabbix代码中可以看到是查了information_schema.SCHEMATA表的数据。 查看information_schema.SCHEMATA这张视图,发现在定义的时候,DEFAULT_COLLATION_NAME默认固定为‘utf8mb4_general_ci’ 不支持共享锁(lockinsharemode) Zabbix系统在升级过程中会涉及到表结构的修改,比如会涉及到把把text修改为varchar,而OB3.1.x版本不支持这一操作,造成升级失败。 MySQL: 在MySQL中能很好的支持lockinsharemode语法。 OceanBase: 在OceanBase4.1.0版本测试lockinsharemode,会报错语法不支持。 1 易处理问题 •版本号问题:通过修改 OBProxy的参数解决。 •lockinsharemode语法支持和功能实现。 •库的collation显示不正确的问题。 难点问题 2 3 遗留问题 •慢查询问题:在测试中发现 了大量的慢查询,需要优化。 04总结 突破数据瓶颈,提升运维效率 在Zabbix存储替换项目中,OceanBase的高级压缩特性、多副本Paxos强一致特性以及分区表易于管理的在线DDL等优点,在实践过程中大大提升了用户数据存储和处理效率,有效降低了成本。 系统瓶颈 数据量大,性能有上限,分区表不易维护 突