中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 网络安全
DNS实时监控系统的设计与实现
http://www.edu.cn   2013-12-20 中国教育网络 作者:李欣琪

字体选择:【大】 【中】 【小】

系统架构与设计

  根据上述需求,对D N S 实时监控系统的架构进行设计,如图2所示。监控系统包括控制中心、数据传输、数据清洗、索引、分布式存储、检索、统计分析和可视化等部分。

图2 监控系统架构

  通过控制中心向D N S 集群下达数据传输任务,D N S 集群将各类性能数据和日志文件通过数据传输模块发往指定的存储区域进行集中化存储。由于原始数据的类型和格式各异,所以需要根据数据源分别对各类数据进行数据清洗,去除格式异常的无效数据,并将其转换为预定义的逻辑结构。接下来数据将会以流的形式发送给索引模块,索引模块为数据建立索引,并将其存储至H B a s e 节点上。对于前端用户发起的查询请求,检索模块通过H B a s e 集群的读写接口进行并行处理,并将结果返回给用户。同时,可视化模块负责提供数据的多样化展示。

  数据传输

  D N S 服务器时刻都在响应用户的请求,大量的数据在会话中产生。这其中量最大的就是刻画服务性能的相关数据。例如, 服务器实时的CPU、内存使用率,网络带宽的使用情况,并发请求数等等。另外,通过配置,D N S 能够以对服务器的性能指标进行统一管理,需要将这些数据统一传输到监控系统的后端存储上进行集中处理。数据传输任务由控制中心向各DNS 服务器下发,可使用FTP、SCP 等多种传输方式。

  数据清洗

  对于传输到监控系统后端存储上的数据,由于其格式各不相同,并且可能包含一些无效的数据,所以在进行索引和分析之前,需要对数据进行统一的清洗。数据清洗主要通过F l u e n t d 来实现。Fluentd 是一款开源的数据流收集系统,它的特点在于其输入输出部分均是可定制化的,用户可以通过简单的配置,将数据流以指定格式输出到目标位置。例如,一条典型的DNS 查询请求格式如下所示:

  18-Aug-2012 15:05:19.975 info: client 175.186.6.136#56377:view internal: query: www.hao123.com IN A +

  各字段分别记录了请求日期、时间、请求来源和端口,以及请求对象和请求类型。为了从中提取对数据统计和分析有价值的信息,可以通过构造正则表达式定义如下的F l u e n t d 数据格式配置来对该条数据进行整理:

  format /^(?<date[^ ]*>) (?<t_time[^ ]*>) [^ ]* [^ ]* (?<src_ip[a-zA-Z0-9:.]*>)[^ ]* [^ ]*[^ ]*[^ ]*(?<domain[^ ]*>) .*$/

  整理后的数据为Key-Value 的形式,非常适合做进一步地处理。

  索引与分布式存储

  为了提高数据检索的速度,需要将清洗后的数据做进一步的处理而不是直接进行存储。首先将数据通过全文索引工具Lucene 进行处理,由于是文本文件,Lucene 使用Text File Parser 对数据进行解析,提取出索引项和相关频率等信息。接下来Lucene 对数据构建反向索引并进行存储,其中反向索引包含搜索关键词所对应的所有文档,通过这种方式来提高对文档关键词的检索速度。但随着处理数据量的增加,索引的规模也在迅速膨胀,直接基于文件系统存储索引会使检索性能明显下降。本文通过将Lucene 索引存储到专为海量数据处理而设计的HBase 之上,能够很好地利用HBase 高可靠性、高性能、可伸缩的分布式存储特点,即使在索引规模较大的情况下也能够实现实时的查询。

  控制中心

  对于监控系统的数据传输、数据清洗、索引和存储等任务,都需要由控制中心来统一下发命令和进行任务调度。在数据传输过程中,控制中心需要实时检测传输是否中断,传输完成之后还要再次检查线上数据和监控系统后端存储数据是否一致。如果两份数据不一致,控制中心需要通知数据传输模块进行重传。对于成功传输的数据,控制中心会通知传输模块将其从DNS 线上服务器删除。同样,数据处理的其他各阶段,也需要控制中心来监控处理过程,对于出现异常的任务需要重新启动,只有顺利完成的任务才能够进入下一个阶段进行进一步的数据处理。

  检索

  经过索引后的数据,可以通过监控系统的前端提交查询请求。查询请求的格式支持Lucene 的查询语法,同时支持多条件、多字段的综合查询。例如,需要查询2013 年07 月03 日所有查询f u d a n .edu.cn 域名的请求情况,可以输入以下语句进行查询:

  Date:”2013-07-03” AND domain:”fudan.edu.cn”

  检索模块将通过H B a s e 查询接口对索引数据进行查询,并返回所有的结果。

图3 DNS 监控系统数据检索页

  可视化

  对于D N S 的各项监控指标,单纯从记录查询和数据统计上可能无法对D N S 的整体运行状况有全局性的了解。因此对监控数据进行可视化展示和对比能够让管理员对D N S 运行状态一目了然。本文设计的监控系统通过横向和纵向对比各监控指标所占的比例和趋势,提供柱状、饼状和热力图等可视化方式,使管理员全面掌握DNS 以及网络的运行情况。

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com