美团 MySQL 数据库巡检系统的设计与应用

电力巡检系统(含数据库) 基于百度地图API开发的一款智能电力巡检系统 主要功能有 我的工作平台:对于登录用户的信息修改,和代办列表 系统用户权限:以管理员身份登录时,可以对于非管理员的用户进行操作 用户组管理:对于登录用户所拥有的身份权限的设置 杆塔管理:对于地图上的杆塔进行标出位置等 路线管理:对于巡检时的顺序进行设置 巡检管理:对于杆塔的巡检任务的分配 消缺管理:对于问题杆塔的维修任务分配 回执信息:对于任务的回执 新人程序员请务必轻喷 立即下载

说明:
作者:王琦
来源:美团技术团队
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请访问GitHub


我们生活中随处可见各种巡检系统,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他 IT 系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。

一、背景

为了保障数据库的稳定运行,以下核心功能组件必不可少:

图 1 数据库运维保障核心功能组件
其中,数据库巡检作为运维保障体系最重要的环节之一,能够帮助我们发现数据库存在的隐患,提前治理,做到防患于未然。对于大规模集群而言,灵活健壮的自动化巡检能力,至关重要。

任何系统都会经历一个原始的阶段,最早的巡检是由中控机 + 定时巡检脚本 + 前端展示构成的。但是,随着时间的推移,老巡检方案逐渐暴露出了一些问题:

  • 巡检定时任务执行依赖中控机,存在单点问题;
  • 巡检结果分散在不同的库表,无法进行统计;
  • 巡检脚本没有统一开发标准,不能保证执行的成功率;
  • 每个巡检项都需要单独写接口取数据,并修改前端用于巡检结果展示,比较繁琐;
  • 巡检发现的隐患需要 DBA 主动打开前端查看,再进行处理,影响整体隐患的治理速度;
  • ……

所以我们需要一个灵活、稳定的巡检系统来帮助我们解决这些痛点,保障数据库的稳定。

二、设计原则

巡检系统的设计原则,我们从以下三个方面进行考虑:

  • 稳定 :巡检作为保证数据库稳定的工具,它自身的稳定性也必须有所保证;
  • 高效 :以用户为中心,尽量化繁为简,降低用户的使用成本,让新同学也能迅速上手治理和管理隐患;提高新巡检部署效率,随着架构、版本、基础模块等运维环境不断变化,新的巡检需求层出不穷,更快的部署等于更早的保障;
  • 可运营 :用数据做基础,对巡检隐患进行运营,包括推进隐患治理,查看治理效率、趋势、薄弱点等。

三、系统架构

美团 MySQL 数据库巡检系统架构图设计如下所示。接下来,我们按照架构图从下到上的顺序来对巡检系统主要模块进行简单的介绍。

图 2 美团 MySQL 数据库巡检系统架构图
1. 执行层

  • 巡检执行环境 :由多台巡检执行机组成,巡检任务脚本会同时部署在所有执行机上。执行机会定时从巡检 Git 仓库拉取最新的脚本,脚本使用 Python Virtualenv + Git 进行管理,方便扩充新的执行机。
  • 任务调度 :巡检任务使用了美团基础架构部研发的分布式定时任务系统 Crane 进行调度,解决传统定时任务单点问题。Crane 会随机指派某一台执行机执行任务,假如这台执行机出现故障,会指派其他执行机重新执行任务。一般一个巡检任务对应着一个巡检项,巡检任务会针对特定的巡检目标根据一定的规则来判断是否存在隐患。
  • 巡检目标 :除了对生产数据库进行巡检以外,还会对高可用组件、中间件等数据库周边产品进行巡检,尽可能覆盖所有会引发数据库故障的风险点。

2. 存储层

巡检数据库 :主要用来保存巡检相关数据。为了规范和简化流程,我们将巡检发现的隐患保存到数据库中,提供了通用的入库函数,能够实现以下功能:

  • 自动补齐隐患负责人、隐患发现时间等信息;
  • 入库操作幂等;
  • 支持半结构化的巡检结果入库,不同巡检的隐患结果包括不同的属性,比如巡检 A 的隐患有“中间件类型”,巡检 B 有“主库 CPU 核数”,以上不同结构的数据均可解析入库;
  • 针对表粒度的隐患项,如果分库分表的表出现隐患,会自动合并成一个逻辑表隐患入库。

