一种多节点web服务异常检测方法和系统
技术领域
本发明涉及本信息安全领域,具体是大型企业web服务异常的检测。
背景技术
在今天的IT环境中,企业的各种业务已经越来越紧密地与Internet结合在一起,由服务器、数据库、中间件等组成的应用信息系统也变得越来越复杂,对IT技术人员的要求变得越来越高,各种突发故障排除起来也越来越困难。而企业利润的增长和获得直接取决于业务能否有效运行,应用的运行质量直接关系用户可以提供的业务水平。在那些关键应用上对性能监控管理,对性能问题进行及时有效的分析和处理,是提高用户业务的迫切需要。
在一个业务系统上线运行后,衡量该系统运行质量的尺度必然是考察其完成业务的能力、速度和稳定性。由于应用的执行状况直接反映了业务运行的质量,所以对应用的监控、分析、优化和从应用角度对系统的观察,是性能管理最重要的方面。
各类企业IT服务往往以web服务的形式提供,,由于当今业务本身的多变性,业务模型是不断变化的;业务的发展也使得软硬件平台不断升级,业务的扩充和迁移也是经常性的;由于软件产品的特性,高度产品化而且高度易于客户化的应用软件在很多领域远未实现。以上种种因素使得今天的企业内的web服务复杂、常常出现异常且难以管理。
但是,目前针对web服务的检测往往采用特征检测的方法,采用入侵检测系统只是在表示入侵模式(签名)的方式以及在系统的审计中检查入侵签名的机制上有所区别,主要可以分为基于专家系统、基于状态迁移分析和基于模式匹配等几类。这些方法的主要局限在于,只是根据已知的入侵序列和系统缺陷模式来检测系统中的可疑行为,而不能检测新的入侵攻击行为以及未知的、潜在的系统缺陷。
发明内容
本发明的目的是为了克服现有技术的缺点,提出一种多节点web服务异常检测方法和系统,能够实现对web服务系统进行异常检测和故障定位分析。
本发明的目的是通过以下技术方案实现的:
一种多节点web服务异常检测系统,包括:元数据采集模块、元数据索引模块、web服务异常检测模块和web服务异常定位模块,其中:
A、元数据采集模块对syslog协议或者日志文本读取,获取全网各节点web服务器日志元数据;
B、元数据索引模块:对不同种类web服务器的异构日志进行格式化,统一数据格式,采用ElasticSearch技术对web元数据进行索引;
C、web服务异常检测模块:周期性计算各个web服务器节点的错误日志比率,并构建错误日志比率的基线数据模型,当web服务的当前错误日志比率与该web服务的错误日志比率基线模型偏离较大时,确定为web服务异常;
D、web服务异常定位模块:通过web元数据索引检索异常web服务在故障时间点的所有日志元数据,检索日志严重等级最高且重复次数最多的日志为web服务异常事件内容。
优选的,数据采集模块采集web服务器日志的方式为通过syslog协议采集或通过读取web服务器日志文件采集。
优选的,元数据索引模块对不同种类web服务器的异构日志进行格式化的具体步骤如下:
采用W3C扩展日志格式(ExLF),元数据采用字节码方式,统一的web服务元数据格式设计如下表1:
表1
优选的,在索引web日志元数据,对元数据序列按照时间以增量方式向索引库添加数据,建立索引采用分布式检索工具ElasticSearch完成。
优选的,web服务的平均错误日志比率计算过程为:
先计算某个web服务器节点的错误日志比率:
er=(服务器响应状态status为4XX和5XX的日志个数)/日志总数
设该支撑该web服务(webservice)的各个web服务器节点(webservernode)的错误日志比率为:
{er0,er1,er2,er,er4,er5,......ern}
则,该web服务的平均错误日志比率为:
优选的,所述系统的web服务异常检测模块,实现步骤如下:
(1)基线构建阶段:根据设定的学习周期(learn_time,默认为24小时)和采样点时长(sample_time,默认为5分钟),建立各个web服务的错误日志比率基线,该基线包括各个web服务平均错误日志比率的正常值和波动范围。设企业网络中的web服务的序列为:
WS={ws0,ws1,ws2,ws3,ws4,ws5,......wsn}
则平均错误日志比率基线为:
其中,采样点个数l=learn_time/sample_time;
其中,BL是平均错误日志比率基线,是一个矩阵,每一个数据点aernl表示web服务n在采样点时刻l的平均错误日志比率,learn_time为学习周期,sample_time为采样点时长。
(2)性能检测阶段:根据基线建立阶段建立的各个web服务系统平均错误日志比率的正常值,判断当前web服务系统的平均错误日志比率是否异常,并根据当前的平均错误日志比率值,动态更新基线。
优选的,所述系统的web服务异常定位模块,其实现步骤如下:
(1)提取相关web日志元数据:根据检测阶段获得web服务系统wsi在某采样时间段出现了服务异常,从web日志元数据索引中获得web服务系统wsi在该采样时间段的所有web日志元数据;
(2)检索重复次数最多的日志:按照[访问主机,被访问主机,授权用户,服务状态]对元数据进行分组,获得重复次数最多的分组,即重复次数最多的日志。
(3)定位服务异常故障点:从重复次数最多的日志中提取服务状态的错误码即为服务异常类型,访问主机、被访问主机即为服务异常故障点。
本发明还提供一种多节点web服务异常检测方法,包括如下步骤:
对syslog协议或者日志文本读取,获取全网各节点web服务器日志元数据;
对不同种类web服务器的异构日志进行格式化,统一数据格式,采用ElasticSearch技术对web元数据进行索引;
周期性计算各个web服务器节点的错误日志比率,并构建错误日志比率的基线数据模型,当web服务的当前错误日志比率与该web服务的错误日志比率基线模型偏离较大时,确定为web服务异常;
通过web元数据索引检索异常web服务在故障时间点的所有日志元数据,检索日志严重等级最高且重复次数最多的日志为web服务异常事件内容。
具体实施方式
一种多节点web服务异常检测系统,包括:元数据采集模块、元数据索引模块、web服务异常检测模块和web服务异常定位模块,其中:
A、元数据采集模块对syslog协议或者日志文本读取,获取全网各节点web服务器日志元数据;
B、元数据索引模块:对不同种类web服务器的异构日志进行格式化,统一数据格式,采用ElasticSearch技术对元数据进行索引;
C、web服务异常检测模块:周期性计算各个web服务器节点的错误日志比率,同一web服务往往由多个web服务器节点共同完成,计算web服务的平均错误日志比率,并构建该比率的基线数据模型,当web服务的当前错误日志比率与该web服务的错误日志比率基线模型偏离较大时,确定为web服务异常;
D、web服务异常定位模块:通过web元数据索引检索异常web服务在故障时间点的所有日志元数据,检索日志严重等级最高且重复次数最多的日志为web服务异常事件内容。
优选的,在数据采集模块,采用两种方案采集web服务器日志,一是通过syslog协议采集,二是通过读取web服务器日志文件采集。
优选的,在元数据索引模块,其中对不同种类web服务器的异构日志进行格式化,具体步骤如下:
采用W3C扩展日志格式(ExLF),为了高性能传输元数据,元数据采用字节码方式。统一的web服务元数据格式设计如下表1:
优选的,在索引web日志元数据,对元数据序列按照时间以增量方式向索引库添加数据,建立索引采用分布式检索工具ElasticSearch完成。
优选的,web服务的平均错误日志比率计算过程为:
先计算某个web服务器节点的错误日志比率:
er=(服务器响应状态status为4XX和5XX的日志个数)/日志总数
设该支撑该web服务(webservice)的各个web服务器节点(webservernode)的错误日志比率为:
[er0,er1,er2,er,er4,er5,......ern}
则,该web服务的平均错误日志比率为:
优选的,所述系统的web服务异常检测模块,实现步骤如下:
(1)基线构建阶段:根据设定的学习周期(learn_time,默认为24小时)和采样点时长(sample_time,默认为5分钟),建立各个web服务的错误日志比率基线,该基线包括各个web服务平均错误日志比率的正常值和波动范围。设企业网络中的web服务的序列为:
WS={ws0,ws1,ws2,ws3,ws4,ws5,......wsn}
则平均错误日志比率基线为:
其中,采样点个数l=learn_time/sample_time;
其中,BL是平均错误日志比率基线,是一个矩阵,每一个数据点aerii表示web服务n在采样点时刻l的平均错误日志比率,learn_time为学习周期,sample_time为采样点时长。
(2)性能检测阶段:根据基线建立阶段建立的各个web服务系统平均错误日志比率的正常值,判断当前web服务系统的平均错误日志比率是否异常,并根据当前的平均错误日志比率值,动态更新基线。
优选的,所述系统的web服务异常定位模块,其实现步骤如下:
(1)提取相关web日志元数据:根据检测阶段获得web服务系统wsi在某采样时间段出现了服务异常,从web日志元数据索引中获得web服务系统wsi在该采样时间段的所有web日志元数据;
(2)检索重复次数最多的日志:按照[访问主机,被访问主机,授权用户,服务状态]对元数据进行分组,获得重复次数最多的分组,即重复次数最多的日志。
(3)定位服务异常故障点:从重复次数最多的日志中提取服务状态的错误码即为服务异常类型,访问主机、被访问主机即为服务异常故障点。
本发明还提供一种多节点web服务异常检测方法,包括如下步骤:
对syslog协议或者日志文本读取,获取全网各节点web服务器日志元数据;
对不同种类web服务器的异构日志进行格式化,统一数据格式,采用ElasticSearch技术对web元数据进行索引;
周期性计算各个web服务器节点的错误日志比率,并构建错误日志比率的基线数据模型,当web服务的当前错误日志比率与该web服务的错误日志比率基线模型偏离较大时,确定为web服务异常;
通过web元数据索引检索异常web服务在故障时间点的所有日志元数据,检索日志严重等级最高且重复次数最多的日志为web服务异常事件内容。
本发明的实施方式不限于此,在本发明上述基本技术思想前提下,按照本领域的普通技术知识和惯用手段对本发明内容所做出其它多种形式的修改、替换或变更,均落在本发明权利保护范围之内。