混合云/多云时代的网络监控

2019-07-09 04:07:01 计算机世界 2019年24期

Stacy Collett

大多数企业现在使用两家甚至更多的云服务提供商,35%的企业使用多达五种监控工具来监视混合云和多云环境。要实现全网可视化,有哪些最佳方法?

企业中的网络监控一直都是个大问题。据分析和咨询公司企業管理协会(Enterprise Management Associates),即使企业还没有把软件和基础设施迁移到云端,一家企业一般也会使用四到十种工具来监控自己的网络,并排除故障。

在公有云环境下,网络可视化实现起来更复杂。传统的监控工具主要关注单个网络单元的健康状态和性能。当今的数字业务时代要求能够更全面地把控网路,能够使用大数据分析和机器学习从不同的云环境中收集并关联数据。

据Kentik的一项调查,目前40%的企业认为自己是多云用户,企业有两家甚至多家云服务提供商。三分之一的企业有混合云环境,至少有一家云服务提供商,还有一些属于企业的、位于同一位置或者第三方数据中心的传统基础设施。

EMA的研究主管Shamus McGillicuddy介绍说:“人们在网络上收集和分析了很多不同类型的数据——从设备指标到网络流量,直至数据包和日志,还有主动综合监控,等等,但没有一家供应商能把所有这些都做得很好。他们大部分甚至都不想去做所有这些工作。”

结果,35%的多云用户拥有三到五种监控工具,包括日志管理工具(48%)、应用程序性能管理工具(40%)、开源工具(34%)和网络性能管理工具(25%)。

McGillicuddy说:“网络维护人员告诉我,他们只是找不到端到端的工具。他们能很好地了解数据中心,了解AWS,以及Azure,但是他们不能把所有这些整合起来。”

企业战略集团(Enterprise Strategy Group)的高级分析师Bob Laliberte评论说:“环境变得越来越复杂。因此,他们必须找到非常成熟的工具,让复杂的环境变得易于管理。”

但是,说起来容易做起来难。网络专业人员经常抱怨,现有的以设备为中心的网络监控功能无法扩展,也不能提供云和数字业务时代应用程序所需的可视化。云原生监控工具,例如,Amazon CloudWatch、Azure Monitor或者GCP StackDriver等,整合得比较好,可以观察到所有基础设施和应用程序层,但一些用户发现云工具往往缺乏功能和可视化,更不用说它们与本地工具集成得不好。

分析人士评论说,目前还没有一家供应商能给出“全局性”的监控解决方案,而且由于企业拥有的网络与租用的网络存在巨大差异,因此不应期待很快会有什么变化。但是有一些方法可以缩小这种差距,提高整个网络的可视化。

连接网络深度分析孤岛

在一个混合云环境中,McGillicuddy指出:“总是会有可视化的孤岛。重要的是寻找机会把这些孤岛整合起来。”

网络监控工具最有价值的一种数据源是管理系统API,用于从其他平台提取数据——无论是来自AWS,还是像ServiceNow这样发送票据数据的IT服务管理平台,还是安全监控工具。

McGillicuddy解释说:“如果想把所有这些整合在一起,那就需要一家网络监控供应商,这家供应商在工具上有非常现代的API,支持定制采集数据,使用定制工具,并且能够构建新的仪表盘,支持企业以自己的方式查看云。”

他补充说,大多数新供应商都会有不错的API。老供应商的API向客户开放的速度可能会慢一些,因为他们认为通过分析生成的数据是私有的。

Laliberte说:“基础设施部门可能在一些传统工具上有优势,这些工具目前正扩展到云原生环境中。”他补充道,像Riverbed这样的工具集集成了SNMP轮询、流和数据包捕获功能,可以在混合云环境中获得企业网络的性能视图,还有针对本地、混合和云的SolarWinds高级网络监控工具集,这些工具集使得传统监控和云监控相结合成为可能。

然而,很多传统的网络监控工具在采用云路线图方面进展缓慢。EMA调查的大约74%的网络管理人员说他们至少有一款网络管理工具不能满足他们的公有云需求。在这些网络管理人员中,28%的人说这种失败是由于供应商的不作为或者缺乏云支持路线图而造成的。

McGillicuddy说:“我认为我们将能够实现的是,所有供应商都非常擅长用他们的工具把一些深度分析结果应用到云中——但我还认为永远不会有真正对等的时候。”

云服务提供商取得的进展

