这样的CMDB设计,居然阻止了海量告警对运维的轰炸

梁定安(大梁),运维技术总监,复旦大学客座 DevOps讲师。多年运维、运营开发和 DevOps 的工作经验,曾负责 Qzone、相册等 SNG 社交平台类业务的运维规划与管理,经历了 SNG 运维标准化、自动化、智能化建设的全程。腾讯织云负责人。

1

标题党一回!本文主要介绍运维 CMDB 的设计思路,恰当的 CMDB 设计,对运维效率的提升,如收敛告警和故障自愈等,有着意想不到的效果。

在运维自动化平台的设计理念中,我们一直提倡“减少运维对象”,并将运维对象进行抽象化、模型化、配置化的录入 CMDB 中管理,进而让运维工具有途径消费CMDB 中的数据,让运维自动化流程能够通过接口维护 CMDB 中各个运维对象的属性与状态,这是构建自动化运维体系的配置基础。

那么 CMDB 主要记录怎样的内容,在织云面向业务架构的 CMDB 实践中,将CMDB 的配置数据主要分为几类(更多配置需求可扩展):

业务对象:业务树、架构层等;

硬件对象:主机、网络设备等;

应用对象:软件包、配置文件、脚本等;

自定义对象:变更信息、密码库等。

每种运维对象都包含其各自的属性和状态配置,如:

业务树:业务层级关系、负责人、重要级别等;

主机:IP地址、主机名、操作系统、上联交换机端口等;

软件包:版本、部署实例、进程、端口、清理策略等;

变更信息:时间、IP、操作内容、操作人员等。

运维对象与运维对象之间需要建立规则或关系,如下图:

2

言归正传,CMDB 的设计与告警收敛和故障自愈有什么联系呢?让我们一起对运维常遇到的基础告警做一些问题归类:

• 容量告警:CPU、流量指标告警等;

• 进程端口告警:进程不存在、僵尸进程等;

• Ping、死机告警:Ping 探测、agent 上报超时等;

• 硬盘告警:硬盘容量满、硬盘只读等。

该面向业务架构设计的 CMDB 系统发挥功效的时候了,让我们一起看一个简单的示例:

(点击看大图)

运营状态:运营中意味着需要正常告警,此字段还有故障中、测试中、待申请等状态,可对应不同的运维工作操作。• 架构层:逻辑 SPP 意味着是标准开发框架,是标准化的服务,有框架自带的监控数据;

负责人:大梁为该业务运维负责人,该业务下的设备自动继承负责人信息;

软件包:ngnix-1.9表示软件的版本,可扩展到安装路径、启停操作等等;

端口:此字段信息可用户端口监控,可结合部署检测、故障自愈等运维操作;

IP集群:该业务模块部署的IP地址,可基于 CMDB 的配置信息,可基于规则;

• 自动巡检、故障自愈、架构规划、容量一致性等标准化运维管理的功能。

织云构建的体系化运维能力,在大量的基础告警爆发时,基于运维规则与CMDB的配置记录,我们将会得到如下场景的运维自动化能力:

容量去阈值:将IP集群的容量,按业务的纬度收敛成为单指标,Metis 单 KPI 智能精准分析,无需阈值管理;

指标预测:每小时指标增长斜率的告警,去阈值的一种实现;

容量一致性:IP 集群的容量如不一致,则视为异常,在日常运维工作需主动修复中;

故障精准通知:无需维护 IP 负责人,准确将告警推送给业务运维负责人;

进程/端口告警自愈:主动 ps 检测,发现进程/端口不存在,结合软件包规则自动拉起,修复该故障;

Ping/死机告警自愈:结合 CMDB 的架构层和运营状态的信息,对无状态服务自动调用负载均衡接口踢出该主机,自动重启主机,修复问题后,重新加入负载均衡服务;

硬盘告警自愈:结合主机数据/日志管理规则,举一反三的将硬盘容量告警的清理策略自动执行,针对硬盘只读的告警可自动执行重启操作;

主动巡检:基于 CMDB 的配置信息,如软件包版本、各 IP 的负载容量、运行进程端口等信息,定制主动巡检的运维工具,每天生成报表,让运维防火成为日常例行工作,减少因生成环境不一致火灾抢险的发生几率。