巡检脚本 Git 仓库 :用来管理巡检脚本。为了方便 DBA 添加巡检,在系统建设过程中,我们增加了多个公共函数,用来降低开发新巡检的成本,也方便将老的巡检脚本迁移到新的体系中。

3. 应用层

**集成到数据库运维平台 **:作为隐患明细展示、配置巡检展示、管理白名单等功能的入口。为了提高隐患治理效率。我们做了以下设计。

  • 隐患明细展示页面会标注每个隐患出现的天数,便于追踪隐患出现原因。
  • 配置新的巡检展示时必须要同时制定隐患解决方案,确保隐患治理有章可循,避免错误的治理方式导致“错上加错”。

隐患运营后台 :这个模块主要目的是推进隐患的治理。

  • 运营报表,帮助管理者从全局角度掌握隐患治理进展,报表包括隐患趋势、存量分布、增量分布、平均治理周期等核心内容,进而由上到下推动隐患治理;报表数据同样是通过 Crane 定时任务计算获得。
    = 隐患治理催办功能,用来督促 DBA 处理隐患。催办内容中会带有隐患具体内容、出现时长、处理方案等。催办形式包括大象消息、告警,具体选用哪种形式可根据巡检关键程度做相应配置。

外部数据服务 :主要是将巡检隐患数据提供给美团内部其他平台或项目使用,让巡检数据发挥更大的价值。

  • 对接先知平台,美团 SRE 团队开发的主要面向研发人员(下称 RD)用户的风险发现和运营平台,平台接收各服务方上报的隐患数据,以 RD 视角从组织架构维度展示各服务的风险点,并跟进 RD 处理进度。巡检系统会把需要 RD 参与治理的隐患,比如大表、无唯一键表等,借助先知平台统一推送给 RD 进行治理。
  • 运维周报,主要面向业务线 RD 负责人和业务线 DBA,以静态报告形式展示业务线数据库运行情况以及存在的问题,巡检隐患是报告内容之一。

四、巡检项目

巡检项目根据负责方分为 DBA 和 RD,DBA 主要负责处理数据库基础功能组件以及影响服务稳定性的隐患。RD 主要负责库表设计缺陷、数据库使用不规范等引起的业务故障或性能问题的隐患。也存在需要他们同时参与治理的巡检项,比如“磁盘可用空间预测”等。目前巡检项目共 64 个,类目分布情况如下图所示:

图 3 巡检项类目分布

  • 集群 :主要检查集群拓扑、核心参数等集群层面的隐患;
  • 机器 :主要检查服务器硬件层面的隐患;
  • Schema/SQL :检查表结构设计、数据库使用、SQL 质量等方面的隐患;
  • 高可用 / 备份 / 中间件 / 报警 :主要检查相关核心功能组件是否存在隐患。

下面,我们通过列举几个巡检任务来对巡检项做简单的说明:

五、成果

美团 MySQL 巡检系统已稳定运行近一年时间,基于新巡检体系上线的巡检项 49 个。通过巡检体系持续运行,在团队的共同努力下,我们共治理了 8000+ 核心隐患,近 3 个月隐患治理周期平均不超过 4 天,将隐患总数持续保持在极小的量级,有效地保障了数据库的稳定。

图 4 隐患运营 - 团队内各虚拟小组隐患平均治理周期
下面的隐患趋势图,展示了近一年中隐患的个数,数量突然增长是由于新的巡检项上线。从整体趋势上看,隐患存量有非常明显的下降。

图 5 隐患运营 - 隐患总量趋势情况
除了推动内部隐患治理之外,我们还通过对接先知平台,积极推动 RD 治理隐患数量超过 5000 个。
图 6 对接先知 - 推动 RD 治理隐患

为了提升用户体验,我们在提升准确率方面也做了重点的投入,让每一个巡检在上线前都会经过严格的测试和校验。

对比其他先知接入方,DBA 上报隐患在总量、转化率、反馈率几个指标上都处于较高水平,可见我们上报的隐患风险也得到了 RD 的认可。

图 7 对接先知 - 各接入方上报隐患情况
指标说明:

  • 反馈率 = 截止到当前时刻反馈过的风险事件数量 / 截止到当前时刻产生的风险事件总量 * 100%;
  • 反馈准确率 = 截止到当前时刻反馈准确的风险事件数量 / 截止到当前时刻反馈过的风险事件总量 * 100%;
  • 转化率 = 截止到当前时刻用户反馈准确且需要处理的风险事件数量 / 截止到当前时刻产生的风险事件总量 * 100%。

六、未来规划