对于云原生和多云环境,Gartner云和IT运营研究主管Gregg Siegfried指出:“云提供商的工具使用起来一致性更好,能够监控跨越其边界的网络。”

例如,微软Azure添加了虚拟网络TAP(目前在所有Azure区域中处于试用状态),允许将虚拟机网络数据流连续的传输到网络数据包采集器或者分析工具中。采集器或者分析工具是由网络虚拟设备合作伙伴提供的。

Siegfried说:“这更类似于网络工程师在其现场所看到的,因此能够集成类似功能肯定会有助于这些混合环境。”

据Kentik,尽管取得了进展,但很多云用户不知道或者不会利用已有的一些监控功能。例如,超过半数接受调查的AWS用户表示,他们正在使用由AWS提供的特定于云的监控工具,比如流日志。

Siegfried说:“我通常建议客户在把时间和金钱花在第三方工具上之前,先尝试云提供商的工具和云原生工具,但是,从云提供商那里获得的可视化与使用这些附加产品获得的可视化之间绝对存在着差异。”

打破壁垒:多云监控

新的工具已经出现了,能够跨多云环境进行监控。

这些工具中重要的功能类型包括:适应能力、支持与产品开发和其他基础设施部门协作的能力,以及集成来自多个源的数据的能力。Siegfried说,还要考虑成本和容量管理等因素,这些在混合网络环境中非常重要。

Siegfried补充道,其中一些工具包括ThousandEyes、Kentik和APM工具,例如New Relic和Dynatrace,等等。

Kentik在今年4月份宣布,提供对微软Azure的集成支持。Kentik从去年年底开始使用AWS和谷歌云平台的数据流。该平台还与其他云基础设施数据源相集成,例如,主机级仪表、虚拟网络设备以及容器编排和服务网格等。

Kentik主要收集两点之间的NetFlow或者实际流量数据。它可告诉你网络上发生了什么,并用其他数据源进行增强。

互联网监控供应商ThousandEyes去年将其网络智能产品扩展到了多云环境中。该公司预先配置了IaaS优势点,包括15个AWS、25个Azure和15个GCP区域,使其可以全面了解某一云提供商在不同地区的表现。它还可以在云之间进行代理对代理测试,使IT部门能够测量区域间、混合、云间和云内性能。

Kentik监视实时流量,而ThousandEyes生成了能够模拟用户的合成流量,然后指出在假设的网络会话情况下可能会发生什么。

McGillicuddy说,“在过去三年里,人们对主动合成监控解决方案的兴趣不断增长。这是看待事物的两种不同方式。合成是好事,因为有些会话是双方都看不到的。”

AIOps和高級分析平台

网络监控在数据采集和获取方面的重要性不亚于其在故障排除方面的重要性,由此,分析人员注意到出现了IT运营人工智能(AIOps)和高级分析平台,这些平台进行大数据分析和机器学习,把各种工具的深度分析结果关联起来。

McGillicuddy说:“我们可以看到一些像CA这样的供应商利用他们构建的大数据栈Jarvis来实现这一点,这些大数据栈可以插入到他们系列工具的不同部分,从而将他们的深度分析结果关联起来。他们还尝试怎样从第三方供应商那里获取数据,更方便地把深度分析结果关联起来。一些专业的供应商也可以插入到企业所有的监控工具中,以一种很容易看到的方式为你关联所有的东西。到目前为止,我们在研究中看到一些迹象表明,这实际上是一种很好的方法。”

展望:分布式网络监控

Gartner建议使用数据驱动的网络监控框架来提高跨多个云服务的网络可视化,而不是依赖于传统的基础设施工具。

Gartner的高级主管兼分析师Simon Richard说:“使用云原生工具,而不是试图把内部工具带入云端,然后看看市场会怎样发展。我认为云提供商会有更好的多云监控工具。”

Siegfried说:“无论我们称之为混合网络、云网络还是SD网络,未来的网络都是由软件定义的——采用分布式而非集中的智能或者控制功能。颠覆基础设施管理其他领域的同样的自动化理念、基础设施和编码技术也在网络中得以应用。想一想一个以数据为中心的网络监控框架——用于构建一类网络监控平台,为这些不断发展的体系结构提供支持。”

Stacy Collett是《计算机世界》、CSO和《网络世界》的特约撰稿人,他的文章涉及各种安全和风险问题。

原文网址

https://www.networkworld.com/article/3398482/network-monitoring-in-the-hybrid-cloudmulti-cloud-era.html


(function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();