「译文」CMDB 最佳实践技术指南 -3-CMDB 应用映射 - 技术原理和最佳实践

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 「译文」CMDB 最佳实践技术指南 -3-CMDB 应用映射 - 技术原理和最佳实践

👉️URL: https://www.device42.com/cmdb-best-practices/cmdb-application-mapping/

📝Description:

了解用于 CMDB 应用映射的必备自动化技术的内部运作以及实施成功项目的最佳实践。

CMDB 应用映射是将存储在配置管理数据库(CMDB)中的软件和硬件资产(也称为配置项(CI))与运行在该环境中的应用程序联系起来的过程。下图是一个简单的例子,在虚拟机上运行的定制业务应用程序,由运行在 Kubernetes 上的 NGINX web server 和安装在专用服务器上的 MySQL 数据库支持。

一个包括 NGINX、Kubernetes、MySQL 和其他配置项目(CI)的 IT 环境图

一个包括 NGINX、Kubernetes、MySQL 和其他配置项目(CI)的 IT 环境图

CMDB 应用映射和 CMDB 发现 帮助企业自动化劳动密集型的 CMDB 实施任务,并简化整个 IT 基础设施的依赖性跟踪。

最常见的方法需要两个步骤。第一步是发现配置项目,如操作系统、应用程序和中间件组件的实例,第二步是利用监测 TCP 和 UDP 通信流等技术发现 IP 端点之间的关系。

一个先进的 CMDB 应用映射工具包括一个资产发现功能和一个依赖性映射组件。一旦这样的工具发现了应用并建立了关系,它就会将数据存储在 CMDB 中,作为与配置项目相关的属性。用户可以访问这些信息,在仪表盘上可视化应用地图,或者通过 API 将属性信息导入支持 IT 实践的第三方工具,如漏洞评估和配置管理。

CMDB 应用映射过程的概述

CMDB 应用映射过程的概述

本文将解释应用映射的工作原理,列出最常见的 CMDB 应用映射技术,讨论它们在 ITIL 流程中的价值,并分享处理新的 CMDB 实施项目的几个行业最佳实践。

CMDB 应用映射说明

CMDB 应用映射技术一般分为三类:

  • 基于配置。这一类别使用无 agent 或基于 agent 的技术,使用命令或解析配置文件来收集基于配置参数的洞察力。
  • 基于流量。这一类别依赖于 Netflow 等标准,NMAP 等工具,以及抓包等技术。抓包是在硬件或软件设备中实现的功能,旨在获取实际流转中的网络流量,通常是 IP 数据包,并分析它们。
  • 基于标签。该类别使用标签来标记资产。 尽管标签往往不是一致地应用于每个 CI,但它们仍然是 CMDB 应用映射过程中必不可少的,并且是映射公有云资产的一种流行方法。

应用程序映射起初可能看起来很复杂。然而,一旦被分解成每种技术的基本机制,这个过程就变得更加直观。

下面,我们以应用映射的抓包方法为例,解释分析网络流量以定义应用映射的步骤。

抓包示例

下图显示了两台主机在网络上的通信。应用映射功能可以通过依靠放置在网络中的硬件设备来捕捉和分析在该网络上传输的 IP 数据包的内容来识别这一流量。

捕获的数据包显示了两个流量终端所使用的源和目的 IP 地址。在我们的例子中,源 IP 地址是 192.1.1.120,而目的 IP 地址是 192.1.2.10。

说明两台主机之间的网络流量和相关抓包的图表。

说明两台主机之间的网络流量和相关抓包的图表。

依赖关系映射程序搜索 CMDB 数据库,根据其 IP 地址属性确定两个相应的 CI。一旦它在 CMDB 中找到 IP 地址,它将把两个终端的主机名识别为 "abc " 和 “xyz”,如上图所示。

抓包还确定了用于该传输的 TCP 端口为 3306 端口,这是 MySQL 的默认端口。考虑到这一点,这个流量的一端很可能是一个 MySQL 数据库实例。

应用映射程序还使用了基于配置的发现技术,在主机上安装了 agent 来收集补充性的见解。在我们的例子中,agent 使用命令 ps aux | grep mysql 来确定 MySQL 在主机 xyz 上运行。在这种情况下,抓包与安装在主机上的 agent 一起工作,以发现额外的信息,并确认 MySQL 正在其中一个端点上运行。

流量的另一个端点是名为 "abc " 的主机,它也依靠 agent 来执行命令systemctl status nginx,以确认 NGINX 网络服务器安装在其上并运行。

