一种基于Docker的数据包采集分析系统及其方法技术方案

技术编号:19101677 阅读:52 留言:0更新日期:2018-10-03 03:50
本发明专利技术公开了一种基于Docker的数据包采集分析系统及其方法,涉及网络数据分析技术。本系统是Docker镜像仓库(100)分别与数据包处理模块(200)、数据库(300)和服务提供模块(400)交互,进行版本控制及镜像更新;数据包处理模块(200)、数据库(300)和服务提供模块(400),均通过跨主机互联网络(500)依次交互;容器运行监控模块(600)分别对各个模块内容器运行状况进行监测。本发明专利技术①能够处理万兆网口线速数据包的分发及处理分析;②基于容器技术实现,具有良好的可移植性及扩展性;③使用私有镜像仓库,降低了版本控制及运行维护的复杂性;④高度隔离,进程安全。

【技术实现步骤摘要】
一种基于Docker的数据包采集分析系统及其方法
本专利技术涉及网络数据分析技术,尤其涉及一种基于Docker的数据包采集分析系统及其方法。
技术介绍
随着移动互联网的不断更新换代,近年来移动网络流量已呈现爆炸性增长;这为网络数据分析带来了困难以及硬件成本的大幅度提升,传统的服务器部署或是虚拟机方式由于网口或cpu限制,存在着不同程度的资源空闲浪费以及运行维护繁杂的劣势;在这种背景下,容器技术应运而生。与提供硬件虚拟化机制的虚拟机不同,容器通过对用户空间的抽象化处理提供操作系统级的虚拟化机制。Docker是PasS提供商DocCloud开源的一个基于LXC的高级容器引擎,源码托管在Github上,基于go语言实现并遵从Apache2.0协议开源,其利用Linux内核中的各项功能,如命名空间与控制组,用以在操作系统之上创建容器。相较于传统方式,Docker容器具有以下优势:1、易用性,可快速构建并测试可移植应用程序;2、速度,具备轻量化及高速特性,秒级创建及运行;3、丰富的生态系统支持;4、模块性与可扩展性,不同的模块及组件隔离运行;5、安全以及易于运维。同时由于Docker基于LXC轻量虚拟化的特点,Docker相对于KVM之类最明显的特点就是启动快、占用资源小。
技术实现思路
本专利技术的目的就在于克服现有技术存在的缺点和不足,提供一种基于Docker的数据包采集分析系统及其方法,用以解决当前技术存在资源利用率低、移植及运行维护复杂的问题。实现本专利技术目的技术方案是:一、基于Docker的数据包采集分析系统(简称系统)本系统包括Docker镜像仓库、数据包处理模块、数据库、服务提供模块、跨主机容器互联网络和容器运行监控模块;其交互关系是:Docker镜像仓库分别与数据包处理模块、数据库和服务提供模块交互,进行版本控制及镜像更新;数据包处理模块、数据库和服务提供模块,均通过跨主机互联网络依次交互;容器运行监控模块分别对各个模块内容器运行状况进行监测。二、基于Docker的数据包采集分析方法(简称方法)本方法包括以下步骤:①Docker镜像仓库提供DPI(深度包检测)程序所需的运行环境及程序镜像、oracle镜像、以及Nginx镜像,提供版本控制功能、确保唯一性,为后续模块中的应用程序包括DPI程序及Redis容器镜像提供push、pull操作;②数据包处理模块分为数据分发及数据包检测两个部分,数据分发由intelDPDK开发套件实现万兆网口数据流量的过滤及按特定要求分发,分发的流量进入6-9个相互隔离的容器,容器内运行深度包检测程序;经DPI处理完成后的结构化数据写入数据库进行存储;③根据服务类型的差别,使用硬盘数据库Oracle及内存数据库Redis进行数据存储,在容器内运行;④服务提供模块实现与数据库的交互以及相关查询的操作接口的提供,各类服务运行于相互独立的容器;⑤weave虚拟网络实现数据包处理模块、数据库以及服务提供模块内容器级的互联;⑥容器监控模块从宿主机采集容器数据,实现插件式容器监控。本专利技术具有下列优点和积极效果:①能够处理万兆网口线速数据包的分发及处理分析;②基于容器技术实现,具有良好的可移植性及扩展性;③使用私有镜像仓库,降低了版本控制及运行维护的复杂性。④高度隔离,进程安全。附图说明图1是本系统的结构方框图;其中:100—Docker镜像仓库,101—服务器,102—客户端;200—数据包处理模块,201—DPDK数据包分发模块,202—深度包检测模块,202-1、202-2……202-N—第1、2……N深度包检测子模块,N是自然数,1≤N≤10;202-1-A—Docker容器,202-1-B—包处理镜像,202-1-C—DPI处理进程;300—数据库,301—硬盘数据库Oracle,301-A—Oracle容器,301-B—Oracle镜像,301-C—Oracle数据库服务;302—内存数据库Redis302-A—Redis容器,302-B—Redis镜像,302-C—Redis数据库服务;400—服务提供模块,401、402……40N—第1、2……N服务提供子模块,N是自然数,1≤N≤10;401-A—Nginx容器,401-B—Nginx镜像,401-C—Web服务;500—Weave虚拟网络;600—容器监控模块。英译汉1.Docker:一个开源的应用容器引擎;2.IntelDPDK:intelDataPlaneDevelopmentKit,英特尔数据平面开发套件;3.DPI:deeppacketinspection,深度包检测技术;4.Oracle:OracleDatabase,一种关系型数据库;5.Redis:RemoteDictionaryServer一种开源的关系型内存数据库;6.Weave:一种虚拟网络服务支持组件;7.GitHub:一个面向开源及私有软件项目的托管平台;8.Nginx:一个高性能的HTTP和反向代理服务器。具体实施方式以下结合附图和实施例详细说明:一、系统1、总体如图1,本系统包括Docker镜像仓库100、数据包处理模块200、数据库300、服务提供模块400、跨主机容器互联网络500和容器运行监控模块600;其交互关系是:Docker镜像仓库100分别与数据包处理模块200、数据库300和服务提供模块400交互,进行版本控制及镜像更新;数据包处理模块200、数据库300和服务提供模块400,均通过跨主机互联网络500依次交互;容器运行监控模块600分别对各个模块内容器运行状况进行监测。2、功能模块1)Docker镜像仓库100Docker镜像仓库100包括前后交互的服务器101和客户端102;实现镜像及容器的管理,存储用于后续模块的DPI模块镜像、Oracle镜像、Redis镜像及Nginx镜像。2)数据包处理模块200数据包处理模块200包括前后交互的DPDK数据包分发模块201和深度包检测模块202;数据包处理模块200负责对原始数据包的采集、分发、过滤以及内容分析还原。(1)DPDK数据包分发模块201使用intelDPDK套件进行二次开发,将线速的采集流量按预先定义的规则,遵从尽量均匀的标准将流量分发至DPI进程1至10。(2)深度包检测模块202深度包检测模块202包括第1、2……N深度包检测子模块202-1、202-2……202-N,N是自然数,1≤N≤10;第1深度包检测子模块202-1包括Docker容器202-1-A、包处理镜像202-1-B和DPI处理进程202-1-C;应用程序封装至容器中,在宿主机内克隆10个相同容器运行该进程,分别处理来自转发模块的原始数据包。3)数据库300数据库300根据数据优先级及业务类型的划分,由硬盘数据库Oracle301及内存数据库Redis302两个部分组成;数据库300负责消费和存储由数据包处理模块200生产的结构化数据;(1)硬盘数据库Oracle301硬盘数据库Oracle301包括Oracle容器301-A、Oracle镜像301-B和Oracle数据库服务301-C;负责存储由数据包处理模块200生产的全量结构化数据,提供查询类的操作服务;(2)内存数据库Redis302本文档来自技高网...

