【重磅好文】前华为资深CMDB专家:我与CMDB不得不说的故事 下载本文

归刘青管,所以账号业务相当于CMDB的内部客户,即使CMDB不准,账号那边也得忍着。

但监控、备份等外部客户就没那么好说话,如果CMDB长期不准,客户很容易就会流失。所以,持续提升准确率是巩固成果的关键。

但如何提升准确率呢?很多人说,只要数据被用起来了,自然会准的。真的吗?其实未必。这里面缺了一个前提:要有反馈!

举个例子,其实监控和备份在很多年以前就开始消费CMDB的数据。

但一切是那么的安静,没有任何对数据质量的抱怨。这跟后来账号管理消费CMDB时的氛围完全不一样,我每次碰到朱娟凤(账号管理业务的负责人),就感觉到强烈的杀气。

仔细调查后发现,这些流程有后门!正常情况下,用户在工单中选择CI后,系统会将CI的相关属性自动填入工单。但如果CI的信息是错误的,或者CI根本没登记,用户可以自行在工单中录入信息,这整个过程,CMDB根本不知道。

这就是为什么监控、备份“号称”基于CMDB运作那么多年,却从来没有怨言。燕过都要留毛,你们消费CMDB不给钱就算了,总得对数据准确率做点贡献吧!于是,我们想到了一些办法:

1关门和放权

“关门”的意思,是CMDB的下游业务发现配置数据不准时,不允许私自修正,必须回到CMDB修正。

可以想到,这个策略实施后肯定立马炸锅。因为用户在使用外部系统时,一旦发现配置数据错误,就不得不停止手头的工作,回头更新CMDB。新数据要获得审批才能生效,生效的数据要同步回外部系统,用户才能继续工作。这大大降低了业务效率。所以,我们又想到一个办法。

为了避免被人打,我们不得不做了一个大胆的尝试:部门内“放权”。用户更新自己部门的CI可即时生效,无需流程审批。因为我们从经验判断,CMDB准确性最大的问题是CI得不到及时更新,而不是更新错误。后来证明,这个决定完全正

确。

其实,还有一种更理想的方式是“就地修正”。用户在任何管理系统中发现配置数据不准,应能在当前页面中直接修正。系统会自动将修正后的信息更新回CMDB或更上游的数据生产系统。可惜当时开发资源不足,没有实现。

虽然“关门”很讨厌,但“放权”将影响降到了最低。通过这个方法,我们捕捉到了消费者的反馈,实现了数据在使用中越来越准。

但似乎还差了什么?…

如果CI没登记呢?那么CI就不会被消费,也就不会发现问题。更严重的是,对CI的安全管控也会遗漏。所以,CMDB还有最后一件重要的事情要处理-- 发现黑户!

2发现黑户

一开始,我和李渤尝试使用嗅探的办法,试图发现遗漏登记

的设备,但效果不好,因为嗅探出来的数据太多、太乱,无法识别。

后来,在牟旭涛的支持下,我们想到一种奇葩的方法:将CI登记与IP地址管理流程结合:所有接入网络的服务器或网络设备都要有IP,IP必须走流程申请,走流程申请就必须登记CI,有CI后就能通过自动发现获得CI的详细信息,有了CI的详细信息后,就能顺藤摸瓜(自动发现或人工追查),把与之关联的CI找出来。

这是应该一个完美的闭环,CI不会漏了吧。

可是,如果私设IP呢?

这就要用最后的绝招了 -- “黑IP检测”:所有网段挨个ping,抓出所有活动的IP,然后与IP申请流程做比对,发现黑IP。发现黑IP后,提交给网段管理员分析IP对应的设备,如果实在分析不出来,就提给机房管理员,顺着网线找!

通过这个极端方法,我们真的发现了大量遗漏登记的设备。

不过,随着实践的深入,我们发现问题更加复杂,比如,云