专利名称::基于日志的智能自适应网络故障定位和分析方法
技术领域:
:本发明设计了基于Syslog(系统日志)的网络故障定位的分析模型和方法,主要研究如何对互联网网络设备(交换机、路由器、CMTS)的日志数据进行分析,及时、准确地定位网络质量劣化点,涉及到Syslog协议分析、网络管理以及数据挖掘等
技术领域:
。
背景技术:
:目前,从外部看,网络环境发生了巨大的变化,经历了由结构的单一到复杂、应用的单一到多样的发展过程,这就要求网络管理员在网络的协议层次结构上对系统管理重新认识,通过适当的策略实现集中式管理,实现事件的实时监控和快速响应的网络管理。但是,网络管理的对象主要由构成网络的硬件和软件组成,包括工作站、服务器、网卡、路由器、交换机等。通常情况下这些设备都分散在不同的地方,而且由于设备众多,要做到实时实地管理需要大量的人力、物力和财力,对网络设备进行远程管理以及对设备状态进行预警有一定困难。因此对于网络管理员来说,网络的运营维护、监测优化成为了一个富有挑战性的问题。从内部看,各类IT资源、设备飞速膨胀,设备本身产生的日志数量也呈指数级增长。其单独的日志分析结果对安全问题没有太大帮助,而海量日志的产生也使分析成为空想,导致日志只能简单丢弃。如何为不同的网络设备提供统一的事件管理分析平台,打破企业中不同网络设备存在的信息鸿沟,有效地实现全网的服务故障、安全预警、入侵行为的实时发现、入侵事件的动态响应,是摆在众多企业面前亟待解决的问题。当前的Syslog信息管理和分析机制严重不能适应主动防御网络的要求,主要表现在以下几点一、不具备针对网络设备的特点而对接收的Syslog信息进行特别的处理目前只能按IP地址和时间的不同来区分Syslog信息,不能按照优先级区分和存储Syslog信息。因此大量的普通信息淹没优先级高的信息,使维护人员不能及时发现网络设备的严重事件,延长了突发事件的响应时间。二、目前的日志审査方式大多以定期方式进行,这样做的缺点是不能及时的分析日志中的信息,尤其在网络故障诊断时,定期审査的方式显得尤为不足。由上可以看出,采用传统的Syslog信息分析方法很难满足网络管理的需求。因此,必须另辟蹊径。
发明内容技术问题本发明的目的是建立基于日志的智能自适应网络故障定位和分析方法,将海量日志数据按照优先级进行存储和深度挖掘,从多个维度分析基于Syslog的日志信息,及时发现网络劣化点,并能动态实时地进行告警。技术方案:本发明基于日志的智能自适应网络故障定位和分析方法运用多维日志分析方法对日志数据进行统计,采用了哈希表和链表的结构来存储数据,该方法步骤为步骤1.统计周期内网络设备日志信息的每个优先级别的事件总数将周期内的所有发生事件累加,步骤2.统计事件类型的事件次数最大的N位这部分采用16位长度的数组作为哈希表,通过将事件类型进行哈希函数运算以后快速定位到相应的链表进行査找,链表中的结点分别保存日志信息的设备地址,源地址,目的地址,事件类型,事件次数;当査找到有相同五元组的结点以后,将事件次数进行累加,若没有査找到相同的结点,则新建一个结点插入链表中;对事件次数排序,存入记录事件类型的事件总数排名前N位的表,步骤3.统计按源地址分类的事件次数最大的N位这部分依然采用16位长度的数组作为哈希表,通过将源地址进行哈希函数运算以后快速定位到相应的链表进行査找,链表中的结点保存日志信息的源地址、事件次数;当查找到有相同源地址的结点以后,将事件次数进行累加,若没有查找到相同结点,则新建一个结点插入链表中;对事件次数排序,存入记录源地址的事件总数排名前N位的表,步骤4.统计按目的地址分类的事件总数最大的N位这部分依然采用16位长度的数组作为哈希表,通过将目的地址进行哈希函数运算以后快速定位到相应的链表进行査找,链表中的结点保存日志信息的目的地址、事件总数;当査找到有相同目的地址的结点以后,将事件次数进行累加,若没有査找到相同结点,则新建一个结点插入链表中;对事件次数进行排序,存入记录目的地址的事件总数排名前N位的表,步骤5.统计按端口号分类的事件总数最大的N位这部分依然采用16位长的数组作为哈希表,链表中的结点用来保存端口号、事件次数;对事件次数进行排序,存入记录端口号的事件总数排名前N位的表,结束。我们每种数据格式统计事件排名的前N位。管理员能够实时了解到各种统计数据中占比重较大的数据有哪些,有助于发现一些异常情况。有益效果通过基于日志的智能自适应网络故障定位和分析方法,我们能够解决以下问题(1)快速定位故障,保障网络可靠运行日志信息分级别呈现,通过预设设备的报警状态值预警,可以帮助管理员及时方便地发现运行异常问题。(2)加强网络安全等级,提高网络安全系数可以根据日志数据提供的混合型病毒和蠕虫攻击的行为特征,确定网络攻击源,能对恶意代码入侵提供信息线索,从而实施预防或快速补救措施。(3)动态添加"策略",及时发现未知异常根据以往的行为进行自动学习,并对未知事件进行异常检测,可以帮助管理员发现潜在危险。图l是基于Syslog的网络故障定位和分析的技术框架图。图中给出了日志数据处理的流程和接口。图2数据挖掘模型。图中给出了数据挖掘在日志信息检测中的应用。图3哈希表的结构。图中给出了哈希表在多维日志统计分析方法中的应用。具体实施方式本发明提出了一个基于Syslog的网络故障定位和分析的技术框架,如图l所示。从图l中可以看出,系统分为四个层次,从下往上依次是-令数据采集层主要负责搜集网络设备中的各种类型的日志,包括Syslog,交换机和路由器日志,Web服务器日志等等。今数据存储层这部分主要负责将采集到的不同类型的日志进行整合,转换成统一的事件格式存储并进行日志预处理。令业务逻辑层主要是利用数据挖掘中的关联分析的方法对转换后的日志消息分析,提炼出有意义的关联规则,帮助管理员了解网络的状况。令表示层主要用于系统的配置和结果的反馈。本文的关键在于数据存储层的日志预处理和业务逻辑层,这里对其实现方法进行详细说明。1.日志预处理我们将日志信息按优先级别进行划分和存储,下面就此进行讨论分析网络设备发送过来的SysLog日志数据格式,将各项信息提取出来,将设备的日志信息转换为统一的日志事件格式,从而非常方便的支持任意类型设备的事件规格化。Syslog格式是由RFC3164(TheBSDsyslogProtocol)定义的,并对消息头部进行扩展,是设备产生的基于事件的日志。其格式为<优先级>时间戳主机名模块名/级别/信息摘要:内容<priority>timestampsysnamemodule/level/digest:content■优先级PRI:PriorityValue,优先级。PRI中用二进制数的低三位表示SeverityCode,高l立表示Facility,PRI=Facilityx8十Severity得到xyz。例如<138>为17乂8+2,即表示其Facility为17,Severity为2。具体的Facility禾BSeverity的含义如表l.l和表1.2所示。<table>tableseeoriginaldocumentpage6</column></row><table><table>tableseeoriginaldocumentpage7</column></row><table>因此,将网络设备的日志信息划分为八大级别,如表1.3所示,并在数据库中进行分别存储。日志级别曰志级别描述系统状态0<table>tableseeoriginaldocumentpage8</table表1.3网络设备日志信息级别2.业务逻辑层在业务逻辑层,将数据挖掘运用到日志信息检测中,如图2所示。包括两方面的内容基于时间序列的增量聚类分析和多维日志统计分析。■基于时间序列的增量聚类分析基于时间序列的增量聚类分析主要考虑的是日志信息中关键事件类型的获取即"策略"的获得。"策略"包含了管理员对于一些异常事件的定义和系统运行所需要的参数。聚类分析结果又能够对"策略"库进行补充,这样能够使得系统能够适应环境的变化。具体方法如下1)选择一个固定的统计时间(5分钟,2小时或6小时)作为标准,把一段时间内的日志数据按此标准进行时间域划分,同时把第一个时间域的日志数据分配到第一个类里。2)对于目前的时间域认为是检测阶段,之前的所有时间域认为是比较阶段。对于检测阶段的日志数据,把它分配到比较阶段的某个类或者一个新类中。该分配是基于一些标准的。例如新日志数据到目前类的重心的距离。在这种情况下,每次添加一个时间域内的日志数据到目前的类中,需要重新计算重心的值。在分析中,如果出现新的类别,则发出警告。当检测阶段的数据特征与比较阶段的数据特征距离相差超过一个限定值时则认为新的类别产生。管理员在此基础上添加"策略"。■多维日志统计分析主要从以下几个方面对日志信息进行统计分析①计算周期内网络设备的每个优先级别的事件总数;②事件类型的事件总数最大的N位;③按源地址分类的事件总数最大的N位;④按目的地址分类的事件总数最大的N位;按端口号(应用)分类的流量值最大的N位。为了能够快速进行统计,主要采用了哈希表和链表的结构来存储数据。根据统计的类别不同,具体的哈希表的大小和哈希算法会有所不同。主要结构如图3所示。根据本方法开发出的基于日志的智能自适应网络故障定位和分析方法在广电城域网上得到了具体验证。系统硬件主要由日志数据库服务器、日志管理服务器、日志管理查询终端三部分组成。考虑到数据备份问题,配置两台高性能数据库服务器作双机热备,同时配置一台日志管理服务器作为核心的日志接收和处理设备。系统的数据库服务器和日志管理服务器部署在网络传输部,日志管理査询终端则可以分布在不同的分支部门供其使用。数据库服务器为整个系统的核心实体,用于存放所有的原始日志和提炼后的日志信息及其相关系统信息。日志管理服务器接收来自各个设备的日志信息,经过过滤、解析、提取、清洗、挖掘之后,将关键的日志信息呈现在界面上,并触发告警判断机制进行实时告警。同时将信息存储入数据库中。该方法步骤为步骤1.统计周期内网络设备日志信息的每个优先级别的事件总数将周期内的所有发生事件累加,步骤2.统计事件类型的事件次数最大的N位这部分采用16位长度的数组作为哈希表,通过将事件类型进行哈希函数运算以后快速定位到相应的链表进行査找,链表中的结点分别保存日志信息的设备地址,源地址,目的地址,事件类型,事件次数;当査找到有相同五元组的结点以后,将事件次数进行累加,若没有査找到相同的结点,则新建一个结点插入链表中;对事件次数排序,存入记录事件类型的事件总数排名前N位的表,步骤3.统计按源地址分类的事件次数最大的N位这部分依然采用16位长度的数组作为哈希表,通过将源地址进行哈希函数运算以后快速定位到相应的链表进行査找,链表中的结点保存日志信息的源地址、事件次数;当查找到有相同源地址的结点以后,将事件次数进行累加,若没有査找到相同结点,则新建一个结点插入链表中;对事件次数排序,存入记录源地址的事件总数排名前N位的表,步骤4.统计按目的地址分类的事件总数最大的N位这部分依然采用16位长度的数组作为哈希表,通过将目的地址进行哈希函数运算以后快速定位到相应的链表进行査找,链表中的结点保存日志信息的目的地址、事件总数;当査找到有相同目的地址的结点以后,将事件次数进行累加,若没有查找到相同结点,则新建一个结点插入链表中;对事件次数进行排序,存入记录目的地址的事件总数排名前N位的表,步骤5.统计按端口号分类的事件总数最大的N位这部分依然采用16位长的数组作为哈希表,链表中的结点用来保存端口号、事件次数;对事件次数进行排序,存入记录端口号的事件总数排名前N位的表,结束。权利要求1.一种基于日志的智能自适应网络故障定位和分析方法,其特征在于运用多维日志分析方法对日志数据进行统计,采用哈希表和链表的结构来存储数据,该方法步骤为步骤1.统计周期内网络设备日志信息的每个优先级别的事件总数将周期内的所有发生事件累加,步骤2.统计事件类型的事件次数最大的N位这部分采用16位长度的数组作为哈希表,通过将事件类型进行哈希函数运算以后快速定位到相应的链表进行查找,链表中的结点分别保存日志信息的设备地址,源地址,目的地址,事件类型,事件次数;当查找到有相同五元组的结点以后,将事件次数进行累加,若没有查找到相同的结点,则新建一个结点插入链表中;对事件次数排序,存入记录事件类型的事件总数排名前N位的表,步骤3.统计按源地址分类的事件次数最大的N位这部分依然采用16位长度的数组作为哈希表,通过将源地址进行哈希函数运算以后快速定位到相应的链表进行查找,链表中的结点保存日志信息的源地址、事件次数;当查找到有相同源地址的结点以后,将事件次数进行累加,若没有查找到相同结点,则新建一个结点插入链表中;对事件次数排序,存入记录源地址的事件总数排名前N位的表,步骤4.统计按目的地址分类的事件总数最大的N位这部分依然采用16位长度的数组作为哈希表,通过将目的地址进行哈希函数运算以后快速定位到相应的链表进行查找,链表中的结点保存日志信息的目的地址、事件总数;当查找到有相同目的地址的结点以后,将事件次数进行累加,若没有查找到相同结点,则新建一个结点插入链表中;对事件次数进行排序,存入记录目的地址的事件总数排名前N位的表,步骤5.统计按端口号分类的事件总数最大的N位这部分依然采用16位长的数组作为哈希表,链表中的结点用来保存端口号、事件次数;对事件次数进行排序,存入记录端口号的事件总数排名前N位的表,结束。全文摘要基于日志的智能自适应网络故障定位和分析方法主要由基于优先级的日志预处理方法、基于时间序列的日志事件聚类分析方法和多维日志统计分析方法组成。海量日志信息首先按照优先级别进行分类存储,然后再根据基于时间序列的日志事件聚类分析方法筛选出关键的事件类型即“策略”的获取,随后再运用多维日志统计分析方法将关键的日志信息呈现在界面上,并触发告警判断机制进行实时告警。该方法具有良好的可扩展性和准确性,且易于与运营商相关的应用接口对接。文档编号H04L29/06GK101325520SQ20081012419公开日2008年12月17日申请日期2008年6月17日优先权日2008年6月17日发明者张顺颐,甜李,攀王申请人:南京邮电大学