运维思考 | 你知道CMDB与监控是什么关系吗?[通俗易懂]

运维思考 | 你知道CMDB与监控是什么关系吗?[通俗易懂]企业随着业务的发展以及新IT技术的不断引入,应用系统的IT资源规模是越来越大,IT架构的复杂性也与日俱增。这种情况下,需要通过多种监控系统,不同的途径来感知业务系统活没活,活的好不好,用户体验怎样。…

企业随着业务的发展以及新IT技术的不断引入,应用系统的IT资源规模是越来越大,IT架构的复杂性也与日俱增。这种情况下,需要通过多种监控系统,不同的途径来感知业务系统活没活,活的好不好,用户体验怎样。常见的监控系统类型就包括:基础环境监控、网络监控、系统监控、数据库监控、应用监控、用户体验监控等等。

 

在这种场景下,我们在之前的文章《如何改善监控问题,试试打造企业统一监控平台体系!》一文中探讨过,就需要一个统一的监控中台来对下管理多个告警源,中间进行告警数据的处理,对上提供可消费的监控数据。整体架构图如下所示:

                                             

▲统一监控能力架构

▲统一监控能力架构

 

这里就会存在一个问题,监控和企业的CMDB之间是怎样的关系呢?

 

CMDB与监控

我们的理解有如下两层关系:

  • CMDB需要为监控系统提供必要的支撑数据,来收敛、立体化、标准化告警信息。

 

  • CMDB也需要打通到监控系统的通道,在新的对象加入CMDB的时候能够自动将该对象加入监控系统;同时在配置数据发生变化的时候,能够通过监控系统发出必要的告警信息。

 

我们先展开聊下第一层关系。监控系统,比如zabbix,在某个对象的某个监控指标达到阈值时候,会出发告警:XX对象的XX指标告警和详情信息等。并且可以在zabbix中配置监控项之间的依赖关系,实现告警的收敛和关联。

 

但是这里有一个问题,我们设想一个场景:你是一家大型2C公司的DBA,冬夜凌晨3点钟,外面西北风凛冽,突然手机铃声大作,有告警信息提示应用系统A数据库节点01出现连接异常告警。告警信息提示内容有限,此时的你是否要起来打开电脑做进一步的处理呢?

 

很纠结,对吧。其实作为管理员,收到这条告警信息的时候,除了需要知道这个数据库有问题,其实还想知道更多的信息,比如:这个数据库属于什么应用系统、位于什么环境、是否是高可用的集群、应用负责人是谁、哪些应用系统需要依赖这个应用系统、这个数据库最新是否有配置变更发生等等,以便做出进一步的判断和安排下一步的操作:比如在大冬天的凌晨,要不要起来打开电脑。那么这个时候,我们就需要一个系统能够提供:应用层次拓扑、集群信息、模块信息、资源实例、关联关系等信息,这个系统就是CMDB。

                                             

▲CMDB配置管理▲CMDB配置管理

两者的集成与融合

有了CMDB之后,在告警发生的时候呢,我们就可以让告警系统前往CMDB中查询跟这一告警对象有关的综合配置信息,以便提供最为准确、丰富和标准的告警信息。举例来说,上个场景中,如果我们知道数据库实例01是属于应用系统A的测试环境的,并且有高可用集群,当前理论上是没有用户访问这个数据库的,管理员又何苦受冻起床开电脑呢?

 

反过来讲,如果发现这个数据库是系统A的生产环境的数据库,并且由于最近在升级,当前是单点模式,同时还有系统B和C需要依赖系统A,那就赶紧麻溜的起来处理故障,并通知B和C启动相应的预案机制以尽可能降低影响。

 

这里,就需要CMDB具备提供数据给监控系统的能力,需要具备相应的数据查询、读取的接口信息,并且能够方便的集成。

▲蓝鲸API网关&CMDB的API接口列表▲蓝鲸API网关&CMDB的API接口列表