除了继续完善补充巡检项以外,未来巡检系统还会在以下几个方向继续探索迭代:

  • 提高自动化能力,完善 CI 和审计;
  • 加强运营能力,进一步细化每个隐患的重要程度,辅助决策治理优先级;
  • 隐患自动修复。
自动巡检系统和数据库.sh 文档会自动巡检oracleASM和/u01的磁盘使用情况,最后结果会输出到一个oracle数据库的check_record表里面,做好定时任务每天查询一下check_record表,可以节省大量巡检oracleASM磁盘的时间。 立即下载

相关推荐

达妙电机MIT模式调参实战:如何从‘曲线偏离’到‘完美追踪’正弦波?

本文详细解析了达妙电机MIT模式调参实战,从曲线偏离到完美追踪正弦波的方法论。通过MATLAB实时曲线分析,深入探讨位置环(kp)和速度环(kd)的双重调节技巧,帮助工程师优化参数组合,提升电机控制精度和稳定性。

weixin_29053073的博客 732

MySQL 数据库巡检系统的设计与应用

数据分析模块是 MySQL 数据库巡检系统的关键步骤,它对采集到的数据进行分析和处理,得出数据库的性能瓶颈、安全问题和运行状态等信息。但是,随着数据量的不断增大,MySQL 数据库的性能和稳定性也面临着很大的挑战。某互联网公司拥有多个 MySQL 数据库,数据库的运行环境和数据量都不相同,为了提升数据库的性能和稳定性,公司决定建立一套 MySQL 数据库巡检系统。数据分析模块是 MySQL 数据库巡检系统的关键步骤,它对采集到的数据进行分析和处理,得出数据库的性能瓶颈、安全问题和运行状态等信息。

我是Java程序员廖志伟,感谢朋友们的支持! 765

手把手教你用CEFSharp打造防关联指纹浏览器(附完整代码)

本文详细介绍了如何基于CEFSharp框架,从零开始构建一个企业级的防关联指纹浏览器。通过剖析核心架构、多进程隔离实现、动态指纹混淆(如Canvas、WebGL)的实战代码,以及代理集成与性能优化,为跨境电商、广告投放等场景提供了一套可控、安全的开源解决方案。

fern8的博客 961

架构设计第五讲:数据巡检系统的设计与应用

本文是架构设计第五讲:数据巡检系统的设计与应用。保障系统上下游数据一致性

Jet_qi的博客 1546

从Gotham到Foundry:拆解Palantir三大产品线,看它如何用‘本体’统一企业数据与AI

本文深入解析Palantir的三大产品线Gotham、Foundry和Apollo,揭示其如何通过独特的'本体'架构实现企业数据与AI的无缝融合。从国防情报到商业决策,Palantir的产品架构展现了强大的数据整合与AI赋能能力,为企业构建数字孪生提供革命性解决方案。

weixin_30823001的博客 321

FDTD Script命令学习-farfield3d/farfieldux/farfielduy

介绍了farfield3d/farfieldux/farfielduy命令功能,及不同应用语法和参数介绍,以及对官网示例进行介绍。

jxxl_1314的博客 3098

mysql数据库巡检方案_美团 MySQL 数据库巡检系统的设计与应用

一、背景为了保障数据库的稳定运行,以下核心功能组件必不可少:其中,数据库巡检作为运维保障体系最重要的环节之一,能够帮助我们发现数据库存在的隐患,提前治理,做到防患于未然。对于大规模集群而言,灵活健壮的自动化巡检能力,至关重要。任何系统都会经历一个原始的阶段,最早的巡检是由中控机 + 定时巡检脚本 + 前端展示构成的。但是,随着时间的推移,老巡检方案逐渐暴露出了一些问题:巡检定时任务执行依赖中控机,存在单点问题;巡检结果分散在不同的库表,无法进行统计;

2401_85377403的博客 661

iOS马甲包过审实战:如何用5天时间搞定4.3审核(附完整代码混淆方案)

本文提供了一套为期五天的高效实战方案,专门解决iOS应用因重复或抄袭问题而被App Store的4.3条款拒绝的难题。方案涵盖深度分析、代码混淆、资源翻新及环境隔离等系统性步骤,并附有完整的代码混淆示例,旨在帮助开发者在合规框架内重塑应用,显著提升过审成功率。

weixin_29234239的博客 147

mysql数据库巡检工作内容_数据库巡检

