一种基于配置文件和日志文件的跨组件数据流向审计方法和系统

文档序号:26296631发布日期:2021-08-17 13:43阅读:73来源:国知局
一种基于配置文件和日志文件的跨组件数据流向审计方法和系统

本发明属于大数据技术领域,具体提出一种基于大数据组件配置文件和日志文件的跨组件数据流向审计的方法和系统。



背景技术:

以hadoop为代表的大数据技术自推出以来,重点解决了分布式环境下利用通用服务器进行海量数据计算的各类痛点,随着云技术的推广,各个集群陆续从内网走向外网,因为缺乏原生的数据保护机制,且大数据组件种类多、搭配和组合多,导致数据层面屡次出现泄漏事件,虽然各个组件也陆续推出了各种保护措施,但是缺乏整体角度的数据使用情况审计,无法对整个集群的数据流转及运行情况进行安全评估。

数据流向不同于数据血缘,前者的重点在数据的流转过程,例如kafka的订阅,本身不会产生新的数据关系,但是其被不同的用户订阅走的数据都需要进行追踪;数据血缘重点关注数据的衍生关系,并且囿于技术体系的不同,数据血缘的探究多在同一个组件中,一旦数据跨组件流转,尤其是在不同数据组件之间流转时,血缘关系很难获取,此外,因为不同的组件代表不同的处理过程,此时去追踪血缘也没有那么必要了。而数据流向的追踪对于数据安全,尤其是跟踪数据的使用情况,就显得非常重要。可以通过数据流向,跟踪每个不同的业务的具体处理逻辑,可以从不同的数据交互、业务逻辑交互中梳理出数据流转路径;可以通过数据流向发现业务的使用异常,例如一个新的数据流向的产生,以及一个既有数据流的中断,都一般是业务上产生了新变化或故障导致;可以通过数据流向情况,结合权限信息,发现一些漏洞,例如用户没有某个数据的权限,但是却拥有该数据的一个下游子集的权限,则必然会导致信息的泄露。



技术实现要素:

本发明聚焦hadoop生态下,采用轻量级侵扰方式,通过采集各个组件的配置文件、运行日志文件、审计日志文件实现交叉验证,实现高精度的组件识别,结合凝练的安全审计模型,实现大数据平台整体数据流转情况的采集,进而支持业务流程中不同环节的数据使用情况审计,并能够对异常任务、异常数据使用场景进行识别和告警。

为实现上述目的,本发明采用的技术方案如下:

一种基于配置文件和日志文件的跨组件数据流向审计方法,包括以下步骤:

采集大数据平台中各个组件的配置文件和日志文件;

根据采集的配置文件和日志文件,识别分布式环境下部署在不同物理服务器上的大数据组件;

根据识别出的大数据组件并结合日志文件中的信息,构建跨组件的数据流向图;

根据数据流向图进行数据流向的异常判定及告警。

进一步地,所述日志文件包括运行日志文件、审计日志文件。

进一步地,通过包含集群、服务、角色、实例四层结构的组件构建模型,实现任意大数据组件的全局统一描述,其中:

集群:对应不同的数据中心,任意一个独立的数据中心就是一个集群;

服务:对应不同的大数据组件;

角色:对应某个服务下的不同功能角色;

实例:是指某个具体的运行的进程,是配置文件的最小单元。

进一步地,所述根据采集的配置文件和日志文件,识别分布式环境下部署在不同物理服务器上的大数据组件,包括:

1)采集某一组件的信息,依据组件构建模型所定义的要求,根据提前确定的数据字典,采集包括所属集群、服务、角色、实例等具体的基础信息;

2)将采集的基础信息作为初始判定列表,并在整个集群中探查所有节点;

3)对于待探查的节点,基于集群、服务名、角色名、实例ip,依次判定是否在初始判定列表中出现,如果没有出现,则将该待探查的节点的所属集群、服务名、角色名、实例ip插入初始判定列表,并基于“集群-服务-角色-添加时间-随机码”形成唯一的组件id;

4)如果该待探查的节点的所属集群、服务名、角色名、实例ip已经在初始判定列表中出现,则交叉验证该待探查的节点的配置文件中的关键ip是否已经在初始判定列表中出现,如果未出现,则将该待探查的节点的配置文件中的关键ip插入初始判定列表;