另外一方面,CMDB也需要主动同步自己的数据到监控系统中。举个例子,我们上线了某个系统的一批新的虚拟机节点,提完工单,录完CMDB配置信息,再手动到监控里面配置一遍吗?显然不是很合理,对吧?这个时候就需要CMDB能够主动将新的对象信息推送给监控系统,监控系统按照既有监控模板,下发agent、配置监控协议、启动监控等。

 

另外,如果CMDB通过扫描发现某个主机的实际配置信息与当前CMDB库中存储的信息不一致,是不是也应该通过监控系统告警出来,通知到管理员进一步处理呢?

 

所以这里你看,监控系统与CMDB之间是紧密关联的。而更要命的是企业里面往往监控系统不只一个,如果每个监控系统都要与CMDB做一遍集成,非累死不可。这里面就需要有监控中台和统一告警管理的概念,我们不需要每个监控系统直接与CMDB集成,只需要把所有的监控系统接入到统一告警中心模块中来,由统一告警模块来与CMDB监控对接,共享信息。这样,我们的每一条告警在发出的时候,都可以依据CMDB中的信息,变成标准化、立体化的告警,而不是扁平的告警。这样的告警才能真正凸显价值。

 

作者:赵海兵

END

往期回顾

【干货】4种Oracle DBaaS部署模式,你在使用哪一种?

如何改善监控问题,试试打造企业统一监控平台体系!

云计算 | 数据在云上安全吗?DDoS攻击怎么办?

如何基于TAPD实践Scrum的敏捷开发?

嘉为蓝鲸出席GOPS全球运维大会:运维巅峰时代,研运中台或是唯一选择

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10749.html

(0)
上一篇 2022-12-22
下一篇 2022-12-22

相关推荐

  • Redis持久化存储详解「建议收藏」

    Redis持久化存储详解「建议收藏」为什么要做持久化存储? 持久化存储是将 Redis 存储在内存中的数据存储在硬盘中,实现数据的永久保存。我们都知道 Redis 是一个基于内存的 nosql 数据库,内存存储很容易造成数据的丢失,因…

    2022-12-25
    134
  • 使用Anaconda安装Python的方法

    使用Anaconda安装Python的方法Python是一门强大的编程语言,运用广泛,而Anaconda是一款方便易用的Python环境管理器,可以允许你在同一个系统上管理多个Python环境。所以,在安装Python环境时,可以使用Anaconda带来的便利。本文将介绍使用Anaconda安装Python的方法。

    2024-06-17
    25
  • Redis服务之常用配置(二) – Linux

    Redis服务之常用配置(二) – Linux上一篇博客我们聊了下redis的INCLUDE、NETWORK、GENERAL配置段相关配置和说明,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/133831

    2023-03-29
    149
  • win7原版系统安装教程_windows怎么安装

    win7原版系统安装教程_windows怎么安装
    场景 PostgreSQL PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处…

    2023-04-08
    141
  • 治理世界的Python列表

    治理世界的Python列表Python是一种广泛使用的高级编程语言,列表是Python中的一种常见的数据类型。列表是一个有序的可变序列,可以存储任何类型的对象,包括数字、字符串和其他列表等。

    2024-01-12
    92
  • js-xlsx + handsontable + echarts实现excel上传编辑然后显示成图表

    js-xlsx + handsontable + echarts实现excel上传编辑然后显示成图表然后在浏览器里面预览和编辑, 最后再选择一些数据,用echarts生成报表. 然后再监听 FileReader 对象的 onload 事件 , 在 onload 事件 的回调函数中,我们可以获取到 读取的二进制数据. FileReader.readAsArrayBuffer()…

    2023-03-02
    135
  • 第一天MySQL

    第一天MySQLMySQL学习笔记 2020/5/4 一、 数据库的相关概念 数据库的好处 1.1 能够永久性的保存数据,实现数据持久化 1.2 可以实现结构化查询,方便管理 2.数据库相关概念 2.1数据库(DB-

    2023-02-24
    121
  • Kettle的安装及简单使用[亲测有效]

    Kettle的安装及简单使用[亲测有效]Kettle的安装及简单使用 一、kettle概述 1、什么是kettle Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高

    2023-04-25
    125

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注