1. 引言
通信网络运行监测管理平台可以对集团业务及数据网络中各业务系统服务的通讯网络设备、数据网络设备、视频监控、主机系统。对集团IT基础资源统一监控以及业务系统数据监控,相关运维人员或者业务人员可以直观的从管理平台看到所负责IT基础资源以及业务单据等的当前运行状态和服务状态。
但一般集团信息中心的数据网络设备、承载网设备、云隐通信设备较多,且都通过各自的网管平台软件进行管理,整体网络结构不可掌控,不能实时的了解各通信设施等运行情况。此外,原有监控软件不能对虚拟化进行可视化的监管 [1] [2] 。
为将通信机房、数据中心机房及外围通信机房的通信链路、机房环境、设备的运行状态进行实时监测,做到故障隐患提前发现、减少故障的发生,对于突发事件及时发现,做到第一时间赶赴现场进行勘察、修复工作,从而缩短恢复时间,提高服务质量。建立综合、有效、快速反应的调度指挥中心管理平台势在必行。
2. 功能分析
平台设计主要包含:光纤链路监控、通讯网络监控、机房环境监控、视频监控、运维管理等模块。通过对设备和网络的运行状态、告警信息的实时采集、综合处理和数据存储,实现以可闻、可视等方式从多个角度实时监视全网;以各种组合条件对全网性能和故障信息进行查询和统计分析,达到对通信网络全网运行状况进行监测、统计、分析和评估的目的,为全网运行、管理和规划提供参考依据。
(1) 光纤链路监控:通过平台展现光纤设备的运行状态和故障告警信息。例如,在光缆中断时告警,同时提供光缆中断的光缆段、距最近地标的距离和位置及告警的级别,方便抢修人员快速到达故障点。
(2) 通讯网络监控:对现有网络设备、服务器、存储等设备进行监控,实时检测各系统的告警信息。
(3) 机房环境监控:能实现对机房内所有设备的统一监控与管理,及时发现设备故障并自动通过短信息和电话语音及声光等方式通知到管理人员;
(4) 视频监控:通过平台将基层公司以及公共监控的视频统一纳入平台管理。
(5) 运维管理:能够将电信运维业务接入调度指挥中心管理平台,查询监控或者报警的历史记录。
(6) 大屏展示系统:对各业务系统状态进行可视化数据呈现,可以改变大屏的分割状态及视屏投射状态,使应急指挥更加及时、准确。
(7) 统计分析:主要包含服务器统计、进程统计、数据库分类统计、服务器故障统计、动环配电监测统计、UPS设备监测统计、精密空调监测统计、温湿度趋势分析、漏水监测统计、红外监测统计、故障分类统计、故障率统计,摄像头统计、电话业务工单统计、故障业务工单统计、满意度统计。
3. 难点技术的解决方案
通信网络运行监测管理平台所管理的数据来源多样,既有网络链路检测、机房环境检测、各种视屏监控等硬件设备,又有正在运行中的各种网络平台管理软件,它们分布在不同区域,运行于不同的系统环境,且生成的数据格式不一 [3] 。为满足这些需求,我们需要一个虚拟的分布式数据采集和处理的集群,它能兼容各种生产环境,分布式处理各自特有的数据格式,实时的将其转化成统一的标准数据格式。为平台的监测、统计、分析和评估提供数据基础。
3.1. 基于Docker集群的系统架构
考虑到上面分析的情况,Docker集群将是一个非常适合的选择 [4] 。Docker作为一种新兴的虚拟化方式,跟传统的虚拟化方式相比具有众多的优势。首先,Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。其次,Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Docker容器。Docker彻底释放了虚拟化的威力,极大的降低了云计算资源供应成本。
针对不同的硬件设施和软件产生的数据,都应该有相应的驱动软件来处理,这些驱动软件运行在不同的操作系统之上,这就要求节点的Docker容器中包含对应的数据处理程序,将数据转化成标准数据格式存储于数据容器中。系统总的架构如图1所示。
从上图可以看出系统分为四层。最下层为数据源,可以是视屏监控、光纤链路运行状况、通信网络运行状况、机房或产业园的环境检测数据、监控软件的检测数据等,它们共同组成了数据源。数据源上一层是数据源收集的运行环境,称为采集环境。它们可能是不同的系统运行环境或运行软件,例如视频监控软件可以连接在不同的操作系统上收集视频数据、监控软件可以运行在服务器或企业内部主机。为了方便对采集环境采集的数据进行处理和集成,我们在采集环境的宿主主机上创建虚拟化的Docker容器层,Docker容器层实现对原始采集数据的标准化处理、分布式存储、远程传输等。位于最上层的是提供服务器功能的Docker集群的Master节点,实现不同节点数据同步、数据实时传输、数据分析展示、预警提示等功能。
3.2. Swarm集群设计
Swarm是一套工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体 [5] 。Swarm使用标准的Docker API接口作为其前端访问入口。各种形式的Docker Client (dockerclient in go, docker_py, docker等)均可以直接与Swarm通信。Swarm的设计和其他Docker项目一样,遵循“batteries included but removable”原则。
通信网络监管平台需要数据实时更新和分析处理,我们将数据的处理工作分别分发到不同的Docker节点处理,既能保证数据的统一标准化处理又能极大的减轻主服务器的负载,每个节点的处理工作因底层的数据采集环境的不同而不同,这也极大的降低了服务器端的复杂度。Swarm集群架构如图2所示。
图中Swarm的Hander节点负责监控整个集群网络和通信维护。Swarm与每个Docker主机交互并确定他们的标记、健康状况以及资源使用量,并维护后端和它们元数据的列表。Swarm守护进程本身相当于是一个调度器和一个路由器。它实际上并没有运行容器,也就是说,如果Swarm服务停止了,它在终端Docker主机上已分配好的容器仍然是开启的。Swarm支持负载均衡,能够有效的将service给scale up,借助Raft Consensus算法,将系统的robustness做得非常好,最大限度能够容忍(n − 1)/2个故障节点,n为集群中节点的个数。
图中Cluster节点因数据采集环境的不同可能运行在不同的区域和系统环境,因此Cluster节点中Docker数据处理container所运行的处理程序不同,我们通过不同的数据处理容器将采集数据处理成平台
统一的数据格式。下节介绍数据的统一化处理。
3.3. Docker节点设计
采集环境采集到的数据主要分为两种:多媒体数据和日志数据。多媒体数据包括监控产生的视频数据、音频数据、图片数据等,多为二进制数据;日志数据包括节点主机运行状态数据、通信链路运行状态数据、机房或生产区域环境检测数据、监控软件产生的日志文件等,它们多为文本文件。
对于多媒体数据,因采集设备的不同,很可能产生不同格式的二进制文件(视频文如dav,mp4,avi,rec等),我们有时需要实时的将其转化为平台统一的格式,以备后期平台展示和维护。日志文件的数据记录字段和样式多样,同样需要将它们转化为标准的数据格式,通常使用json和xml存储传输。
数据处理Docker容器的结构图如图3所示。每个Docker Node中包含的数据处理容器和数据存储容器因采集数据的不同而不同。
经过处理的多媒体数据和日志文件数据,可以存储在各自节点的存储容器中,也能同步更新到主节点的存储容器中。对于多媒体数据而言,由于其产生数据的速度较快,且大多数情况不需要实时的传输,因此使用定期更新同步的方式。但我们也会有想实时查看的需求,因此单独提供大量数据实时传输的接口。对于日志数据而言,由于其数据比较小,且大多有实时查看和检测的需求,因此提供实时的数据同步接口。
3.4. 节点数据安全传输
由检测数据产生的实际环境决定了Docker Node将分散不同的物理区域,它们之间通过网络进行通信和数据同步,为了保证企业数据的安全稳定,采用TLS协议对数据进行加密传输。通信过程如图4所示。
Certificate Authority证书分三种:外部第三方CA;组织内部CA;自签名证书。外部CA是一个受信的第三方公司,它提供证书的创建,颁发,吊销和管理。许多组织选择去实现自己的CA和PKI。常见的例子是使用OpenSSL和Microsoft Active Directory。在这种情况下,公司拥有CA需要承担CA的相
关工作。对于一个大的组织来说,它可以比使用第三方CA减少花费。因此,平台使用OpenSSL自创建的CA证书,可定期由维护人员更新集群证书。
3.5. 节点数据同步
通信网络运行监管平台所形成的集群是一个中心化的集群,集群中的Master节点基本不会改变或很少改变(有固定的服务器和备用服务器),Docker Node节点一般不会承担服务器功能,对外提供数据展示、数据分析、监督警报等功能,Docker Node节点仅实现对不同数据的处理和分布式存贮功能,所以通信网络运行检测管理平台实际上是一个分布式的数据库集群。
因此可以将平台抽象化为数据库集群,如图5所示。
从图中可以看出集群节点数据同步其实就是数据从节点到数据主节点的过程,其中主节点可以存储数据也可以不存储数据,直接由从节点提供上层应用需要的基础数据。对于一些实时数据可以直接由从节点为服务器应用提供数据服务,对于数据分析服务可以由主节点定期收集从节点数据,然后为服务器应用提供数据支持。
3.6. 数据分析
一个检测管理平台不应该只提供数据统计和警报功能,我们通过历史数据的分析得到的预测模型也能达到未雨绸缪的功能。例如可以实现预测通信链路负载情况和出现损坏的可能性、预测机房中服务运转状况、主机硬盘是否会出现损坏等。
数据分析对输入数据的格式有严格的要求,因此我们需要对原始数据进行处理,使其适应相应的分析算法。数据处理和分析分析过程如图6所示。
平台采取的通用数据分析过程如图7所示,前期数据处理的数据对后面数据分析有很大的影响,因此数据分析部分的重点应该是前期数据的处理工作,数据分析的算法只起到辅助决策的作用。
4. 总结
通信网络运行监测管理平台具有极好的兼容性,Docker虚拟化技术使我们对数据采集点的运行环境
有极大的适应性,我们只需要专注于对数据采集节点数据的格式处理。同时Docker技术带来的另一个好处是,它极易安装,很多时候安装部署只需要简单的复制操作,因为Docker包含我们需要的整个运行环境。最重要的是Docker对集群的支持能节省我们许多的安装调试消耗,且不需要特别专业的技术人员支持,极大的节省了成本。
基金项目
天津市自然科学基金资助项目(No.14ZCZDGX00032, 14ZXDZGX00867, 15ZXDSGX00090, 15ZXHL GX00360, 15ZXHLGX00380)。