3

正如上述简单的 CMDB 案例所达到的运维能力,对告警收敛和故障自愈的效果是显著的。在此,笔者希传递 CMDB 的设计思路:

• CMDB 是运维体系的基础数据配置中心,在运维平台的架构地位很关键;

• CMDB 避免大而全的设计,记录有限的信息就能帮上大忙,从小做起;

• 自动发现并非万能的,运维对象的管理需要双管齐下;

• CMDB 中对象的管理关键在于保证信息的准确与生产的一致性;

• CMDB 要提供统一的接口服务,利用自动化的工具或流程来维护配置信息;

• 不要拘泥于唯一的或形式上的 CMDB,只要表结构扩展,配置数据就能被持续利用;

• 泛 CMDB 的概念能助你更好的理解 CMDB 和落地 CMDB。

简单的 CMDB 设计不仅可承载大量的运维标准化规则,在腾讯织云的运维实践经验中,对 CMDB 中的数据加以利用,更能在 AIOps 时代发挥更大的威力。

从运维技术转型到运维产品经理,让我有机会从一个全新的角度来看待和总结过去做过的运维系统。在和很多企业客户沟通时,我发现了一个典型的问题,传统的运维思路总习惯于“头痛治头脚痛治脚”。回顾近 10 年在腾讯的运维技术实践中,腾讯织云运维体系的建成,是有意或无意的由业务运维主导进化而来的,下次有机会再深入和大家探讨 CMDB 在更多运维场景的实践。

· 我 · 是 · 分 · 割 · 线 ·

本文作者大梁,以及腾讯社交网络运营部总监聂鑫将会双双出席腾讯运维双雄专场。为大家分享运维自动化和智能化的实践之路。

“每一次分享,都要认真思考听众们能收获什么,因为大家的时间都很宝贵。”

---来自分享人

那么,以下两场干货,一定也是诚意满满。我们,在GOPS上海站等你。

原文发布于微信公众号 - 腾讯织云(TencentCOC)

原文发表时间:2018-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程直播室

编程直播室第二期:CadLib 授权机制研究与实现注意

2478
来自专栏程序你好

个人门户系统设计方案

2464
来自专栏鹅厂网事

海量服务器安全高效管控系统设计

"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

3198
来自专栏熊二哥

架构设计深入学习02-概念架构与细化架构

胜兵先胜而后求战,败兵先战而后求胜—《孙子兵法》。 这部分有些内容比较陈旧,但原理和思路还是一致的。 ? 通常来说,概念架构满足"架构=组件+交互"且只关注高...

2168
来自专栏智能计算时代

[云计算架构:Dynamics ] 多租户 或多实例 ?

Dynamics 365(在线)为您提供了隔离Dynamics 365数据和用户访问权限的选项。 对于大多数公司而言,在订阅中添加和使用多个实例可提供正确的功能...

1862
来自专栏魏琼东

基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 系统架构

      本文是继AgileEAS.NET应用开发平台介绍及AgileEAS.NET之敏捷并行开发方法所做的架构补充,用于阐释AgileEAS.NET平台的架...

1945
来自专栏FreeBuf

不止Intel芯片,每个1995年后的处理器都可能受此次底层漏洞影响

昨天不少外媒报道了 Intel 芯片级安全漏洞出现,可能导致 Linux 和 Windows 内核关键部分需要重新设计。这个漏洞会导致攻击者从普通程序入口获取推...

2296
来自专栏FreeBuf

如何在网络中追踪入侵者(一):架构

背景知识 由于依赖感染指标(IOCs)的安全方法越来越不可靠,“突破口假设”成为业界公共的表示方法。这种情况经常发生,直到外部主机发现一个缺口并通知机构之前,入...

23110
来自专栏phodal

如何看待 GitHub 上许多笔记、面经等获得过多的 star?

文章来源于,我在知乎相关话题上的回答。问题大意是:SQLite 和 SQLAlchemy 项目的 Star 比许多学习笔记、面经还要少。

1001
来自专栏编程一生

接口服务规划的个人想法

1434

扫码关注云+社区