CMDB 应用映射功能现在可以通过关联测量从抓包设备和安装的代 agent 收集的属性信息来说明这两个端点之间的关系,如下图所示。

一个基本的 CMDB 应用映射,包括两个主机(ABC 和 XYZ)和安装在它们上面的应用(NGINX 和 MySQL)。

一个基本的 CMDB 应用映射,包括两个主机(ABC 和 XYZ)和安装在它们上面的应用(NGINX 和 MySQL)。

这张图还没有透露出大量的信息。然而,这是一个 CMDB 应用图的开始,它可以扩展到使用 CMDB 应用图技术和来自 CMDB 的 CI 属性自动发现数百个其他类似的关系。

这个例子发现了两个通过网络通信的主机,但应用映射也可以通过基于配置(相对于基于流量)的技术发现两个 CI 之间更持久的逻辑连接。

例如,考虑一个使用网络安装的存储卷的 Linux 服务器。虽然存储卷在物理上连接到一个网络附加存储(NAS)系统,但它在逻辑上却安装在 Linux 服务器上。CMDB 应用映射功能可以通过 SSH 远程连接到主机并运行 $ sudo fdisk -l 命令来发现这种逻辑关系。

在下一节中,将回顾揭开 CI 之间关系的几种技术。

CMDB 应用映射技术的总结

正如我们前面的例子所解释的,CMDB 发现过程为每个 CI 创建了一个具有尽可能多属性的配置项目清单。

应用映射功能使用各种技术来寻找配置项在物理上或逻辑上连接或通过网络相互通信的证据。

CMDB 应用映射技术

Technique Type Description
无 Agent 基于配置 远程连接到主机并运行命令以发现其配置
基于 Agent 基于配置 在主机上安装一个轻量级程序,以收集无法从远程获得的信息
应用编程接口 (API) 基于配置 大多数应用程序和平台都有 API,可以查询到关系信息
NetFlow 基于流量 思科公司在 20 世纪 90 年代设计的一个协议,用于记录和存储网络流量记录。
NMAP 基于流量 一个用于安全审计的开源工具,扫描主机上的 TCP 端口
抓包 基于流量 捕捉和分析 IP 数据包内容的软件或硬件设备。
Tagging 基于标签 在公有云(如 AWS)中托管的 CI 通常附加有标签,可用于应用映射

CMDB 应用映射技术说明

IT 组织并不总是使用所有这些 CMDB 应用映射技术。然而,这通常是由于时间和资源的限制。这些技术并不相互排斥。事实上,它们往往是互补的,最好是相互配合部署。

使用多种技术有以下好处:

  • 信息的完备性。发现技术在收集依赖关系信息方面可以相互补充。例如,无 agent 的操作系统扫描可能会错过间歇性的连接,而 NetFlow 会捕获 IP 端点之间流动的通信数据包。另一个例子是无 agent 和基于 agent 的发现方法如何相互补充。无 agent 的发现能迅速识别连接到网络的所有实例。Agent 可以用来从笔记本电脑和平板电脑收集信息,这些电脑在无 agent 扫描期间可能是关闭的。
  • 信息的准确性 。某些技术是根据标准的假设来推断信息。例如,NMAP 工具扫描主机上开放的 TCP 端口以确定该主机上可能安装的应用程序。通过查找超过 2000 个 TCP 和 UDP 端口的列表以及通常通过这些端口进行通信的应用程序。例如,它将假设 TCP 端口 25 通常与 SMTP 邮件服务器有关。然而,系统管理员可能已经配置了一个不同的应用程序来使用端口 25。最好用第二种技术来确认这个假设,比如在主机上安装一个 agent ,执行$ lsof -i :25 命令,列出在 25 端口运行的应用程序。一个技术触发了第二个技术,而第二项技术验证了原来的假设。

下面的表格强调了每种技术的优点和缺点。请记住这些 CMDB 应用映射技术并不是相互排斥的。

CMDB 应用映射技术的优点和缺点

技术 描述 优点 缺点
无 Agent 这种技术涉及通过安全连接(Linux 的 SSH 和 Windows 的 Powershell Web Access)远程访问主机,以执行旨在收集信息和运行进程(或服务)以及打开 TCP/UDP 端口信息的命令。 它避免了在大型 IT 环境中的所有主机上安装 agent 的开销,从而节省了时间。
它将发现那些由于错误或政策而没有部署 agent 的 IP 端点。
不是所有的配置项都可以远程访问。
一些管理部门出于安全考虑,禁止远程访问。
基于 Agent 作为这种方法的一部分,在主机上安装一个轻量级程序,提供对主机上各种可用信息的访问,如配置文件的内容或执行自定义命令的结果。 Agent 可以从经常关闭的笔记本电脑和平板电脑上收集信息。
他们可以从可能因安全原因而断开连接的服务器上收集信息。
在一个有数千台主机的环境中,安装 agent 可能需要几个月的测试和部署。
Agent 很少有 100% 的覆盖率。