5)如果该待探查的节点的配置文件中的关键ip已经在初始判定列表中出现,则进一步比对该待探查的节点的运行日志中的ip是否在初始判定列表中出现,如果有出现,则将该待探查的节点的运行日志中的ip更新到已有的对应id下的组件,并更新属性;

6)如果该待探查的节点的运行日志中的ip没有在初始判定列表中出现,则放弃放弃该待探查的节点的运行日志中的ip;

7)依次循环执行上述过程,直至完成数据字典中所有已知组件和集群下所有节点的判定,最终的判定列表即为本集群的所有组件。

进一步地,所述根据识别出的大数据组件并结合日志文件中的信息,构建跨组件的数据流向图,包括:

基于所述组件构建模型,从日志数据中提取两个关键实体:数据实体、程序实体;

基于程序实体、数据实体构建数据流向图,数据流向图中的任意两个实体都通过读、写关系关联。

进一步地,构建所述数据流向图时,首先构建原子数据流向信息,然后将多个原子数据流向信息进行去重、合并、统一后得到整个集群的完整数据流向信息。

进一步地,所述根据数据流向图进行数据流向的异常判定及告警,包括:

1)通过关联权限信息,支持查验是否有权限设置的遗漏环节,具体包括以下步骤:

a)构建集群的数据流向信息,存储在图数据库中;

b)将待核验的用户权限信息作为输入条件,在数据流向中进行检索,查看被授权数据的前后数据流;

c)确定前后流转关系中是否出现该用户无权访问的信息,如果有,则进行告警;

2)通过设定判定阈值,自动发现流量变化异常的数据流,含新增、中断流程,并支持展示相关组件和对应的部署信息,对变化异常的数据流进行告警推送;具体包括以下步骤:

a)构建集群的数据流向信息,存储在图数据库中;

b)基于时间条件,查看某个时间点之前存在数据流向,但是该时间点后消失的数据流向,并将检索结果推送告警;

c)基于时间条件,查看某个时间点之前不存在数据流向,但是该时间点后出现的数据流向,并将检索结果推送告警。

一种采用上述方法的基于配置文件和日志文件的跨组件数据流向审计系统,包括文件采集模块、日志实时计算模块、日志存储模块、日志离线分析模块和可视化展示模块;

所述文件采集模块用于采集物理服务器的配置文件和日志文件,并对本地数据进行去重、标准化处理;

所述日志实时计算模块用于进行全局的数据去重、标准化、归一化,并进行大数据组件的识别和id生成;

所述日志离线分析模块用于实现数据流向图的构建和数据流向异常分析;

所述日志存储模块用于实现各类原始日志数据、配置文件数据的存储;

所述可视化展示模块用于展示包括数据、程序实体、组件属性在内的各种信息。

本发明提出的方法具有以下的优点及效果:

1.组件自动识别。通过预置的元数据和字典信息(字典信息即大数据组件的一些关键信息,例如对于hdfs,该字典会存储hdfs的namenode的uri、配置文件所在的存储目录等信息),自动识别任意大数据集群中不同物理机上部署的各个不同大数据组件的具体角色,准确率高,并能将信息进行统一汇总,支持去重、消冗,可以识别组件的迁移、增加、移除等场景。

2.支持呈现跨组件的数据流。通过数据流向识别技术,构建跨组件的数据流向图,可以查览全局的数据流情况,并能通过数据流向进行异常流向的自动判定和告警,支持增加新的业务场景,可以快速完成针对数据流的分析。

附图说明

图1是本发明方法的整体架构图。

图2是应用于数据流向的组件构建模型图。

图3是数据流向构建示意图。

图4是一个数据流向图的示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。

本发明的主要内容包括:

1)分布式环境下的组件识别技术,通过配置文件、运行日志的ip和用户信息,识别分布式环境下,部署在不同物理服务器上的组件和对应角色,并进行唯一编号。可以根据既有数据的交叉比对,判定是新增角色还是角色迁移,并通过日志信息进行辅助验证,达到组件识别的超高精度识别。

