文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据库监控系统建设,看看运维团队是如何实现的

2024-12-03 04:00

关注

基于以上监控告警需求,并结合在对prometheus、阿里云数据库监控等一些优秀的监控系统架构调研的基础上,设计了伴鱼数据库监控系统。相比其它监控系统,新系统包含以下核心功能:

下面从数据库监控整体架构详细介绍下监控各组件设计以及背后设计的一些想法。

2. 监控整体架构

伴鱼数据库监控整体架构,如下图所示。

各组件的功能,说明如下:

2.1 数据采集

伴鱼的数据库监控,目前主要分数据库服务监控和主机监控两类,对应着数据采集分主机指标采集和数据库性能指标采集两种。监控具体采集哪些指标,我们参照了业界一些优秀开源监控系统,比如阿里云数据库服务监控,来采集我们的监控指标数据。

针对具体的指标数据采集,我们设计了四种agent。其中node agent负责采集机器指标数据,因为机器某些指标采集需要在本机执行系统命令,所以node agent在机器初始化时部署。数据库服务agent部署在公司内部的k8s容器内,多副本方式,支持采集指标动态添加。比如TiDB指标的采集,如下图所示,如果想增加某个指标采集,只需动态添加对应的指标项和查询语句即可。

2.2 任务调度

schedule任务调度模块负责监控任务的调度执行,如下图所示。程序在启动时加载监控任务,在指定采集时间间隔,通过集群名称从db config service获取对应的集群信息(包括ip、端口和集群角色),调度对应的任务执行数据采集。每个集群任务成功采集后,会通知monitor模块进行报警分析。

2.3 数据存储

监控数据存储我们选用了当前流行的时序数据库InfluxDB,主要基于以下几点考虑:

2.4 报警规则

通过监控任务,灵活配置数据采集时间间隔,在采集到监控数据后,我们可以做细粒度的报警策略。报警规则如何设计,我们做了如下考虑:

基于以上要求,我们从报警模版、报警指标和报警策略三个方面设计了报警规则。

2.4.1 报警模版

报警模版由规则名称、角色、指标、阀值和策略五个部分组成,如下图所示。

通过服务报警模版,我们可以很方便的将报警指标和策略拼接成规则应用到各服务集群进行报警,同时还可以轻松实现个别集群报警的差异化配置。报警模版应用到服务集群,如下图所示。

模版中一条规则,简单点说,其实就是报警触发条件。如何执行报警,其实就是将一条规则映射成一条数据库查询语句,查询满足的条件的数据是否达到报警阀值。比如下面这条规则,简单介绍下是如何做映射的。

首先,我们看一下监控表中已经采集到对应指标的监控数据,如下图所示。

其次,集群在任务采集时,我们可以拿到具体的集群信息,包括ip、端口和角色。报警服务根据报警模版里的规则,将具体的规则映射成查询语句,如下图所示。

最后,把满足报警规则的服务,按照集群、主机和角色维度报警出来,如下图所示。

2.4.2 报警指标

报警指标可以理解为我们需要监控的项目,比如CPU使用率、机器负载和磁盘空间等,如下图所示。

数据指标采集项比较多,我们可以选择我们关心的或者能快速反应服务问题的指标作为报警指标。这里的指标名称与报警模版中的规则名称一一对应,即将规则名称与数据库表及查询条件映射起来。

2.4.3 报警策略

目前,报警策略分为两种,如下图所示。每次采集完数据,都会通知monitor模块触发规则分析,检查是否达到报警阀值。报警每触发一次,都会检查上一次报警时间,保证在报警时间间隔内,不会重复报警。

2分钟内,8次(每分钟采集4次数据)中有4次满足条件,钉钉告警

2分钟内,8次(每分钟采集4次数据)中有4次满足条件,钉钉和电话同时告警,配置如下图所示

2.5 监控数据展示

数据监控不仅可以为我们提供准实时状态展现,还能帮助做故障回溯、风险预测和大盘监控。日常问题处理和故障复盘,我们希望在一个页面既能查看一个集群各角色的机器指标,又能看到各角色的数据库性能指标,而不用在各个指标页面来回跳转,如下图所示。

同时,我们可以利用采集的监控数据,定制我们的数据库监控大盘。有了监控大盘,我们可以做日常巡检,及时发现性能风险,如下图所示。

比如我们通过tidb大盘巡检,发现集群延时升高,并及时将其解决,减少风险,如下图所示

3. 总结

伴鱼数据库监控系统已经运行近半年,在这期间,日常巡检和报警帮助我们发现了多起数据库性能问题,并及时加以解决。目前,监控系统还有一些待完善的地方,比如告警收敛、时序数据库高可用等问题。未来,我们将继续深挖监控系统的潜力,为伴鱼数据库保驾护航。 

 

来源:高效运维内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