监控对于我们来说到底有多重要?
网络监控是企业IT运维中必不可少的重要一环,传统的监控工具以监控各个服务的健康和性能为中心。而随着数字化时代的到来,我们需要一个更加全面的监控视图,能够把不同环境下所有资源间的流量信息进行采集,并从多个视角、多种维度进行可视化的监控。
目前大多数公司不仅会在数据中心内建设私有云,也会使用多个云服务商提供的公有云资源。随着容器、微服务等技术的广泛应用,网络运维团队可能需要用到更多的监控工具来监控和排查不同环境中网络的健康状态,再把它们汇总到一起,但是这就带来一系列问题,这么多的监控工具不仅会消耗很多资源,管理起来也不方便,既增加了线上运维成本又没有真正解决效率问题。
我最初参加工作的时候,公司的业务还是在传统机房里的服务器上部署,那时最受欢迎的是zabbix。通过zabbix对公司的服务器、业务、流量进行监控,虽然可以满足业务需要,但在性能和成本上存在缺点,如机器量、数据的增大都会使数据库的写入成为一定的瓶颈,单机上限5000台,就需要增加proxy,增加成本。而且采集数据通过pull方式,当目标机器量大之后,pull任务会出现积压,导致采集数据延迟。对于大数据量,要求实时采集数据,这类监控就不能满足需求。并且,随着技术的发展,Kubernetes、容器化、多云平台的兴起,也给监控带来了新的挑战。
随着公司业务的发展和对容器化的监控需求,我们又选择了新的监控软件Prometheus,Prometheus可以和Kubernetes很好的集成在一起,以找到所有的服务,一旦它找到了所有服务,将通过轮询其他Prometheus度量端点收集所有这些服务的指标。但是Prometheus也存在不能解决的问题,如Prometheus不提供持久的长期存储、异常检测、自动水平缩放和用户管理,Prometheus也不是一个Dashboard解决方案,它提供了一个简单的UI来进行PromQL查询,增加了一些额外的设置复杂度。我们需要再次重新选择一款合适公司业务的监控工具,这里我对之前主流的监控工具进行了简单的分类。
上面的监控或多或少都存在一些问题,对于简单的业务场景来说可以起到监控效果,但是对于混合云、多云场景,这些监控就力有不逮。对于这些开源监控软件的不足,我们希望找到一款能够适应多云环境,容器环境的监控软件,可以把我们线上私有云、公有云、Kubernetes、混合云等不同的环境的业务流量进行统一采集和监控,并且能够在一个可视化界面中清晰地展示出网络全景图,不仅能够监控各类资源间的网络性能指标还可以快速地生成自定义报表和监控视图。经过调研,我们找到了一款适合混合云环境的网络监控诊断软件,那么这款软件是如何解决大规模云环境下网络一体化采集和全网流量监控的呢?接下来为大家展开介绍。
DeepFlow 是一款云监控产品,其目标是解决云上业务的网络问题。基于云原生的混合云流量全网采集和时序数据存储检索技术,提供混合云网络的流量采集分发(NPB,Network Packet Brocker)和性能监控诊断(NPMD,Network Performance Monitoring and Diagnostics)解决方案。
DeepFLow对监控的流量指标和业务数据能够可视化地展现,通过强大的搜索能力提供云网环境下的监控解决方案,结合流日志和PCAP数据提供完整的故障回溯取证能力,可以对全网原始流量采集、过滤、截断、去重、标记、分发、提供了全方位的采集流量方法。
通过DeepFlow的视图用户可以自定义统计图表、生成监控大屏、设置告警策略和报表策略,可以展示所有报表策略并提供报表下载,从业务、服务、主机、POD等多个维度进行流量数据的处理和展示,保证监控视角采集数据包的完整性。
DeepFlow还可以自动发现云内各类资源,从多种维度可视化展现云环境中资源的流量和业务情况,基于CPU/内存/带宽单独设置过载保护机制,可对所有采集器统一配置也可针对单个采集器做个性配置。
因为我们公司的业务复杂多样,公司环境机器较多,而且业务存在跨机房部署的情况,高峰期流量剧增,对于可扩展性要求较高,如果使用传统的开源监控软件并不能满足我们监控的需求,那么我们在使用DeepFlow就很好的满足了我们的业务要求,可以充分保障资源池规模弹性扩展、整体系统可管理10万台采集器,涵盖虚拟机、容器、公有云等,这完全满足了我们高并发的业务需求,DeepFlow可以把我们的流量和业务数据都展示在一个Web Ui界面,总览可以显示整个系统运行的概要信息,可以展现监控网络中的采集器、物理节点、虚拟节点数量,也可展现最近一小时采集和分发的总流量,同时也具有大规模、细粒度管控能力匹配云的规模和弹性扩展能力。
业务场景一、虚拟网络流量采集
虚拟网络的工作原理和物理网络基本相同,我们之前对物理网络流量采集需要使用SNMP来收集跨基础设施的多个节点的数据,然后通过网络性能管理和监控工具来分析这些数据,但是虚拟网络流量采集相对要复杂的多,如对主机内的虚拟机流量采集,主机间的虚拟机流量采集,虚拟机到物理基础设施流量的采集,为了能够精确采集网络流量,通过流量数据分析业务问题,我们利用DeepFlow来实现全网流量采集和监控,达到全自动、全方位的一个采集和分析流量的效果。
业务场景二、虚拟网络性能监控
随着虚拟化技术的成熟和普及,使用虚拟机的客户越来越多,用户对虚拟机网络性能要求也越来越高,为了能够对虚拟网络性能进行优化、测试、分析,我们需要有一个可视化网络全景图,经过对比分析,决定使用DeepFlow,它具有多维度的查询聚合数据的能力,对线上业务进行全链路的分析和故障排查,提高线上故障排查的效率。满足排查生产环境高并发业务故障的需要。
业务场景三、虚拟网络路径诊断
在网络快速发展的今天,网络的稳定性至关重要,为了保证网络的正常运行,需要对网络故障进行实时监控,传统方式上我们是通过获取网络设备中的状态来进行诊断,但是收集到的状态信息参数由于动态性而无法保证其完整性,进而使得诊断也具有不确定性。DeepFlow实现了虚拟网络端到端的诊断能力,可以及时发现潜在的风险,进行故障预警和诊断,为业务的稳定运行提供了可靠保障。
我对于监控的一些思考
作为一名技术人员,需要关注系统的安全高效稳定,对于团队的技术组成,我更注重的是监控,一款好的监控不仅能够保障我们业务稳定运行,也使得我们能够根据监控采集到的数据指标进行相关的代码优化,架构优化,选择一款好的监控软件尤为重要。我们之所以选择DeepFlow,是因为它不仅能够满足我们复杂的业务场景的监控,也能满足我们多云场景下的监控,把不同的监控数据展现在可视化界面。同时还因为DeepFlow作为一款成熟的监控软件,提供了很好的技术支持和稳定性的保障,让我们的监控系统更加安全可靠。