专利名称:基于MapReduce的网站运行状态监控与异常检测的制作方法
技术领域:
基于MapReduce的网站运行状态监控与异常检测属于通过对网站日志的挖掘处理改善网站服务性能的技术领域。
背景技术:
网站,因特网上ー块固定的面向全世界发布消息的地方,由域名(也就是网站地址)和网站空间构成,通常包括主页和其他具有超链接文件的页面。它的出现为现代社会带来了不可替代的作用,如宣传自我形象、提供丰富便捷的信息,为商业扩展业务渠道等等.为了让网站能够长期稳定地运行在Internet上,让使用者在瞬息万变的信息社会中抓住更多的网络商机,网站的维护与改善成为至关重要的环节。
网站的维护大多基于网站的访问日志,日志记录了所有用户的访问行为,可以有效地找出用户和网站的交互规律,从而对提高网站的关注度以及改善网站服务(包括改善链接的有效性和利用缓存提高网站访问速度等)都有重要的作用。传统的日志挖掘处理多采用机器学习(黎铭等,2004)及可视化结合人工处理的方法。尤其是最近机器学习研究領域的最新方法已经被用于日志数据挖掘,如基于反馈的主动学习(Georges et al, 2010)。由于反馈信息较难获得,这种方法通常应用于搜索引擎的个性化推荐系统。国内这方面也有较好的工作,如吉林大学的刘大有、杨博教授等利用机器学习方法识别到日志中的重复任务,进而节省运算时间(李嘉菲等,2007);福州大学的陈国龙教授利用机器学习和优化方法在日志文件中检测入侵,然而这些传统的方法没有利用并行机制,注定无法应用于访问量巨大的门户网站。而且互联网信息瞬息万变,传统分析所帯来的延时大大降低的网络信息的价值。在这样的情况下,提出ー种实时高效、准确的分析策略,就显得尤为重要。MapReduce是Google提出的ー种并行编程模型,用于大规模数据集(可以大于1TB)的并行运算。MapReduce通过把对数据集的大規模操作分发给网络上的每个节点实现可靠性和分布性,对于这些分布的数据分别分配任务进行处理,以达到并行化的处理效果,即使待处理数据飞速增长,只需要动态的増加集群的节点数目即可,而且节点不需要是具特殊功能的高性能机器,只需要普通的商用机即可。如何利用这种成本低廉的并行处理机制来对网站高效地处理分析,进而达到实时地监控网站的运行状态,检测异常行为,是本发明所要解决的关键问题。
发明内容
传统的日志分析方法无法解决访问量巨大的门户网站,而且即使能处理大量的日志,处理时间的延缓性会大大降低日志分析的潜在价值。而且面对非结构化的日志文件,采取何种分析策略,分析日志的哪些方面,对于网站的建设改善亦有至关重要的影响。针对这些问题,本发明采用MapReduce并行编程模型,从海量的日志文件中抓取最佳信息点,并采用有效的策略,高效、准确的捕捉出访问过程中的异常行为。
本发明的特征在于,它完成状态监控与异常检测,并依次采用以下步骤
I.状态监控
步骤(I. I):分析异常状态码,采用线性回归策略自动汇报异常情况 日志记录中的状态码能有效反应出网站的运行状态,常见的异常状态码有 3xx -重定向
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。常见301 (永久定向)、302 (临时定向)
4xx -客户端错误
发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有 效的身份验证信息。常见404 (未找到,不存在)
5xx -服务器错误
通过日志抽出每日这三类异常状态码,观察网站的运行状态,常见作用如
找出死链接
找出临时重定向(搜索引擎蜘蛛不喜欢临时重定向)对于404,需要检查这个文件是否存在,如果文件存在而返回了 404则可能是因为服务器不稳定因素造成,可能是服务器本身问题也可能是被攻击。如果文件本身就不存在而蜘蛛还会去爬那个不存在的页面,则是因为还有其他页面有链接到那个不存在的页面
步骤(I. 2):毎秒访问次数和流量统计,并计算当日平均毎秒访问次数和流量统,及排名前10的毎秒访问次数和流量
访问流量的汇报用于告诉预报是否有采集程序在大量抓取网站数据,这种行为会严重影响网站的服务性能,通过报告每日排名前10的毎秒访问次数和流量及平均指标,能直观的反应出是否有采集程序的出现步骤(I. 3):蜘蛛爬虫统计分析
蜘蛛的来访数量以及频率是网站健康程度与网站权重的指标之ー 统计搜索引擎蜘蛛的抓取频率主要作用在于
1.预测其关键词排名情况
如果以前蜘蛛每天要来成百上千次,那么这个时候你的网站是具备吸引力,往往关键词的表现也比较稳健,而当蜘蛛来访次数发生比较大减少时,说明你的网站发生了问题,可能是因为改版、或者遭受了惩罚等等原因,这个时候通过来访次数減少,你就应该有ー种预感,关键词排名要发生变动了。2.发现搜索引擎访问了哪些没必要的东西、图片,然后可以用robots.txt文件禁用,因为这样可以让蜘蛛更多的去访问有用的东西,从而让网站更多的被收录
步骤(I. 4):页面分区板块访问排名
统计各个板块的页面访问量,是分析网站内容、排版是否有吸引カ的最直接方式 说明以上状态监控各步骤均采用MapReduce并行模型
2.特征异常检测
步骤(2. I) =MapReduce模型并行统计出姆日访问量过万的IP,保存做进ー步的分析步骤(2. 2):对于符合步骤I的IP,检察其用户代理信息为空的几率,如果几率大于阈值Tl,则进入下ー步的分析步骤(2. 3):继续检察满足步骤1,2的IP,验证其请求资源类型的分布结构(HTML、XML、CSS、JS),如果请求HTML的几率大于阈值T2,进入下ー步分析
步骤(2. 4):对于满足步骤1,2,3的IP,采用MapReduce并行模型统计当前IP的访问频率,如果访问频率大于阈值T3,则当前IP被判定为异常采集程序
3.流量峰值检测 步骤(3. I):读取网站访问规则
正常网站的访问流量一般较为平稳,虽然也有峰值频发的情况,但都呈现出一定的规律性,如新闻网站的上午时间通常出现高峰,而周末的上午时间则流量小于工作日;足球直播网站的高峰通常出现在周末晚间;股票网站在工作日的9点至15点访问量较高。通过在进行日志分析设定此与类相关的经验规则,可有助于流量检测的精确性和可靠性。本程序通过指定天、星期、时等信息来指定已经发现的访问规律,如下表格所示
权利要求
1.基于MapReduce的网站运行状态监控与异常检测,其特征在于,该发明依次含有以下步骤 状态监控 分析异常状态码,采用线性回归策略自动汇报异常情况 日志记录中的状态码能有效反应出网站的运行状态,常见的异常状态码有 .3xx -重定向 客户端浏览器必须采取更多操作来实现请求; 例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求;常见301 (永久定向)、302 (临时定向) .4xx -客户端错误 发生错误,客户端似乎有问题; 例如,客户端请求不存在的页面,客户端未提供有 效的身份验证信息; 常见404 (未找到,不存在) . 5xx -服务器错误 通过日志抽出每日这三类异常状态码,观察网站的运行状态,常见作用如 找出死链接 找出临时重定向(搜索引擎蜘蛛不喜欢临时重定向)对于404,需要检查这个文件是否存在,如果文件存在而返回了 404则可能是因为服务器不稳定因素造成,可能是服务器本身问题也可能是被攻击; 如果文件本身就不存在而蜘蛛还会去爬那个不存在的页面,则是因为还有其他页面有链接到那个不存在的页面 毎秒访问次数和流量统计,并计算当日平均毎秒访问次数和流量统,及排名前10的每秒访问次数和流量 访问流量的汇报用于告诉预报是否有采集程序在大量抓取网站数据,这种行为会严重影响网站的服务性能,通过报告每日排名前10的毎秒访问次数和流量及平均指标,能直观的反应出是否有采集程序的出现蜘蛛爬虫统计分析 蜘蛛的来访数量以及频率是网站健康程度与网站权重的指标之ー 统计搜索引擎蜘蛛的抓取频率主要作用在于 . 1.预测其关键词排名情况 如果以前蜘蛛每天要来成百上千次,那么这个时候你的网站是具备吸引力,往往关键词的表现也比较稳健,而当蜘蛛来访次数发生比较大减少时,说明你的网站发生了问题,可能是因为改版、或者遭受了惩罚等等原因,这个时候通过来访次数減少,你就应该有ー种预感,关键词排名要发生变动了; .2.发现搜索引擎访问了哪些没必要的东西、图片,然后可以用robots.txt文件禁用,因为这样可以让蜘蛛更多的去访问有用的东西,从而让网站更多的被收录 页面分区板块访问排名统计各个板块的页面访问量,是分析网站内容、排版是否有吸引カ的最直接方式 说明以上状态监控各步骤均采用MapReduce并行模型 特征异常检测 MapReduce模型并行统计出姆日访问量过万的IP,保存做进ー步的分析对于符合步骤I的IP,检察其用户代理信息为空的几率,如果几率大于阈值Tl,则进入下ー步的分析 继续检察满足步骤1,2的1 ,验证其请求资源类型的分布结构(!^し乂1し033、几),如果请求HTML的几率大于阈值T2,进入下ー步分析 对于满足步骤1,2,3的IP,采用MapReduce并行模型统计当前IP的访问频率,如果访问频率大于阈值T3,则当前IP被判定为异常采集程序流量峰值检测 正常网站的访问流量一般较为平稳,虽然也有峰值频发的情况,但都呈现出一定的规 律性,如新闻网站的上午时间通常出现高峰,而周末的上午时间则流量小于工作日;足球直播网站的高峰通常出现在周末晚间;股票网站在工作日的9点至15点访问量较高; 通过在进行日志分析设定此与类相关的经验规则,可有助于流量检测的精确性和可靠性; 本程序通过指定天、星期、时等信息来指定已经发现的访问规律,如下表格所示~ [Sm I Jg始时间丨_结束时间pi^ALL _ALL_ 07:00:00 _ 09:00:00_#每天早上的用户访问高峰_ALL [6[21:00:00]23:00:00周六,该用户在周末两天有一档较为火热的节目,因此流量较高,平时有ー些球赛直播 在与日志文件相关联的同名规则文件中,可指定上述规则信息; 在上面表格的例I中,意即在每天早上的7:00至9:00时段,会出现ー些访问流量高峰; 当检测到这些高峰时,可默认为是正常流量访问; 而例2则表示每周六均会出现较高的流量高峰,因此设定这些合理规则可在搜索异常流量峰值访问时,提高程序的可靠性; 步骤(3. 2):获取流量整体偏差 通过观察,流量整体偏差直接可反映出访问流量的分布情况,访问情况均匀正常的流量表现为较低的偏差值,而异常频发的日志流量则表现为较高的偏差值,而整体偏差则反映着该网站的整体流量访问情况; 步骤(3. 3):搜索异常峰值访问点 通过设定窗ロ#和偏差系数A初始值,程序将以固定的窗ロ単位来检测时间区间内的峰值访问; 首先,程序会首先通过计算该时间区间的流量偏差Sへ与整体访问流量偏差S进行比较,如果f 则表明该窗ロ区间ff内存在着异常峰值; 然后通过连续向后不断检测该区间,直到找到最大的峰值点,判断该峰值点是否出现在先前定义的网站合理规则定义中,如果是则报告该峰值为正常,并提示匹配规则,否则报告异常流量峰值访问,以醒目红色状态提醒; 决策树学习访问规则 在流量峰值检测阶段,网站每次的访问流量将会通过异常峰值搜索算法标记出,这些异常峰值不仅会触发异常警报,提醒管理员注意当前流量状态,也会进ー步提供操作界面给管理员分析当前状态的真实情况; 步骤(4. 2):手动纠正异常流量 如果在当前的异常峰值属于正常,意即当前的访问规则中没有此类规则,属于误报情况,则会通过管理员在操作界面中的交互操作,提供进ー步的学习,以提高程序监控与检测的准确率; 步骤(4. 3):决策树学习访问规则 决策树学习通过把实例从根节点排列到某个叶子节点来分类实例,叶子节点即为实例所属的分类; 树上的每ー个节点说明了对实例的某个属性的测试,并且该节点的每ー个后继分支对 应于该属性的ー个可能值; 在这里,我们首先针对网站日志访问记录提取各个特征属性如下天、星期、时间、流量值、异常与否,同时应用能处理连续属性的C4. 5决策树学习算法,在其基础上,还加入増量学习的特性,使得学习过程不仅能完成网站访问规则的提取,同时还能满足网站日志访问流式记录的特点,在不丢失原有学习规则的基础上,加入新的数据,进行进ー步的学习;步骤(4. 4):更新网站访问规则 在完成决策树学习阶段后,系统会将这些学习到的新规则动态地更新到流量异常检测阶段中,从而提高异常检测的准确率。
全文摘要
本发明采用MapReduce并行编程模型,完成状态监控与异常检测,其从海量的日志文件中抓取最佳信息点,并采用有效的策略,高效、准确的捕捉出访问过程中的异常行为。本发明采取四种并行策略对网址日志进行分析处理,从而达到对网站运行状态的监控和异常访问检测。这四种策略分别是状态监控、特征异常检测、流量峰值检测、决策树学习访问规则。
文档编号H04L12/24GK102724059SQ20121009503
公开日2012年10月10日 申请日期2012年3月31日 优先权日2012年3月31日
发明者唐振坤, 林琛, 蒋文瑞, 邹权 申请人:常熟市支塘镇新盛技术咨询服务有限公司