2)数据流向识别技术,通过对组件的识别,结合运行日志信息中的用户、元数据信息(如hive的库表、kafka的topic、es的index等信息)构建数据流向的有向图,并支持通过扩展属性的方式实现节点ip、角色等信息的补充。

3)数据流向的异常判定技术,通过关联权限信息,支持查验是否有权限设置的遗漏环节;通过设定判定阈值,自动发现流量变化异常的数据流,含新增、中断流程,并能支持展示相关组件和对应的部署信息;通过关联日志信息,支持判定异常任务,例如不加条件的数据全量读取等。

下面具体说明本发明的方法。

1.整体架构设计

整个方案的架构如图1所示,主要包括部署在每个物理服务器(计算节点)上的文件采集模块、日志实时计算模块、日志存储模块、日志离线分析模块和可视化展示模块几个部分组成。其中文件采集模块主要采集配置文件、运行日志文件、审计日志文件等信息,可以对本机的进程、运行环境等信息进行采集,支持对本地数据的去重、标准化处理等功能,将预处理的结果数据发送到包含数据总线的日志实时计算模块中。通过日志实时计算模块支持全局的数据去重、标准化、归一化等,并进行组件(即大数据组件)的识别和id生成,支持对流量数据的统计和处理。日志离线分析模块主要进行历史数据的迭代分析,产生预测模型数据,支持规则的汇聚,实现数据流向图的构建和数据流向异常分析。日志存储模块实现各类原始日志数据、配置文件数据(包含版本变化记录)等的存储。可视化展示模块用于展示数据、程序实体、组件属性等信息。

其中,配置文件是指程序运行过程中一些参数的配置管理文件,可以通过该文件修改一些参数的值,进行程序运行状态的调整,以达到更高的运行效率或更稳定的运行效果。运行日志文件是指程序在运行过程中输出的info、warn、error等级别的运行情况,通过运行日志,可以查验程序的运行状态,判定和处理程序运行故障。审计日志文件是指记录程序运行过程中,对数据、程序本身执行的一些关键操作,审计一般会包括执行的用户、时间、操作和执行结果信息,以便于回溯用户的行为,审查是否有异常举动和还原一些问题场景。

2.应用于数据流向的组件构建模型设计

本发明设计并实现包含集群、服务、角色、实例四层结构的组件构建模型,如图2所示,其中每个元素的定义如下:

集群:对应不同的数据中心,任意一个独立的数据中心就是一个集群;

服务:对应不同的大数据组件,包括hdfs、hive、yarn、kafka、flume、zk、spark、es等;

角色:对应具体某个服务下的不同功能角色,比如hdfs服务下有namenode、datanode、journalnode等角色,es服务下有master和node角色;

实例:是指某个具体的运行的进程,也是配置文件的最小单元,每个实例对应一个进程,一个或多个配置文件。

配置文件采集、版本管理以及日志文件中的组件信息、数据流转信息均按照上述模型进行统一抽象,即可以实现任意组件的全局统一描述。离线计算、实时计算都是基于该模型通过对数据进行分别处理,构建出模型的数据,最终识别出每个组件,进而产出一个完整的数据流向。

判定组件是否唯一的过程(即组件识别的过程)包括:

1)采集某一组件的信息,主要依据上述的模型所定义的要求,根据提前确定的数据字典,采集包括所属集群、服务、角色、实例等具体的基础信息。

2)将上述采集的基础信息作为初始判定列表,并在整个集群中探查所有节点。

3)对于待探查的节点,基于集群、服务名、角色名、实例ip等信息,依次判定是否在初始判定列表中出现,如果没有出现,则将该待探查的节点的所属集群、服务名、角色名、实例ip插入初始判定列表,并基于“集群-服务-角色-添加时间-随机码”形成唯一的组件id;

4)如果该待探查的节点的所属集群、服务名、角色名、实例ip,已经在初始判定列表中出现,则交叉验证该待探查的节点的配置文件中的关键ip,是否已经在初始判定列表中出现,如果未出现,则将该待探查的节点的配置文件中的关键ip插入初始判定列表,规则同上。

