统一安全管理平台性能测试之日志分析
1 前景回顾
上一期我们分享了如何对统一安全管理平台的设备管理模块进行性能测试,同时遗留了一个在日志分析模块性能测试过程中遇到的实际问题。 这一期,我们就该问题做进一步研究处理。
2 测试思路
日志分析性能测试要比设备管理复杂一些,主要是因为涉及到日志的处理和管理,基于我们的需求“模拟多台设备跨越多个日期上报多种类型的日志”,来梳理一下测试思路。
(1)使用一台真实车载防火墙产生相应业务日志,并成功上报至集中管理平台;
(2)获取上述各类型日志文件,作为原始日志数据;
(3)按既定策略处理原始日志数据,生成不同设备、不同日期、不同类型的业务日志,具体可分为:
①. 基于gatewayID、日期和日志类型创建目录,用于存放各自日志文件,模拟若干台车载防火墙,若干天上报多种类型业务日志;
②. 基于gatewayID替换原始日志ID字段信息、基于指定日期产生随机时间替换原始TIME字段信息,并存放于①创建的目录下;
③. 基于gatewayID、日期和日志类型生成.zip压缩包日志文件,并存放于①的父目录下,用于下一阶段日志上报;
④. 基于gatewayID和日期删除步骤①创建的基于日志类型的临时目录,仅保留.zip压缩包日志文件;
(4) Linux客户端目录创建,具体可分为:
①. 创建bin、logs、logfiles三个目录
②. bin目录用于存放可执行shell脚本
③. logs目录用于存放脚本运行时产生的日志
④. logfiles目录用于存放车载防火墙日志文件
(5) Linux客户端脚本执行,与设备管理性能测试类似,此外引入了多线程概念。
3 测试方案
搭建如图3-1所示的性能测试拓扑,其中Linux客户端可以修改上述gatewayID和gatewayIP,用于模拟多台车载防火墙与统一安全管理平台交互;三层交换机配置ETH0和ETH1于同一VLAN,如VLAN4093,接口VLAN-IF 4093配置多组IP地址,用于实现车载防火墙既可以和管理平台二层通信又可以进行三层通信,适应现场不同组网环境。
图3-1 性能测试拓扑图
测试思路中的前两个步骤属于常规操作,不再赘述,下面讲解一下原始日志处理模块和Linux客户端脚本部分。
3.1 日志生成
如图 3-2所 示, 展示了日志处理的基本操作步 骤,下面针对每一步骤进行讲解。
图3-2 日志处理整体逻辑
如图3-3-(a)所示,该部分用于实现基于gatewayID、日期和日志类型创建目录。
图3-3-(a) 创建目录逻辑
如图3-3-(b)所示,展示了日志处理模块创建的目录结构。
图3-3-(b) 创建目录结果
如图3-4-(a)所示,该部分用于实现基于gatewayID和日期替换原始日志数据。
图3-4-(a) 替换日志逻辑
如图3-4-(b)所示,展示了原始日志替换GATEWAY_ID、TIME后的目录结构。
图3-4-(b) 替换日志结果
如图3-5-(a)所示,该部分用于实现基于gatewayID、日期和日志类型生成.zip压缩包文件。
图3-5-(a) 压缩文件逻辑
如图3-5-(b)所示,展示了生成的.zip压缩包格式日志文件后的目录结构。
图3-5-(b) 压缩文件结果
如图3-6-(a)所示,该部分用于实现基于gatewayID和日期删除基于日志类型的临时目录。
图3-6-(a) 删除目录逻辑
如图 3-6-(b)所示,展示了删除临时目录之后的目录结构。
图3-6-(b) 删除目录结果
以上,为日志处理过程中的常规思路和具体操作实现,在不同实例中可能会需要生成几万个日志文件,此时需要使用多线程或者多进程来提升处理速度,如图3-7-(a)所示。
图3-7-(a) 多进程替换日志
另外按上述处理逻辑需要等全部替换完才进行压缩处理,日志文件数量级增长也会使得所需磁盘空间暴涨,此时则可用“边替换、边压缩、边删除”的方案予以解决,如图3-7-(b)所示,这一点类似于测试防火墙新建并发性能时使用的“边建边拆”流量模型。
图3-7-(b) 替换压缩删除处理
3.2 日志发送
如图3-8所示,展示了测试脚本和测试数据在Linux客户端存放情况。
图3-8 Linux客户端目录结构
如图3-9所示,一个基于shell脚本实现的实例,可以是物理机Linux也可以是虚拟机Linux。
图3-9 性能测试实例
通过上述方案,可最大限度地模拟多台车载防火墙向统一安全管理平台上报多日期、多类型业务日志。结合实际使用场景,动态调整日志生成和日志发送模块相关参数,可以验证管理平台日志分析性能(如:分析多少台设备的业务日志、分析多少天的业务日志、每秒分析多少条业务日志等)。