Agent 必须支持传统应用环境中的不同类型的操作系统。
应用编程接口 (API) Kubernetes、VMWare 或 NetApp 等基础设施平台以及 SAP 和 Oracle 等应用程序提供了可以远程查询的 API,以收集有关库存和配置的信息。 API 提供关于环境的最详细的信息。 使用 API 将需要软件开发,除非所选择的 CMDB 平台支持与领先的应用程序和基础设施平台的集成。
NetFlow NetFlow 及其最新版本被称为互联网协议流信息 eXport(IPFIX),它捕获在网络上传输的数据包,以提取源和目的 IP 地址和 TCP 或 UDP 端口号以及其他信息。 源和目的 TCP 或 UDP 端口号是发现流量端点的相应应用程序的一个重要信息来源。 NetFlow 有很高的开销,通常以低采样率使用(例如,每 1000 个数据包中捕获一个),这可能会错过短暂的通信流。
NMAP 自 1997 年推出以来,NMAP 的核心是扫描服务器和防火墙的 TCP 或 UDP 端口的工具。打开的端口被映射到应用程序名称上,使用一个超过 2000 个应用程序和相应端口的列表。 这是一个免费且稳定的工具,可以快速收集与 CMDB 应用映射高度相关的信息。 它通过将 TCP 或 UDP 端口号与应用程序联系起来推断应用程序名称。在管理部门重新配置了端口号的环境中,它可能会提供不正确的应用名称,所以它的输出应该用其他技术来验证。
NMAP 的扫描可能需要很长的时间,而且是 CPU 密集型的,因为它扫描了 1000 多个端口。
抓包 硬件和软件设备在 IP 数据包穿越网络时进行捕捉,以提取关于流量的有用信息。 抓包设备比 NetFlow 提供更多的信息,因为它们分析整个数据包,包括其有效载荷,而不仅仅是数据包的头。 如果在 CMDB 项目之前没有部署过设备,实施设备来捕获数据包是一个规模很大的项目。
标签 大多数公有云鼓励管理员标记他们的资产,这与现代持续交付(CI/CD)和基础设施即代码(Iac)模式相一致。 标签是自由形式的键值对,可以包含 CI 信息,如 CI 与部门、团队和应用程序的关系。 标签的灵活性也是一个弱点,因为不同的团队通常不一致地使用它们。
标签通常是手动添加的,可能有错别字或丢失。

CMDB 应用映射的用例

应用映射通过量化 IT 环境中的硬件、软件和连接,大大增强了 CMDB 的价值。下表列出了一些受益于应用映射的用例。

CMDB Application Mapping Use Cases

用例 描述
数据中心或云迁移 迁移组 (move group) 是由相互依赖的 CI 组成的集群,应该作为一个组进行迁移以避免中断。
应用现代化 重构一个应用程序,首先要发现其所有的依赖关系。
IT 自动化 IT 自动化,如数据库自动升级,可以从识别依赖数据库的应用程序中获益,并且在升级前必须进行测试。
安全和监管审计 审计通常是按应用程序进行的,这使得依赖关系图对于验证应用程序的支持组件的配置至关重要。
财务和预算编制 财务经理根据部门的应用需求来分配预算,因此将硬件和软件成本分配给应用程序对于预算编制过程非常重要。
兼并和收购 并购交易导致应用迁移和合理化,这需要应用地图。
性能和安全事件响应 故障隔离、根本原因分析和影响分析的过程都依赖于最新的应用地图来帮助排除故障。
容量规划 IT 部门将更多的硬件容量分配给关键任务的应用,这意味着他们必须能够识别影响这些应用的瓶颈。

CMDB 应用映射的最佳实践

一个 CMDB 项目的成功取决于其实施策略和 CMDB 平台的功能。下面是与每个类别相关的一些提示。

采用自上而下的方法

IT 企业环境有数千甚至数百万的配置项目。绘制所有的配置项需要几个月的时间,所以最好的做法是确定公司中经济影响最大的任务关键型应用,并首先开始绘制它们。

使用动态而非静态的映射