数据库巡检的内容通常涵盖主机硬件、操作系统和MySQL巡检项。其中,主机/os巡检主要包括:主机的硬件配置、CPU/内存/磁盘使用率以及磁盘的I/O使用情况;MySQL巡检项包括:数据库配置、用户权限、大表数据量、业务表主键和自增长情况、数据库的并发性、当前和历史连接情况统计、备份执行情况以及日志记录和慢SQL的分析优化等。1、查看MySQL服务器配置信息及运行状况通过show variables...

weixin_39582724的博客 1961

【Python机器学习实战】 | 基于PCA主成分分析技术读入空气质量监测数据进行数据预处理并计算空气质量综合评测结果

主成分分析(Principal Component Analysis, PCA)是一种常用的机器学习和数据分析技术,用于降低数据维度、识别数据中的模式、发现变量之间的关系等。

一伦明悦的博客 1263

某头部金融APP防护机制逆向实录:从反调试到TEE加密的全链路攻防拆解

金融APP安全防护体系深度破解分析 本文详细拆解了某头部金融APP的三重防御机制破解过程。首先通过Frida绕过反调试技术,包括ptrace自我绑定、TracerPid检测和debuggerd监控;随后针对12种Root检测方法(如su文件检查、Magisk检测等)进行环境伪装,通过Hook系统调用伪造安全环境;最后逆向分析TEE加密模块,解密关键接口参数。整个破解过程涉及静态分析、动态调试和代码注入技术,揭示了金融级APP安全防护的实现原理与突破方法(注:所有操作均获授权,仅用于安全研究)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1400

Mysql日常巡检

本文旨在整理mysql从场景化运维角度来整理,常用的检查命令和处理方式,以供参考查看,为相关活动提供便利指导。

ABCDF129的博客 3130

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

美团mysql_美团MySQL数据库巡检系统的设计与应用

巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。我们生活中也随处可见各种巡检,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团...

weixin_42653691的博客 462

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

美团监控系统mysql_美团MySQL数据库巡检系统的设计与应用

巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。我们生活中也随处可见各种巡检,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团...

weixin_39872395的博客 285

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

美团MySQL数据库巡检系统的设计与应用

总第397篇2020年 第20篇巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大...

美团技术团队 1万+

mysql数据库巡检方案_美团MySQL数据库巡检系统的设计与应用

巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。我们生活中也随处可见各种巡检,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团...

weixin_42384743的博客 592

mysql自动化巡检_美团MySQL数据库巡检系统的设计与应用

巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。我们生活中也随处可见各种巡检,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团...

weixin_35125814的博客 447

access数据库应用系统客观题_美团MySQL数据库巡检系统的设计与应用

巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团的巡检系统架构是如何设计的,以及巡检系统是如何保障MySQL服务稳定运行的。对了,文末还有一个重要的招聘信息,可以了解一下!我们生活中随处可见各种巡检系统,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环...

weixin_39881575的博客 170

美团技术 mysql_美团MySQL数据库巡检系统的设计与应用

巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。我们生活中也随处可见各种巡检,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团...

weixin_30113575的博客 609

MySQL 数据库在美团巡检系统的设计与应用,看看有多牛?

点击“开发者技术前线”,选择“星标????”在看|星标|留言, 真爱文末顺手加我微信回复“666”,获取一份专属大礼包巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发...

开发者技术前线-DevolperFront 545

数据密集型应用系统设计 pdf_美团 MySQL 数据库巡检系统的设计与应用

(给数据分析与开发加星标,提升数据技能)来源:美团技术团队-王琦我们生活中随处可见各种巡检系统,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。一、背景为了保障数据库的稳定运行,以下核心功能组件必不可少:图1 数据库运维保障核心功能组件其中,数据库巡...

weixin_39623271的博客 695

美团监控系统mysql_美团 MySQL 数据库巡检系统的设计与应用

说明:作者:王琦来源:美团技术团队最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请访问GitHub我们生活中随处可见各种巡检系统,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他 IT 系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。一、背景为了保障数据库的稳定运行,以下核心功能组...

weixin_30540871的博客 193

数据库巡检 java_美团MySQL数据库巡检系统的设计与应用

巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。我们生活中也随处可见各种巡检,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团...

weixin_39602579的博客 256
上一篇: Stream的终极技巧分享,一步帮你高效处理数据,阿里的大牛都在用
下一篇: 趣操作,Tomcat如何实现一键式启停?
Java_Cappuccino
博客等级 码龄7年 17粉丝 64原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值