5)如果该待探查的节点的配置文件中的关键ip已经在初始判定列表中出现,则进一步比对该待探查的节点的运行日志中的ip是否在初始判定列表中出现,如果有出现,则将该待探查的节点的运行日志中的ip更新到已有的对应id下的组件,并更新属性,此处的更新属性可以追加新的列,也可以更新已有的数值。

通过前面步骤1)-5)的核验,可以最大化的将该组件的变更信息存储下来,另外,任何的更新和插入都会记录下来,通过记录所有的日志信息,可以发现新增、迁移的角色。

6)如果该待探查的节点的运行日志中的ip没有在初始判定列表中出现,则放弃该条记录,即放弃该待探查的节点的运行日志中的ip,本次操作终止,进行下一条记录的处理。

7)依次循环执行上述过程,直至完成数据字典中所有已知组件和集群下所有节点的判定,最终的判定列表即为本集群的所有组件。

3.数据流向图构建

基于“集群-服务-角色-实例”的模型从日志数据中提取两个关键实体:数据实体、程序实体。数据流向的构建是基于程序实体、数据实体,这是在组件中运行的两个具体的元素。

数据实体:具体的某个数据集,例如hive的表、kafka的topic、es的索引等。

程序实体:具体的某个任务,例如spark的某个jdbc查询实例、httpflume就是一个具体的程序实体、es整体抽象为一个程序实体。

数据流向的构建主要包括:以数据为中心的生成(写)和使用(读);以程序为中心的数据读、写,统一映射为“读”、“写”关系。基于该规则构建数据流向图,具体如下:

a)数据流向图的实体包括数据实体、程序实体;

b)任意两个实体都是通过读、写关系关联;

c)数据实体不能直接连接数据实体、程序实体也不能直接连接程序实体;

d)基于图库(即图数据库,其中存储关系和实体)进行数据存储和检索。

图3是数据流向图构建示意图。其中,原子数据流向信息是指某一条具体的数据流向信息,比如kafka的一个订阅程序,会记录订阅ip、时间、订阅人、订阅的数据主题。根据数据字典记录的不同组件的信息,调用该组件的接口获取对应的日志、配置等信息,然后基于上述组件构建模型采集对应的元素,自动构建原子数据流向信息。完整数据流向信息是指将多个原子数据流向信息进行去重、合并、统一后的整个集群的数据流向信息。基于数据、程序实体作为点,基于原子数据流向信息记录补充对应的关系,形成一个网络状的数据流向,即得到完整数据流向信息。可视化展示模块用于展示数据、程序实体、组件属性等信息。图4是一个数据流向图的示意图,其中的圆形表示具体某个数据的名称,长方形表示处理数据的某个具体应用,展示的名称均是唯一的id。

4.数据流向异常分析设计

数据流向异常分析由日志离线分析模块完成。从组件的日志文件等信息中解析出原子数据流向信息,包括ip、数据源、目标、程序进程信息、用户信息、时间等。基于配置文件中提取的组件实体信息,结合日志文件中的程序实体、数据实体构建数据流向图。然后基于数据流向图,通过设置阈值的方式,实现数据流向异常的判定,进而实现告警,主要包括:

1)通过关联权限信息,支持查验是否有权限设置的遗漏环节。具体包括以下步骤:

a)构建集群的数据流向信息,存储在图数据库中;

b)将待核验的用户权限信息作为输入条件,在数据流向中进行检索,查看被授权数据的前后数据流;

c)确定前后流转关系中是否出现该用户无权访问的信息,如果有,则进行告警。

2)通过设定判定阈值,自动发现流量变化异常的数据流,含新增、中断流程,并能支持展示相关组件和对应的部署信息,对变化异常的数据流进行告警推送。具体包括以下步骤:

a)构建集群的数据流向信息,存储在图数据库中;

b)基于时间条件,查看某个时间点之前存在数据流向,但是该时间点后消失的数据流向,并将检索结果推送告警;

c)基于时间条件,查看某个时间点之前不存在数据流向,但是该时间点后出现的数据流向,并将检索结果推送告警。

基于同一发明构思,本发明的另一实施例提供一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。

基于同一发明构思,本发明的另一实施例提供一种计算机可读存储介质(如rom/ram、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。

以上公开的本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例所公开的内容,本发明的保护范围以权利要求书界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1