【技术保护点】
1.一种基于Docker的数据包采集分析系统,其特征在于:包括Docker镜像仓库(100)、数据包处理模块(200)、数据库(300)、服务提供模块(400)、跨主机容器互联网络(500)和容器运行监控模块(600);其交互关系是:Docker镜像仓库(100)分别与数据包处理模块(200)、数据库(300)和服务提供模块(400)交互,进行版本控制及镜像更新;数据包处理模块(200)、数据库(300)和服务提供模块(400),均通过跨主机互联网络(500)依次交互;容器运行监控模块(600)分别对各个模块内容器运行状况进行监测。

【技术特征摘要】
1.一种基于Docker的数据包采集分析系统,其特征在于:包括Docker镜像仓库(100)、数据包处理模块(200)、数据库(300)、服务提供模块(400)、跨主机容器互联网络(500)和容器运行监控模块(600);其交互关系是:Docker镜像仓库(100)分别与数据包处理模块(200)、数据库(300)和服务提供模块(400)交互,进行版本控制及镜像更新;数据包处理模块(200)、数据库(300)和服务提供模块(400),均通过跨主机互联网络(500)依次交互;容器运行监控模块(600)分别对各个模块内容器运行状况进行监测。2.基于权利要求1所述系统的数据包采集分析方法,其特征在于包括下列步骤:①Docker镜像仓库(100)提供DPI程序所需的运行环境及程序镜像、oracle镜像、以及Nginx镜像,提供版本控制功能、确保唯一性,为后续模块中的应用程序包括DPI程序及Redis容器镜像提供push、pull操作;②数据包处理模块(200)分为数据分发及数据包检测两个部分,数据分发由intelDPDK开发套件实现万兆网口数据流量的过滤及按特定要求分发,分发的流量进入6-9个相互隔离的容器,容器内运行深度包检测程序;经DPI处理完成后的结构化数据写入数据库(300)进行存储;③根据服务类型的差别,使用硬盘数据库Oracle及内存数据库Redis进行数据存储,在容器内运行;④服务提供模块(400)实现与数据库(300)的交互以及相关查询的操作接口的提供,各类服务运行于相互独立的容器;⑤weave虚拟网络(500)实现数据包处理模块(200)、数据库(300)以及服务提供模块(400)内容器级的互联;⑥容器监控模块从宿主机采集容器数据,实现插件式容器监控。3.按权利要求2所述的数据包采集分析方法,其特征在于所述的步骤①:a、在宿主机-Redhat6.5创建用于运行数据包处理程序的目录/PackProc,包含程序运行的相关执行文件及配置,通过DockerFile创建自己的镜像PackProc,push至Docker镜像仓库;b、通过dockerpullor...

【专利技术属性】
技术研发人员:何佳伟朱姣姣
申请(专利权)人:武汉虹旭信息技术有限责任公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1