论文部分内容阅读
随着信息技术的飞速发展,互联网在我们的日常学习工作中饰演着越来越重要的角色。企业,科研院所,国家单位,高校等单位和部门的信息化和网络化的程度越来越高,由此保障信息安全与网络安全就变得尤为重要。对于企业等机构来说,可能需要有多种网络安全设备(Web应用防护系统,入侵检测系统等)来保障整个企业的网络信息安全。不同的设备会产生大量不同种类的日志,这些日志数据作为网络信息安全的主要数据,重要性不言而喻。如果只凭借人力分析、统计、管理大量不同类型的日志,工作量将会是巨大的。此时就需要一个系统来对不同设备的日志进行集中接入,管理和生成报表,这样企业安全平台日志报表子系统就应运而生了。本文采用软件工程的研究方法详细论述了设计和实现了一个基于REST架构的企业安全平台日志报表子系统的过程,本文的主要工作如下:(1)分析了已有的该子系统所要依托的企业安全平台,提出了基于REST架构的日志报表子系统的解决方案,最大程度上实现了前后端的分离,并满足了后端同时使用Spring和Django两种框架的需求。(2)对本文所依赖的各项技术,如REST架构、Hive数据仓库工具、Flume分布式海量日志采集及聚合和传输系统、Heka组件等进行了深入的研究,明确了论文的研究方向。(3)通过前期调研以及对该系统的业务流程分析,完成了该日志报表子系统的需求分析。(4)完成了系统“前端-服务端-数据库”的三层架构设计,并采用REST架构实现了前后端完全分离,前端采用了AngularJS的架构,本人主要负责的后端采用了Spring与Django框架,前后端之间通过Http请求或者Thrift来完成数据的交互或服务的相互调用。数据库同时使用了Hive和PostGreSQL来作为数据的存储工具。(5)根据系统功能划分出了系统功能模块,并完成了每个功能模块的设计与实现。(6)根据本系统的需求、设计与实现给出了系统测试方案。通过设计并运行测试用例完成了对本系统的功能性测试与性能测试,并对测试结果与数据进行了详细的分析。最终经过多轮测试,系统所有测试用例全部通过,实现了所有的功能性与非功能性需求。该日志报表子系统最终实现了日志接入、日志查询、日志备份与恢复、报表生成和日志告警五大功能。在日志接入模块实现过程中,针对设备日志多样性的特点,采用了从数据库读取数据进行Flume的动态配置然后重启Flume的配置方式,而不是传统的将Flume配置信息直接写入配置文件中。采取该方式的目的是在设备日志类型发生新建、修改或删除时可以通过直接在数据库中更新数据而不是修改配置文件来更新Flume配置。同时为了满足大小数据模式下日志数据库不同的需求,日志数据表的创建也采取了从数据库读取数据然后动态创建的方式。在日志报表模块中针对报表种类复杂的特点,使用了Django框架将各种报表的数据查询插件化。在生成报表时,只需引入相关设备提供的查询插件就可以获得该种类报表所需的日志数据。同时Python形式的插件也方便其新增、修改和删除。本系统作为企业安全平台的子系统,依托于企业安全平台已经投入了运行。本系统目前能够接入多种网络安全设备的日志,并生成对应的报表。此外还提供了日志查询、日志备份恢复和日志告警的功能,从而高效便捷地管理网络安全设备日志。