当前位置: 首页 > Linux

运维思维-你知道CMDB和监控的关系吗?

时间:2023-04-07 01:14:02 Linux

前言随着业务的发展和IT新技术的不断引入,应用系统的IT资源规模越来越大,IT架构的复杂度也日益增加。在这种情况下,就需要通过多种监控系统和不同的方式来感知业务系统是否活着,是否活着,用户体验如何。常见的监控系统类型包括:基础环境监控、网络监控、系统监控、数据库监控、应用监控、用户体验监控等。在这个场景下,我们在上一篇《如何改善监控问题,试试打造企业统一监控平台体系!》中讨论过,需要一个统一的监控平台管理多个告警源,在中层处理告警数据,为上层数据提供耗材监控。整体架构图如下:这里会有一个问题,监控和企业的CMDB是什么关系?我们对CMDB和监控的理解有以下两层关系:CMDB需要为监控系统提供必要的支撑数据,对告警信息进行汇聚、立体化、规范化。CMDB还需要开通一个通道到监控系统。当有新的对象添加到CMDB时,该对象可以自动添加到监控系统中;同时,当配置数据发生变化时,可以通过监控系统发送必要的告警信息。先说第一层关系。监控系统,比如zabbix,当某个对象的某个监控指标达到阈值时,会发出告警:XX指标告警和XX对象的详细信息。并且可以在zabbix中配置监控项之间的依赖关系,实现告警的汇聚关联。但是这里有一个问题。我们想象一个场景:你是一家大型2C公司的DBA。冬夜的凌晨三点,外面刮着西北风。突然,手机铃声大作,并有报警信息提示应用系统A数据库节点01连接异常。警报。告警信息的内容是有限的。要不要起来打开电脑做进一步处理?很困惑,对吧?其实作为管理员,在收到这个告警信息的时候,除了知道数据库有问题之外,其实还想知道更多的信息,比如:这个数据库属于什么应用系统,是什么环境位于,是否是高可用集群,应用的负责人是谁,哪些应用系统需要依赖这个应用系统,最新的数据库是否有配置变化等,以便进一步判断并安排下一步操作:比如冬天的清晨,是否起床打开电脑。那么这个时候,我们就需要一个系统,能够提供应用层级拓扑结构、集群信息、模块信息、资源实例、关联关系等信息。这个系统就是CMDB。两者的融合融合有了CMDB之后,当有告警发生时,我们可以让告警系统去CMDB中查询告警对象相关的综合配置信息,从而提供最准确、丰富、规范的告警信息.比如在前面的场景中,如果我们知道数据库实例01属于应用系统A的测试环境,并且有一个高可用集群,那么理论上当前没有用户访问这个数据库。电脑呢?反之,如果发现数据库是系统A的生产环境数据库,由于最近升级,目前是单点模式,而系统B和C需要依赖系统A,那就赶紧起来处理,并通知B和C启动相应的预案机制,将影响降到最低。这里,CMDB需要具备向监控系统提供数据的能力,需要有相应的数据查询和读取接口信息,并且可以方便的集成。另一方面,CMDB也需要主动将自身的数据同步到监控系统。比如我们是不是在某个系统中启动了一批新的虚拟机节点,提交工单,记录CMDB配置信息,然后在监控中再次手动配置?显然不太合理吧?这时,CMDB需要能够主动向监控系统推送新的对象信息,由监控系统根据已有的监控模板下发代理,配置监控协议,开始监控。另外,如果CMDB扫描发现某台主机的实际配置信息与当前CMDB库中存储的信息不一致,是不是也应该通过监控系统发出告警,通知管理员做进一步处理?所以这里可以看出监控系统和CMDB是息息相关的。更要命的是,一个企业的监控系统往往不止一套。如果每个监控系统都要和CMDB集成,会很累。这就需要有监控中心的概念,统一告警管理。我们不需要将每个监控系统直接与CMDB集成。我们只需要将所有监控系统接入统一报警中心模块,统一报警模块与CMDB监控对接,共享信息。这样我们的每一个告警在发出的时候都可以根据CMDB里面的信息变成一个标准化的、立体的告警,而不是一个扁平化的告警。只有这样的提醒才能真正凸显价值。本文由腾讯蓝鲸智云编辑发布。腾讯蓝鲸智云(简称蓝鲸)软件系统是一套基于PaaS的技术解决方案,致力于打造行业领先的一站式自动化运维平台。目前已经推出社区版和企业版,欢迎体验。官网:https://bk.tencent.com/下载链接:https://bk.tencent.com/download/社区:https://bk.tencent.com/s-mart/community/question