Page 365 - 《软件学报》2026年第4期
P. 365
1806 软件学报 2026 年第 37 卷第 4 期
轮询分发机 把 IP 列表
遍历当天留存 均衡分发到
分发 PCAP 器指定目录 文件下载
的 PCAP 压缩包 多台解析机器
IP 列表文件 到本机
遍历被分发到
解析 IP 本机器指定目录 解压缩 读 PCAP 解析包 生成 IP
的 PCAP 压缩包 列表文件
读 GeoIP 地址 累加归属地 完成当天留存
分析 IP 遍历 IP 文件 库获取归属地和 和运营商的 数据解析发生
运营商信息 子网数量 到 ES
图 3 子网地址解析和分析流程
3.2 大数据平台存储和监控
子网分析输出的数据按时间维度划分为两类, 一类是当天的累加数据, 每小时输出一次, 后一次数据输出后覆
盖前一次的存储记录; 一类是小周期内的汇总数据, 每周期输出一次, 每周期的数据输出后追加存储记录, 每周期
间隔时长 20 min. 对于周期内的输出数据, 目前的子网分析是基于解析 PCAP 生成的 IP 列表文件. IP 列表文件和
每分钟的 PCAP 文件一一对应, 每个文件处理时长不完全一样, 所以把每周期定义为处理每 20 个 PCAP 即每 20
个 IP 列表文件作为周期结束标志, 这样后续进行周期之间数据比较才会有意义. 由于系统解析 PCAP 采用分布式
处理, 不是严格按照记录的时间顺序获得 IP 列表文件, 所以每 20 个文件的留存时间不一定顺序排列, 可能个别文
件时间顺序会颠倒.
两类数据均通过 Kafka 消息输出, 大数据平台端通过消费 Kafka 消息存储记录. 其中累加数据, 在大数据平台
端采用 Elasticsearch 存储, 便于对外提供实时查询. 每周期的汇总数据, 在大数据平台端采用离线文件系统存储,
后续分析时采用离线分析实现. 基于这样的大数据平台, 就非常便于分析和搜索所需要的结果.
大数据平台端实现了任务运行状态监控, 能及时发现任务终止, 同时实现了上传数据的消息堆积监控, 能及时
发现上传数据处理阻塞. 程序在每个周期完成后, 向监控平台发送周期标识的数据, 监控平台如果在间隔半个小时
内没有收到该数据则预警通知. 接收预警通知后, 到机器上排查进程状态和数据输出状态, 确认程序是否异常. 分
析程序异常退出或升级后重启自动恢复, 对于当天重启的情况, 图 4 展示了分析程序接续之前的分析位置, 避免重
新开始分析或者重复分析的情况.
完成一个周期
的分析 分析程序重启
输出周期的数据 从文件系统加载
到本地文件 当天汇总数据
删除周期解析 从文件系统加载
的 IP 文件 最新的 3 个 (如果有)
周期数据
发送周期数据到
大数据平台 输出累加数据到
本地文件 (包括 周期数据 是
是否累加?
把周期的数据累加到 累加的周期)
当天汇总数据 否
发送累加数据 删除周期数据文件以
到大数据平台 累加周期数据到 及清空加载的周期数据
累加到 3 是 加载的汇总数据
个周期? 删除本地
周期数据
否 遍历 IP
文件分析
分发结束
图 4 分析程序实现重启自动恢复流程

