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 分析程序实现重启自动恢复流程
   360   361   362   363   364   365   366   367   368   369   370