运维采集技术分享: 通过WMI监控NAT后的Windows系统

1、Windows OS和WMI简介

随着互联网技术的飞速发展,我们对于IT业务系统的服务能力要求越来越高。根据Gartner统计2017年1季度全球服务器出货量超过125亿美金,正在运行支撑各种业务的服务器数量更是庞大。这些服务器中有超过50%的服务器正在使用Windows
OS。这些Windows
OS支撑了各种大中小型的业务应用,支撑着人们工作、生活等各项活动的开展。那么如此庞大的系统,我们如何有效的监控和管理呢?微软为Windows
OS提供了一个有效的监控工具WMI。

图 1-1 全球服务器操作系统占有率

WMI(Windows Management Instrumentation)是微软对WBEM(Web-Based
Enterprise
Management)的实现,WBEM则是工业界制定的访问企业环境下管理信息的统一标准[1]。WMI使用CIM(Common
Information
Model)工业标准[2]来表示操作系统、应用、网络、设备以及其他被管组件。CIM与WBEM由DMTF(Distributed
Management Task Force)开发和维护。

除使用WMI获取本地计算机信息外,WMI还可经由DCOM(Distributed Component ObjectModel[3])建立远程连接获取远程计算机的信息。因此WMI可作为监控Windows操作系统的有力手段。

2、跨网络环境下的Windows OS服务器监控

由于IT业务系统的日益庞大,IT基础资源正在通过各种资源池将网络和服务器资源进行虚拟化(1:N和N:1)。我们将不同业务隔离在不同的虚拟网络中,同时还有跨地域的业务应用分布。在这样的环境下,需要对于Windows

OS进行统一监控,通常都必须面对一个问题--NAT地址转换。NAT可以有效的节约IP地址,隐藏内部的网络环境;但是在NAT环境下由于通常采用1对多或者多对多的地址映射规则,导致了监控平台无法有效的访问Windows
OS。

图 1-2 大型IDC的典型业务场景

勤智运维结合多年的IT运维经验,将主机的有效配置和勤智IT资源智能发现技术相结合,通过OneCenter统一运维平台,有效的解决了跨越NAT的Windows OS服务器监控问题。下面详细分析一下WMI在NAT环境下的相关特性。

2.1          NAT环境下的WMI配置

在NAT环境下,当监控运维平台需要从NAT业务网络外部访问业务网络内部Windows OS服务器时,需要在NAT网关上配置静态端口映射,将WAN端的入站请求正确转发到被监控远程计算机。

2.1.1端口映射配置

WMI经由DCOM建立远程连接,因此将向远程计算机135端口发起请求:

图 2-1 无NAT环境下的WMI远程连接


2-1展示了无NAT环境下WMI建立远程连接的WireShark软件抓包情况(经过滤),其中监控运维平台IP为172.16.30.31,Windows
OS服务器IP地址为192.168.1.33。注意,除了向Windows
OS服务器的135端口发起TCP握手请求之外,当监控运维平台接收到RemoteCreateInstance
Response后,还会向1043端口发起请求。经过多次实验可知,这一端口是随机的。这是由于操作系统会向每个DCOM应用程序分配一个终结点(Endpoint),在默认配置下,WMI的终结点是随机的TCP端口。

因此,需要实现跨越NAT的Windows
OS监控除了完成135端口的映射外,还需要将WMI的终结点固定下来并进行端口映射。在Windows
Vista及更新的操作系统中,可以通过执行命令Winmgmt /Standalone后重启WMI服务实现
[4]。固定的终结点默认为24158,这一数值可以进行设置。

在NAT网关上配置端口映射:135映射到远程计算机的135端口;终结点映射到远程计算机的对应端口,就完成了NAT路由上的端口映射配置。

2.1.2IP地址配置

通过NAT配置端口映射后,WMI连接仍然无法成功,WBEMTest测试工具将提示RPC服务器不可用:

图 2-2 NAT环境下的WMI远程连接


2-2展示了NAT环境下WMI建立远程连接的WireShark软件抓包情况(经过滤),其中本地计算机IP为10.1.103.82,NAT网关WAN端地址为10.1.104.68,NAT已设置端口映射。此时,当监控运维平台服务器收到RemoteCreateInstance
Response后,并未向Windows OS服务器WMI终结点(路由器WAN端24158端口)发起TCP握手请求。

考虑到WMI终结点可以指定任意TCP端口,必然在响应中有对应的终结点端口信息,则可以猜想在响应中也有对应的IP地址信息。深入分析RemoteCreateInstance Response:

图 2-3 RemoteCreateInstance Response分析

图 2-3
展示了响应中的地址信息,其中WIN-JO2OB7DN0HG为远程计算机的主机名,192.168.40.1为监控运维平台服务器与NAT路由器LAN端在同一子网内的私有IP地址,192.168.40.1和192.168.1.200为监控运维平台其他网卡IP地址,并且可以抓包到本地计算机尝试向这几个地址发起请求。

基于上述事实,一种解决方式是在本地计算的Hosts文件中,将监控运维平台的主机名解析为NAT路由器的WAN端IP。这样本地计算机就会尝试向NAT路由器的WAN端发起请求,完成WMI连接。

3、总结