避免手动映射,因为应用环境不断变化。值得在前期投入时间来实施动态映射技术,这将在几年内获得收益。

确定用例的优先次序

一个 CMDB 支持许多用例,从数据中心迁移和安全管理到法规遵从和财务审计。从对高级管理层最重要的用例开始,有助于确定应用映射技术的优先次序。例如,安全管理会强调端口扫描,而数据中心迁移则需要详细分析通信流,以避免因网络错误配置而造成的中断。

选择一个功能丰富的 CMDB 平台

一个 CMDB 项目的成功主要取决于为实施而选择的供应商所提供的自动发现功能。所选择的平台必须支持完全自动化的 CMDB 发现和应用映射技术,用于所有口味的操作系统、设备类型和公共云服务。

总结

CMDB 应用映射功能可以发现在主机上运行的应用,硬件和软件组件之间的逻辑和物理连接,以及配置项(CI)之间的通信流。

它将这些信息与已经存储在 CMDB 中的 CI 属性进行关联测量,以创建可由其他工具查询或用于可视化和故障排除的依赖关系图。应用地图的准确性取决于为项目选择的 CMDB 工具所支持的自动化功能和平台范围。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 网络协议 API
「译文」CMDB 最佳实践技术指南 -2- 主流的 CMDB 发现技术
「译文」CMDB 最佳实践技术指南 -2- 主流的 CMDB 发现技术
|
安全 数据可视化 测试技术
「译文」CMDB 最佳实践技术指南 -4-CMDB 业务服务映射
「译文」CMDB 最佳实践技术指南 -4-CMDB 业务服务映射
|
定位技术
阿里架构总监一次讲透中台架构,13页PPT精华详解,建议收藏!
本文整理了阿里几位技术专家,如架构总监 谢纯良,中间件技术专家 玄难等几位大牛,关于中台架构的几次分享内容,将业务中台形态、中台全局架构、业务中台化、中台架构图、中台建设方法论、中台组织架构、企业中台建设实施步骤等总共13页PPT精华的浓缩,供大家学习借鉴。
37071 116
|
11月前
|
API
天气预报15日-墨迹天气-地址查询版免费API接口教程
该接口提供15日天气预报服务,通过指定地址获取墨迹天气预报。支持POST或GET请求,需提供用户ID、KEY、省份名称及地点等参数。返回数据包括15天内每天的天气详情,如最高最低温度、天气变化及图标等。示例中使用的ID和KEY为公共测试账号,建议使用个人账号以获得更高调用频率。
|
存储 算法 Cloud Native
Ganos地理网格引擎支撑无人机路径规划能力实践
随着新能源技术的迅猛发展,低空经济已经逐步成为新的战略性新兴产业,但不同于传统的地表活动,低空活动具有立体性、区域性、融合性等特点,这些特点对于如何安全引导低空活动的顺利开展带来了一系列需要解决的技术问题。Ganos地理网格引擎提供了基于网格的路径规划能力,可以使用DEM、DSM、倾斜摄影等数据构建复杂环境下的无人机路径规划应用。
|
监控 数据可视化 安全
「译文」CMDB 最佳实践技术指南 -1-CMDB 可视化 - 最佳实践与示例
「译文」CMDB 最佳实践技术指南 -1-CMDB 可视化 - 最佳实践与示例
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
7081 119
|
10月前
|
人工智能 运维 自然语言处理
智能化运维:AI在IT运维领域的深度应用与实践####
本文探讨了人工智能(AI)技术在IT运维领域的深度融合与实践应用,通过分析AI驱动的自动化监控、故障预测与诊断、容量规划及智能决策支持等关键方面,揭示了AI如何赋能IT运维,提升效率、降低成本并增强系统稳定性。文章旨在为读者提供一个关于AI在现代IT运维中应用的全面视角,展示其实际价值与未来发展趋势。 ####
1362 4
|
存储 监控 数据可视化
「译文」CMDB 最佳实践技术指南 -0
「译文」CMDB 最佳实践技术指南 -0
|
运维 监控 Java
面经:Storm实时计算框架原理与应用场景
【4月更文挑战第11天】本文是关于Apache Storm实时流处理框架的面试攻略和核心原理解析。文章分享了面试常见主题,包括Storm的架构与核心概念(如Spout、Bolt、Topology、Tuple和Ack机制),编程模型与API,部署与运维,以及应用场景与最佳实践。通过代码示例展示了如何构建一个简单的WordCountTopology,强调理解和运用Storm的关键知识点对于面试和实际工作的重要性。
807 4
面经:Storm实时计算框架原理与应用场景