如果您不了解CMDB或者正准备研究如何建设并维护好一套CMDB,可以参考一下这篇文章 开源CMDB
在成功建设好CMDB之后,如何让它不再成为一个孤立的系统,而是真正发挥其价值,充分利用起来呢?接下来的一系列文章将讨论这个问题,本文主要探讨在监控场景下如何使用CMDB。
01 前提
消费CMDB数据,必须确保数据的准确性和实时性。如果缺乏这样的基础,就无法进行数据消费,CMDB本身也就没有多少价值。因此,作为CMDB的建设者和运营者,必须严格建立数据录入和变更的规范,尽可能纳管各种运维场景中的基础信息。这些信息包括基础设施层(物理机、虚拟机、云主机、网络设备、IP、域名等)、软件信息(数据库、中间件、业务系统等)、业务类信息(事业部、业务线、应用)、人员组织结构,以及各种资源之间的关联关系。
图1展示了CMDB中一般存储的数据类型。
图1 CMDB元数据
02 消费场景
在监控场景中,有许多使用消费CMDB的情况,无论您使用哪种监控系统,只有与CMDB结合使用,才能使监控变得更加灵活和高效,反过来,通过监控,也可以进一步提高CMDB数据的准确性。监控数据的整个生命周期可以概括为数据采集、传输、处理、存储、可视化、告警和分析优化。其中,与CMDB相关的环节主要包括数据采集、处理、可视化、告警和分析优化。
图2展示了监控数据的各个环节。
图2 监控系统各个环节
1.数据采集
数据是监控的基础,主要包括指标数据、日志数据、追踪数据。这三个方面是可观测性的基本支柱,可以与CMDB深度结合。
在指标监控中,主机监控是一个例子,比如使用Zabbix对主机进行分组;不同的主机可能有不同的监控指标和频率;在进程监控中,需要确定哪些进程位于哪些主机上以及如何进行监控;同样,日志监控需要确定监控哪些日志以及在哪些机器上进行监控等;在大多数情况下,我们可以跳过机器本身,直接从应用和业务本身出发来配置采集规则。通过这种联动,当CMDB的数据发生变更时,监控系统可以自动发现并调整监控计划,从而减少监控的管理复杂性。
图3、4和5提供了具体示例。其中节点列表表示我们要监控的CMDB中某个应用所在的服务器。当CMDB发生变化时,监控系统会自动同步到最新的服务器列表。图2中的日志路径、图3中的进程关键字和用户等信息都由CMDB中相应的字段确定。其中的变量({{}})根据CMDB中的返回值动态赋值。
图3 监控的节点关联CMDB应用
图4 日志采集目标以及文件路径关联CMDB
图5 进程监控与CMDB关联
2.数据处理
数据处理主要包含清洗、丰富、聚合、计算统计指标等。对采集的数据进行数据的自动清理、删除无效数据、对告警指标进行丰富、对告警数据进行再聚合处理等,所有这些步骤都可以与CMDB结合使用,以实现更高效的数据处理。
图6,与CMDB关联实现数据标签的丰富,变量由CMDB中的字段动态确定。
图6 数据采集标签与CMDB关联
3.数据可视化
处理后的数据可以使用可视化工具展示给用户,例如图表、仪表盘和报表等形式,以便用户能够直观地理解和分析数据。通过将监控数据与CMDB进行关联,可以轻松地从众多监控数据中筛选出用户所关注的对象。
如图7,在CMDB中的服务器与其负责人之间存在关联,因此用户只需查看与自己相关的服务器即可。
图7 查看在CMDB中负责的设备
4.告警
监控系统可以设置报警规则,当某些指标或事件达到触发条件时,系统会触发报警并发送通知给相关人员。
图8,规则可以配置是否将对应告警发送给相关的负责人。图8结合CMDB对告警信息进行丰富、可将不同的标签进行统一。
图8 告警关联CDMB相关负责人
4.数据分析和优化
- 问题和瓶颈分析
通过监控数据的分析,可以发现系统中存在的问题和瓶颈,例如性能下降。这样可以及时采取相应的优化措施,提高系统的性能和可靠性。
- 故障定位和关联分析
监控数据可以帮助快速定位和分析故障,提高故障排除的效率;通过监控数据的趋势和异常变化,可以迅速确定故障发生的时间和位置,从而加快故障修复的过程;通过分析不同实例之间的关系,可以发现潜在的问题和优化的机会,从而提升系统的整体性能
- IT基础设施的使用情况
监控数据可以提供对IT基础设施的使用情况的了解。通过监控数据,可以了解资源的利用率、负载情况等,从而进行资源的优化和规划,提高资源的利用效率。
- 工作质量评价
结合CMDB中的事业部、业务、应用等维度,可以对工作质量进行有效评价。监控数据可以作为评价的一部分依据,让监控数据发挥更大的价值。
图9展示了CMDB中某个应用的资源使用情况。
图9 关联CMDB应用查看资源
结语
本篇主要讨论了如何在监控范畴对CMDB进行消费的场景,每种场景简单举例展示用法,后续将针对部分场景进行专题讨论,深入探索监控与CMDB的特定场景的融合,只有将CMDB的数据利用起来,才能真正体现CMDB的价值。