运维人都知道,CMDB和监控是运维必备的2大核心基础系统,这2个系统不构建好,那根本不用提高效运维、智能运维了。本篇主要讲在这2个系统的基础之上,如何让它们融合起来,提高运维服务能力。
这里简单介绍下监控系统,并着重讲解如何将两者结合,以发挥CMDB的价值以及提高监控的能力。
对于监控系统,我们一般有开源的监控系统Zabbix、Prometheus,还有其他一些优秀开源系统,当然也有很多商业的监控系统。这些监控系统都能满足我们的绝大部分需求,但是如何与我们的CMDB系统结合使用,很少有现成的方案,很多时候需要我们去做对接,有时候甚至是二次开发。
想要监控系统与CMDB的融合,提高监控的能力,有哪些方面可以去考虑呢?要回答这个问题,首先得明确监控系统的核心。监控系统的核心包括数据的采集、分析、运营等几个方面。
一 数据采集
采集数据是监控的基础,比如主机监控,我们需要确定采集哪些主机;不同的主机,监控的指标、频率等可能存在差异;监控某个应用,我们则需要关注这个应用部署在哪些服务器上,一般监控系统并未内置这些功能。在配置采集规则的时候,需要与CMDB中的数据、接口进行对接,实现监控采集对象与CMDB的融合。这样我们在大多数场景下,配置采集规则的时候就可以跳过机器本身,而从其他的维度对采集对象进行定义,如部门、业务、应用等。同时,CMDB中的数据在自动发现、流程驱动、手动编辑等多方面作用下,一直都在变更,监控系统也应该能够根据CMDB的变化自动调整监控对象。
图1. 监控数据采集与CMDB的关联
如上图,在监控系统中数据采集时的使用场景,图中节点列表表示我们要监控的应用所在的服务器,当CMDB中发生变化时,监控系统会自动同步到最新的服务器列表;采集关键字表示需要监控的对象,其中的变量也是根据CMDB中的返回值进行动态赋值的。
二 监控分析
分析主要包括告警数据的完善、告警策略的触发、告警通知、关联分析、根因分析等。
告警数据的完善,主要是通过通过查询CMDB信息,补充告警信息,为后续处理提供更多信息。对于告警策略,很多时候,不同的业务或者应用,对系统资源的使用存在很大的差异,甚至是在不同的时间段都存在巨大的差异,这种差异也需要告警规则通过结合CMDB来设置。
当告警发生时需要将告警推送给相应的哪些人,例如当主机负载过高时,我们可能要将告警推送给相应的开发负责人等。告警发生之后的关联分析、根因分析,我们需要结合CMDB中的相关的模型之间关系等进行拓扑分析等。
如下图,在监控系统中告警策略时的使用场景。节点列表表示哪些服务器需要告警,关联CMDB则表示告警会推送给哪些人。
图2. 监控告警策略与CMDB的关联
三 数据运营
常见的应用场景包括资源的使用、业务的健康度分析、成本核算等。多维度结合CMDB,对公司内部不同团队的工作质量进行准确评价,让监控数据发挥更大的价值。 很多场景下,我们甚至只有将CMDB和监控结合才能有效达到我们的目的,没有这种关联,监控很难做到与业务的关联,也不能很好地体现监控系统和CMDB的价值。
综合来说,只有将监控和CMDB融合,才能最大限度地提升CMDB和监控系统的价值,实现1+1>2的效果。