发明内容
为了实现以上目的,本发明提供了一种收集用户在互联网上产生的信息数据的系统,一种收集用户在互联网上产生的信息数据的系统,该系统包括:
代理模块,用于接收调用方通过参数形式传入的将要收集的日志的类型和传输协议,
并与监控集群模块建立长连接与监控集群模块进行通信,以及当用户访问网页产生相应日志数据时,将日志数据信息收集下来,在日志数据前加上传入的日志类型,根据传输协议传输日志数据到接收集群模块;
监控集群模块,与接收集群模块中的所有服务器进行通信,来判断接收集群模块中的服务器的服务状态,通过监控管理模块写入接收集群模块的配置文件,所述配置文件用于定义接收集群模块针对不同类型日志数据所采取的对应处理方式;
接收集群模块,用于在接收到日志数据后,根据代理模块给日志数据加上的日志类型标示判断出日志数据的类型,根据该日志数据类型获取配置中对应类型的日志数据的处理方式进行处理。
进一步,所述代理模块在传输日志数据之前,与监控集群模块进行通信从而获取接收集群模块中的服务器的服务状态及接收集群服务器信息,监控集群模块判断接收集群服务器正常服务数量是否小于接收集群服务器总数量的一半,如果小于一半,将返回接收集群服务状态不良好,反之,接收服务器服务状态良好,当接收集群状态为良好,代理模块根据反馈的接收集群服务器信息以指定的传输协议方式发送日志到指定的接收集群服务器,反之,代理模块要将日志数据信息进行本地存储。
进一步,当监控集群模块上的接收集群的配置文件生成或更新时,将配置信息加载到接收集群模块中,配置信息包括了各种类型日志的处理方式。
进一步,接收集群模块中的服务器在注册时会将接收集群服务器信息传送给监控集群
模块,所述信息包括接收集群服务器IP地址和服务端口信息。
进一步,所述处理方式包括以下方式中的一种或几种:基于分布式文件系统的存储,本地存储,基于UDP协议的转发,基于TCP协议的转发。
本发明还提供了一种收集用户在互联网上产生的信息数据的方法,该方法包括:
步骤(1)代理模块用于接收调用方通过参数形式传入的将要收集的日志的类型和传输协议;
步骤(2)当用户访问网页产生相应日志数据时,将日志数据信息收集下来,在日志数据前加上传入的日志类型;
步骤(3)代理模块与监控集群模块建立长连接与监控集群模块进行通信;
步骤(4)监控集群模块与接收集群模块中的所有服务器进行通信,来判断接收集群模块中的服务器的服务状态;
步骤(5)当接收集群模块中的服务器状态为良好,监控集群模块反馈接收集群服务器信息给代理模块,代理模块以指定的传输协议方式发送日志到指定的接收集群服务器,反之,代理模块要将日志数据信息进行本地存储。
进一步,所述步骤(4)中判断接收集群模块的服务器状态是指监控集群模块判断接收集群服务器正常服务数量是否小于接收集群服务器总数量的一半,如果小于一半,将返回接收集群服务状态不良好,反之,接收服务器服务状态良好。
进一步,监控集群模块通过监控管理模块写入接收集群模块的配置文件,所述配置文件用于定义接收集群模块针对不同类型日志数据所采取的对应处理方式。
进一步,接收集群模块在接收到日志数据后,根据代理模块给日志数据加上的日志类型标示判断出日志数据的类型,根据该日志数据类型获取配置中对应类型的日志数据的处理方式进行处理。
进一步,所述处理包括以下方式中的一种或几种:基于分布式文件系统的存储,本地存储,基于UDP协议的转发,基于TCP协议的转发。
具体实施方式
以下结合附图和具体实施例对本发明作进一步说明。
本发明实现了一套安全实时可靠的日志采集存储方案,其中包括代理模块,监控集群模块,接收集群模块。
如图1所示,代理模块的工作示意图。代理模块实现方式如下:
需要收集一种日志前,需要先定义这种日志的类型及传输协议(支持基于TCP协议,支持基于UDP协议)。例如:要收集页面访问日志(accessLog),定义日志类型为accessLog,使用基于UDP协议进行传输。定义好后,将该日志的类型和传输协议通知调用代理模块(所谓代理模块就是作为互联网应用(大型网站)的插件专门负责收集日志数据信息的计算机程序,针对不同的计算机语言的互联网应用有不同计算机语言的代理模块)的第三方(以下简称调用方)。
调用方通过参数形式将要收集的日志的类型和传输协议传入代理模块后启动代理模块,代理模块在启动的时候就会与监控集群模块建立一个长连接,通过长连接方式(连接一直保持,正常情况下不会主动断开)与监控集群模块进行通信。当用户上网访问并产生相应日志数据时,代理模块将日志数据信息收集下来,并在日志数据前加上传入的日志类型(accessLog),然后根据传入的传输方式(基于UDP协议)准备传输日志数据。
代理模块在要传输日志数据之前,需要与监控集群模块进行通信从而获取接收集群(接收代理模块发送的日志数据并且根据日志分类分别存储的多个服务器)的服务状态及接收集群服务器信息(接收集群的每台服务器注册到监控集群模块时写入的服务器IP地址和服务端口信息),监控集群模块判断其管理下的接收集群服务器正常服务数量是否小于接收集群服务器总数量的一半,如果小于一半,将返回接收集群服务状态不良好,反之,接收服务器服务状态良好。代理模块拿到监控集群模块反馈的接收集群服务状态后判断该如何处理日志数据信息。
当代理模块拿到接收集群状态为良好,代理模块根据反馈的接收集群服务信息(具体接收集群服务器的IP地址和服务端口信息)以指定的传输协议(基于UDP协议)方式发送日志到指定的接收集群服务器。反之,代理模块要将日志数据信息进行本地存储,并且报警给相关人员,等待接收集群服务状态恢复良好,再将本地存储日志数据发送到接收集群模块。
如图2所示,监控集群模块的工作示意图。监控集群模块实现方式如下:
接收集群服务器会注册到监控集群模块上,并且监控集群模块会不间断的与接收集群模块中的所有服务器进行通信,来判断接收集群服务器的服务状态,当接收集群中有服务器与监控集群模块失去通信,监控集群模块就将该服务器清除出集群服务列表,并报警给相关人员,同时将最新的可服务的接收集群服务器反馈到代理模块。当集群服务器有一半都失去通信,就将接收集群置为不可服务状态,并报警给相关人员,同时通知代理模块。
通过监控管理模块(管理接收集群配置文件的程序,包括写入配置文件和更新配置文件)将接收集群模块的配置文件写入到监控集群模块,此配置文件的作用是定义接收集群模块针对不同类型日志数据所采取的对应处理方式,当相关人员通过监控管理程序更新了监控集群上的此配置文件内容时,监控集群模块会通知接收集群的所有服务器更新配置信息。
如图3所示,接收集群模块的工作示意图。接收集群模块实现方式如下:
通过长连接方式注册到监控集群模块上,监控集群模块会保存所有注册上来的接收集群服务器的信息,包括接收集群服务器IP地址和服务端口信息。
启动接收服务(包括各种传输协议,例如基于TCP协议,基于UDP协议的接收监听服务),当代理模块以基于UDP协议发送日志数据,接收集群模块就会通过基于UDP协议去接收。例如:代理模块以基于UDP协议形式发送accessLog日志数据,接收集群模块就会以基于UDP协议接收。
当监控集群模块上的接收集群的配置文件生成或更新时,将配置信息加载到接收集群模块中。配置包括了各种类型日志的处理方式,当新收集一种日志时,除了要把新日志的类型告诉调用方外,接收配置文件也得配置新日志对应的处理方式。
例如:accessLog日志数据配置了需要进行基于分布式文件系统的存储,本地存储,基于UDP协议的转发,基于TCP协议的转发处理。而testNormal日志数据配置了需要进行HDFSStore(基于分布式文件系统的存储),LocalStore(本地存储)处理,代表只需要基于分布式文件系统的存储和本地存储处理。这样配置的好处在于任何一种日志都可以选择至少一种处理,而且任何一种日志的处理方式都是可以通过监控管理程序更新监控集群模块中的配置信息达到随时调整的目的。
接收集群模块接收到日志数据,根据代理模块给日志数据加上的日志类型标示判断出日志数据的类型,通过分析出的日志类型(比如:accessLog日志)去获取配置中对应类型的日志数据的处理方式进行处理。
除了使用默认的基于分布式文件系统的存储,本地存储,基于UDP协议的转发,基于TCP协议的转发四种预处理方式外,为了满足不同的需要,还支持自定义扩展处理。
如图4所示,示出了根据本发明的系统结构图,其中,该系统包括:代理模块,用于接收调用方通过参数形式传入的将要收集的日志的类型和传输协议,并与监控集群模块建立长连接与监控集群模块进行通信,以及当用户访问网页产生相应日志数据时,将日志数据信息收集下来,在日志数据前加上传入的日志类型,根据传输协议传输日志数据到接收集群模块;监控集群模块,与接收集群模块中的所有服务器进行通信,来判断接收集群模块中的服务器的服务状态,通过监控管理模块写入接收集群模块的配置文件,所述配置文件用于定义接收集群模块针对不同类型日志数据所采取的对应处理方式;接收集群模块,用于在接收到日志数据后,根据代理模块给日志数据加上的日志类型标示判断出日志数据的类型,根据该日志数据类型获取配置中对应类型的日志数据的处理方式进行处理。
所述代理模块在传输日志数据之前,与监控集群模块进行通信,从而获取接收集群模块中的服务器的服务状态及接收集群服务器信息,监控集群模块判断接收集群服务器正常服务数量是否小于接收集群服务器总数量的一半,如果小于一半,将返回接收集群服务状态不良好,反之,接收服务器服务状态良好,当接收集群状态为良好时,代理模块根据反馈的接收集群服务器信息以指定的传输协议方式发送日志到指定的接收集群服务器,反之,代理模块要将日志数据信息进行本地存储。
当监控集群模块上的接收集群的配置文件生成或更新时,将配置信息加载到接收集群模块中,配置信息包括了各种类型日志的处理方式,例如基于分布式文件系统的存储,本地存储,基于UDP协议的转发,基于TCP协议的转发。接收集群模块中的服务器在注册时会将接收集群服务器信息传送给监控集群模块,所述信息包括接收集群服务器IP地址和服务端口信息。
本发明具有以下一些优点:1)在数据信息采集方面,系统可以针对不同计算机语言实现采集,可以将系统应用到各种不同计算机语言的产品及平台上,这一点实现了系统的跨平台采集,其次系统实现了通过多种传输协议来实现数据信息的传输,这样对于不同的数据信息可以采取不同的传输方式,对于一些安全系数要求高的,可以通过安全协议来传输,对于一般的类型的数据信息,可以考虑采用一些传输速率快的一些协议来传输,这样可以有效的利用服务器处理更多的事务和保证数据信息的安全性和多种处理方式。数据信息采集方面还有一些针对接收服务出错的一些处理,当接收服务出现问题,会将数据信息临时存储,等待接收服务恢复正常工作后再进行重发,这样提高了数据信息采集的完整性。2)在监控及系统配置方面,系统通过监控实时了解接收服务的状况并进行实时反馈,保证当接收服务异常的情况下,日志会得到相应的处理避免日志丢失,同时会报警给相关人员及时处理,提高处理问题的效率。其次系统采用统一管理配置信息方式,这样可以保证配置信息是一次改动多处使用,避免了多处改动造成配置信息不统一,另外也可以方便实时添加配置信息,及时的应用到系统中。由于处理日志是根据配置信息决定,所以可以在配置信息中灵活的配置某种日志的一种处理方式或多种处理方式。3)在数据信息接收及存储方面,将以多种协议进行接收,并且根据统一配置信息将对不同类型的日志进行一种或多种不同的处理,其中处理方式有系统自定义的和用户可扩展的,系统自定义一些常用的处理方式,包括多种类型的存储,多种协议的转发,其中对一些安全级别高的数据信息当转发出错时会进行重发操作保证数据信息存储的完整性。其次系统为用户留下处理数据信息的接口方便当有特殊的需求时进行扩展处理的实现,这样提高了体统的可扩展性。