本文简单介绍了WMI、NAT等基础知识,并详细说明了WMI监控远程计算机的配置方法以及在NAT环境下的网络配置方法。通过分析NAT环境下WMI的数据包,初步探索了WMI通过DCOM建立远程连接的内部原理。希望这个分析过程能在配置其他网络环境下的其他协议时起到一些帮助。

时间: 2024-07-31 16:54:36

运维采集技术分享: 通过WMI监控NAT后的Windows系统的相关文章

[转载]系统运维秘诀大分享专题

系统运维秘诀大分享专题 本专题整合收录了有关系统运维/系统管理员工作和个人成长方面的各种心得分享.经验总结.以及必须牢记的一些准则,适合所有在运维领域有追求的技术人阅读.有些分享的层次比较深,有些则是运维的基础课,但通过翻看他人的心得,相信你总能有所收获. 1 Dormando的系统运维秘诀三部曲... 4 1.1 技术篇... 4 1.1.1 为变化而设计.... 4 1.1.2 使用自动的,可重复的构建过程.... 4 1.1.3 使用冗余.... 4 1.1.4 使用备份.... 5 1.

电子书 Python自动化运维:技术与最佳实践.pdf

本书在中国运维领域将有"划时代"的重要意义:一方面,这是国内一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的作者是中国运维领域的"偶像级"人物,本书是他在天涯社区和腾讯近10年工作经验的结晶.因为作者实战经验丰富,所以能高屋建瓴.直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息.服务监控.数据报表.系统安全等基础模块,而且深入讲解了自动化操作.系统管理.配置管理.集群管理及大数据应用等高级功能.重要的是,完整重现了4个

Linux服务器运维安全策略经验分享

http://jxtm.jzu.cn/?p=3692 大家好,我是南非蚂蚁,今天跟大家分享的主题是:线上Linux服务器运维安全策略经验.安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折射出了很多安全问题,处理好信息安全问题已变得刻不容缓.因此做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,修补任何潜在的威胁和漏洞.今天,我为大家讲的,主要分五部分展开:账户和登录安全账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录

Redis开发与运维 (数据库技术丛书) PDF 下载,深度剖析Hadoop HDFS PDF 下载

1.Redis开发与运维 (数据库技术丛书) PDF 下载 2.深度剖析Hadoop HDFS (大数据技术丛书) PDF 下载 关注微信公众号:职业开发者之路,百度云免费 下载 PDF 电子书籍,或直接访问:问风网:askwinds.com请添加链接描述,免费资源下载模块下载,问风@程序员部落,更多资源分享等你获取关注微信公众号:职业开发者之路,?更多免费资源分享 原文地址:http://blog.51cto.com/2058005/2350798

Linux运维常用技术论坛博客网站

Linux运维常用技术论坛博客网站Linux中国开源社区: https://linux.cn/Infoq: https://www.infoq.cn/51CTO: http://www.51cto.com/掘金: https://juejin.im/CSDN: https://www.csdn.net/运维派: http://www.yunweipai.com/开源中国: https://www.oschina.net/ 原文地址:https://blog.51cto.com/13293070/

《Ansible自动化运维:技术与最佳实践》图书已上架,欢迎大家阅读

本书由资深运维程师联手打造,通过大量实例,详细讲解Ansible这个自动化运维工具的基础原理和使用技巧:从基础的架构解析.安装配置,到典型应用案例分析,作者分享了自己在工作中的实战经验,为各类运维操作.运维开发人员提供了翔实的指南.本书主要内容包括:Ansible架构及安装,Ansible 组件.组件扩展.API,playbook详解,最佳实践案例分析,用ansible-vault保护敏感数据,Ansible与云计算的结合,部署Zabbix组件.Haproxy + LAMP架构,以及Ansibl

舍本求末的运维自动化技术热潮

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://caoyameng.blog.51cto.com/4975863/1359732 运维自动化是2010年开始炒得很热的一个概念,也让很多工程师.用人单位瞎激动了很久,我也跟风学过puppet和python,求职双方也经常在面试时花大量时间谈运维自动化. 但冷静下来想想,所谓自动化,只是让培训机构赚钱的噱头而已. 一句话概括运维自动化 单说“运维自动化”几个字太抽象容易被主观塞进去

9月15日 我将参加《Gdevops全球敏捷运维峰会》分享

9月15日 我参加<Gdevops全球敏捷运维峰会>主讲 http://gdevops.com/ 分享mariadb所有的产品线(包括spider分库分表)和mongodb分片运维经验分享 https://mp.weixin.qq.com/s/pQwQjgpYnFpt5fQwRadP_A 有兴趣的朋友,可以报名参加.

运维视角下MySQL常用的监控项

MySQL的性能和负载情况有很多指标,各个版本的指标也有区别,但核心的.对运维可以快速定位的指标就那几个常用的.做一个监控系统,特别是海量数据库实例的监控系统个,每多一个监控指标,对监控系统的要求就会更高.还有对于不同人员的监控,监控的指标和频率也是不一样的,运维人员.研发人员.测试人员,使用监控的角色不同,需要的监控指标也不同.不是监控的指标越多越好,够用就行,监控指标很多,只监控平时用的,不用的不监控.以下是站在运维角度快速排查问题必须的几个核心指标,仅供参考: 原文地址:https://b