CN102098175B - 一种移动互联网告警关联规则获取方法 - Google Patents

一种移动互联网告警关联规则获取方法 Download PDF

Info

Publication number
CN102098175B
CN102098175B CN201110028473.9A CN201110028473A CN102098175B CN 102098175 B CN102098175 B CN 102098175B CN 201110028473 A CN201110028473 A CN 201110028473A CN 102098175 B CN102098175 B CN 102098175B
Authority
CN
China
Prior art keywords
alarm
data
rule
item
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110028473.9A
Other languages
English (en)
Other versions
CN102098175A (zh
Inventor
李洋
苗再良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Communication Information System Co Ltd
Original Assignee
Inspur Communication Information System Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Communication Information System Co Ltd filed Critical Inspur Communication Information System Co Ltd
Priority to CN201110028473.9A priority Critical patent/CN102098175B/zh
Publication of CN102098175A publication Critical patent/CN102098175A/zh
Application granted granted Critical
Publication of CN102098175B publication Critical patent/CN102098175B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种移动互联网告警关联规则获取方法,系统由告警数据的获取、数据的预处理、参数的设定、告警关联规则获取算法、关联规则的表述与解释五部分组成。首先对通信告警数据进行数据集成、数据选取、数据清洗和数据变换;其次,设定告警时间窗和告警滑动步长,将预处理后的关系型数据转换为事务型数据,便于告警关联规则获取;接下来设置支持度和置信度参数,调用基于全项集的告警关联规则获取算法,根据所设定的参数,对告警数据进行关联规则获取工作,最后对获得的告警关联规则进行表述与解释。基于本发明的告警关联规则获取方法,可在不需要专家和运维人员的参与下实现移动互联网的告警关联分析工作,而且能够在较低的运营成本情况下,成倍地提高处理效率,该方法不依赖于通信网络的拓扑结构,可以适应复杂多变、异构的电信网络,自动发现告警关联规则,特别适合于移动互联网的告警监控,具有广泛的应用前景和良好的实用价值。

Description

一种移动互联网告警关联规则获取方法
技术领域
本发明涉及一种通信网络监控领域或计算机应用技术领域,具体地说是一种移动互联网告警关联规则获取方法,。
背景技术
网络运行安全和信息安全已经成为宽带移动互联网最重大的问题之一。随着移动通信网络的宽带化、IP化,以及规模和复杂程度的不断增加,网络中往往包含由众多厂商生产的成千上万的设备和业务系统,这些设备和系统又通过多种媒质互连而成,彼此之间普遍存在着复杂的关联关系,形成以各种复杂模式互联的网络群。这些网络群中每天都会产生大量的告警信息,给实时网络监控和故障管理带来了很多困难。由于故障具有传播性,单个故障会产生大量的网络告警,在多个故障同时发生时,情况变得更加复杂。众多的告警既增加了网管系统的开销,也掩盖了表示故障的根源告警,非常不利于网管人员排查故障。由于用户对于网络性能和网络提供增值服的要求越来越高,因此,有效的进行网络告警的关联分析,确定根源故障是网络系统正常运行的基本保证。
告警关联是一种重要的告警信息处理技术,网管人员可以从中定位真正导致网络运行异常的原因。传统告警关联的方法包括以网络模型为基础的告警关联规则生成方法和以经验为主导的手工生成方法。这些方法不易发现告警之间的隐含关系。而网络告警数据库中存储了大量历史告警信息,其中蕴含了许多反映网络运行规律的有用信息。本发明提出的移动互联网告警关联规则获取方法能够从大量的告警中找出隐含在其中的关联关系,从中提取频繁出现的告警序列模式,从而获得告警关联规则。通过对告警进行关联,将多个告警合并成一条具有多信息量的告警来进行告警压缩,协助网管人员分析故障信息、快速定位故障,是对告警进行故障定位的有效途径。
发明内容
本发明的目的是提供一种移动互联网告警关联规则获取方法。
本发明的目的是按以下方式实现的,步骤如下:
1)对移动互联网告警数据进行数据集成、数据选取、数据预处理和数据变换,通过对数据的处理以提高关联规则获取速度、保证关联规则获取的效率、准确度以及最终模式的有效性;
2)设定告警时间窗和滑动步长,通过告警时间窗将复杂的通信告警序列数据库划分为事务数据库的模式,便于关联规则获取工作;通过滑动步长能够最大程度地保证在一个告警时间窗内存在一个完整的告警系列,这样能够使得获取结果更加精确;
3)基于全项集的关联规则获取算法,将设定的告警事务数据中的每一个事务展开为非空子集,并且按照编码规则进行编码,根据编码生成一个频繁模式树,频繁模式树中的每一个节点,都是代表告警类型,对频繁模式树的每一个分支,进行从叶子节点到根节点的遍历,根据设定的支持度得到告警频繁项集,根据设定的置信度扫获得告警关联规则;
4)对获取到的告警关联规则进行归纳整理,避免规则之间存在问题,并对规则进行解释,提供给用户根据详细的信息,便于用户进行操作,根据用户的需要,对获取到的规则执行修改操作。
本发明的优异效果是:对于采集到的告警数据,进行了数据预处理,提取关联规则获取需要的字段,设定了告警滑动时间窗和滑动步长,将关系型的告警数据表示成适合关联规则获取的事务型数据的形式。提出了基于全项集的频繁模式增长算法,在该算法中将每一个告警事务数据集按照全项集展开并按照设定的规则进行编码,根据编码生成一棵先序频繁模式树,对这棵树从每一个分支的叶子节点到根节点进行遍历,获取告警中的频繁项集,进而获取到告警之间的关联规则,相比于传统的Apriori算法,该方法避免了频繁读取事务数据库,只要读取两遍事务数据库,其它的操作是在内存中完成,因此大大地提升了算法的运行效率,节省时间开销;相对于传统的FP-Growth算法,该方法不需要生成项头列表和条件模式树、条件模式基,并且减少了生成节点链的复杂操作,降低了算法的复杂程度,便于实施和维护,最后对得到的规则进行表述和解释,构造一个完整的移动通信告警关联规则获取引擎。非常适用于移动互联网的告警关联规则获取工作。
1)对移动互联网告警数据进行数据集成、数据选取、数据预处理和数据变换,通过对数据的处理以提高关联规则获取速度、保证关联规则获取的效率、准确度以及最终模式的有效性;
2)设定告警时间窗和滑动步长,通过告警时间窗将复杂的通信告警序列数据库划分为事务数据库的模式,便于关联规则获取工作;通过滑动步长能够最大程度地保证在一个告警时间窗内存在一个完整的告警系列,这样能够使得获取结果更加精确;
3)基于全项集的关联规则获取算法,将设定的告警事务数据中的每一个事务展开为非空子集,并且按照编码规则进行编码,根据编码生成一个频繁模式树,频繁模式树中的每一个节点,都是代表告警类型,对频繁模式树的每一个分支,进行从叶子节点到根节点的遍历,根据设定的支持度得到告警频繁项集,根据设定的置信度扫获得告警关联规则;
4)对获取到的告警关联规则进行归纳整理,避免规则之间存在问题,并对规则进行解释,提供给用户根据详细的信息,便于用户进行操作,根据用户的需要,对获取到的规则执行修改操作。
附图说明
图1是联网告警关联规则获取方法工作原理示意图;
图2是移动互联网告警关联规则获取方法工作流程图;
图3是滑动时间窗设置示意图;
图4是基于全项集的频繁模式增长算法流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
本发明的移动互联网告警关联规则获取方法,基本工作原理如下,如图1所示。
本发明的系统能够在不关联告警网元资源的条件下,获取到移动互联网告警关联规则。
系统是由告警数据获取模块、告警数据处理模块、参数设置模块、算法模块、结果处理模块五部分组成,系统在获取到告警数据以后,对告警数据进行合并,根据挖掘工作的需要,从中选取出我们感兴趣的数据,通过数据的处理,进行关联规则提取工作,最后将获取到的结果进行表述和解释,具体工作流程如图2所示。
(1)告警数据获取
①基于告警信息存储数据库;
②构建数据表:活动告警表,历史告警表,告警编号表;
③活动告警和历史告警:告警在没有清除以前是活动告警,需要入到活动告警表中。告警清除以后被清除的告警需要入到历史告警表里面。一条告警同一时刻的状态是唯一的。要么是活动告警,要么是历史告警,但是肯定是先活动后经处理之后清除,活动告警在清除了以后,需要从活动告警表中移植到历史告警表中,清除时每个厂家的告警都有自己的清除规则。活动告警表和历史告警表里面的告警加起来是全部完整的告警。因此告警关联规则获取应该将两个表中的数据合在一起,作为最终的待处理数据;
④告警标题编号:为每个告警标题加上一个编号;
⑤告警关联规则获取用到的存储字段:设备厂家,网元名,告警对象,告警的发生时间,告警标题,告警标题编号。
(2)数据处理
数据处理是告警关联规则获取中的一个重要步骤,数据准备是否做好将直接影响到规则获取的效率、准确度以及最终结果的有效性。这个阶段又可以进一步分成几个子步骤:数据集成、数据选取、数据预处理和数据变换。
①数据集成:数据集成是将多文件或多数据库运行环境中的数据进行合并处理。
②数据选取:从告警数据库中将不同网元发送的告警进行统一格式处理
③数据清洗:通常包括去噪声、缺值数据处理、消除重复记录等操作。包括删除告警数据中由于各种原因引起的无法识别的数据,或者在重要关键告警信息上缺失的数据。
④数据变换:将目标数据处理成便于规则获取的形式。数据变换的一个重要的步骤就是为每个告警标题加上告警编号,形成一个告警编号表,将告警标题和告警编号的一一对应。这样使得在规则获取过程中更加容易处理,并且速度快。
(3)参数设置
告警时间窗及滑动步长
由于移动互联网设备的告警是不间断的实时发生的,很难确定一个完整的告警序列的开始时间和结束时间,如果随意的获取,很可能将本来是一个完整的告警序列拆分成部分,因此告警的连续性为告警关联规则获取工作带来了很多困难。为了使数据能够适合关联规则获取工作的需要,以时间窗的方式划分告警数据,这种转换机制需要用户预先设定好时间窗口大小以及滑动步长。并且保证每一个告警时间窗和其前面的时间窗和后面的时间窗互有重叠,在最大程度上保证时间窗中取得完整的告警序列数据,这样可以将告警关系型数据转换为告警事务型数据,其工作原理如图3所示。
告警时间窗和滑动步长的具体的设置方法为:
首先读入数据库中的告警数据,获得第一条告警发生时间,作为窗口开始时间,由开始时间加上窗口大小得到窗口终止时间。逐次将接下来的告警数据读入,时间不晚于终止时间的告警都为一个事务保存下来。一旦有一条告警的开始时间晚于终止时间,则由刚才的开始时间加上滑动步长得到新的开始时间,再加上窗口大小得到新的终止时间,然后将读取告警的指针移动到与新的开始时间最接近的记录开始读入,重复上述过程。这样,就可以把预处理表中的关系型数据转化为事务型数据。若干条告警对应一个事务。这里需要注意的是,告警滑动步长的设置不能大于告警时间窗口宽度的一半。
支持度和置信度:
在关联规则的获取过程中,需要设置两个重要的参数:支持度阈值与置信度阈值。支持度阈值用来生成告警频繁项集,置信度阈值用来生成告警关联规则。支持度阈值对关联规则结果集和算法运行时间影响都很大,而置信度阈值则对算法的运行时间没有太大的影响。如果支持度阈值太低,规则中偶尔发生的关联规则也会包含到最终输出的规则集当中,如果置信度阈值过低会同样会导致一些无意义的关联规则出现在结果规则集中。较低的阈值意味着较多的关联规则以及较长的规则发现时间;如果阈值过高则会导致丢失一些潜在有意义的关联规则。
给定了以上参数之后,挖掘算法最终输出满足给定条件的关联规则集。由于参数的选择对挖掘结果影响极大,因此需要在实际工作中选择合适的参数,尽量在不耗费过多的算法运行时间的前提下找出所有意义的关联规则模式。
(4)告警关联规则获取算法
提出了基于全项集的频繁模式增长算法。该算法的具体描述如下:
①读入告警事务数据库,生成一阶频繁项集,并将一阶频繁项集按照支持数进行排序;
②再次读入事务数据库,按照频繁一项集,扫描每一条事务,如果事务中的某项不在频繁一项集中,则删除该项,然后按照频繁一项集的顺序对每一条事务排序;
③对每一条事务产生全项集,对全项集的每一个项集进行扫描,将当前项集与前面所有项集进行比较,如果当前项集中的前i个项与前面某项集的前i个项相同,则标记为false,其余标记为true。其流程如图4所示。
⑤生成全项集的编码规则:
将全项集的每一条项集插入到树中,事务中的第一个节点插入到根节点下,后面的每一个项作为前一项的子节点。扫描频繁模式树,如果当前节点下的孩子节点中,没有包含当前项的节点,则建立此节点,已经有包含当前项的节点,检查项集中该项下面的标记,如果为true则节点支持数加1,否则不加1。
(5)结果的表述和解释
主要对获取到的关联规则进行解释、评估等。告警关联规则获取阶段发现的告警关联规则,可能存在冗余模式或无用规则,将其剔除;对一些近似的规则,为了便于用户理解、使用,对其进行归纳整理,合并为具有更高信息量的模式;对发现的规则进行一致性检查,避免发现的规则之间存在矛盾,根据用户的需要,也可以对获取到的规则执行修改等操作。
本发明的主要创新点
针对通信告警数据库的特点,提出了一种基于全项集的频繁模式增长算法,该算法将告警事务数据库中的项集生成非空子项集,并且对子项集进行扫描,按照设定的规则对子项集进行标记,根据标记的编码生成一个包含所有告警项的频繁模式树。对于告警关联规则的获取就是遍历所建立的频繁模式树。
在对告警关联规则的获取过程中,相对于传统的频繁模式增长算法,本算法不需要生成项头列表和链接频繁模式树中相同节点的节点链,只要生成一个先序频繁模式树,就能够完成告警频繁项集的获取工作。这样就避免了生成项头链表和频繁模式树中不同位置上相同节点所需要指针链接的复杂操作,降低了算法实现过程中的复杂度。并且在对频繁模式树的遍历过程中,不需要生成条件模式基和条件模式子树。所有的频繁项集的获取工作只是从频繁模式树中每一个分支的叶子节点向根节点的遍历过程。极大地简化了关联规则获取的时间和空间复杂度。非常适用于告警种类繁多且频繁出现的移动互联网告警数据库的关联规则获取工作。
实用效果
基于本发明的通信告警关联规则获取引擎,在不依赖于通信网络模型的情况下,能够自动的提取告警中存在的关联规则,特别适合于异构的、复杂多变的大型电信网络系统。本发明能够将多个告警事件归结成较少的告警事件,过滤掉无意义的告警事件,有效的减少对网络和业务运行的人工干预,辅助网络管理人员删除衍生的冗余告警,确保网络正常、可靠的运行。将基于经验的运维转变成自动化智能化的运维,因此本发明具有广泛的应用前景和良好的实用价值。
实施例
本发明采用C++语言实现,能够运行在Windows、Unix、Linux等各种平台,算法在多种C++编译器下运行通过,在有着很强的可移植性和通用性,适合于各种移动互联网环境,下面给出实现过程中的函数和类的定义等文件说明和代码说明。
1告警数据的读取说明:
时间窗口告警数据的读取在函数GetWinData中实现,在main中被调用int GetWinData(CElement*lstdb,iht&winnum,int&m_itvl,int&m_wintime);
函数GetWinData得到所有的存在告警数据的时间窗,并将其存放在lstdb中返回,winnum是时间窗口的个数,m_itvl是滑动步长,m_wintime是时间窗的大小。
读取告警数据库的步骤:
①定义宿主变量
exec sql begin declare section;exec sql end declare section;
夹在两个语句中间
②连接数据库
//连接数据库
EXEC SQL database alarm;
EXEC SQL SET LOCK MODE TO WAIT;
③SQL语句读入字符串
sprintf(strsql,″SELECT int_id FROM alarm_dm WHERE alarm_node=’JNB1’and occur_time betweenextend(’2008-10-13 00:00:00’,year to second)+interval(%d)minute(9)to minute andextend(’2008-10-13 00:00:00’,year to second)+interval(%d)minute to minute+interval(%d)minute(9)to minute″,move_minute,wintime,move_minute);
④prepare语句
EXEC SQL PREPARE get_data FROM:strsql;
⑤定义游标
EXEC SQL DECLARE cur_get_data CURSOR FOR get_data;
⑥打开游标
EXEC SQL OPEN cur_get_data;
⑦读入数据
        while(1)
        {
            EXEC SQL FETCH cur_get_data INTO:t_title;
}
⑧关闭游标释放游标资源
EXEC SQL CLOSE cur_get_data;
EXEC SQL FREE cur_get_data;
⑨关闭数据库
EXEC SQL close database;
2关联规则获取算法实现说明:
(1)文件说明
  头文件   说明
  Childnode.h   声明Childnode类
  fp.h   声明全局变量和方法
  FPnode.h   声明FPnode类
  FPtree.h   声明FPtree类
  FreItemset.h   声明FreItemset类
  FrePat.h   声明FrePat类
  HeadList.h   声明HeadList类(*)
  Headnode.h   声明Headnode类(*)
  ItemSet.h   声明ItemSet类
(2)代码说明
-全局变量说明-
全局变量:
typedef int ItemType;                    //项类型
typedef int item;                        //项类型
(*)typedef class Headnode Hnodelnk;      //项头节点指针类型
typedef vector<item>CElement;        //为了匹配读取informix数据库的接口而定义的项集类型
typedef class ItemSet Trans;                 //事务类型
typedef class Childnode*Childlink;       //指向频繁模式树孩子节点的指针
typedef class Headnode*Hnodelnk;         //项头链表指针
typedef class FPnode *FPTreenode;        //指向频繁模式树节点的指针
const int sup=3;                        //支持数
const int SIZE=940;                 //某些项集的最大长度
const int MAX_WIN_NUM=10000;        //最大窗口数量
const int MONTH=3;                  //挖掘时间
const int DMTIME=MONTH*30*24*60;    //挖掘时长
struct Result                             //挖掘结果
{
    FreItemset *ResultSet;
    Result*next;
};
struct ResultList                        //挖掘结果链表
{
    Result*head;
    Result*tail;
    Result*current;
};
struct FrePatList                                  //频繁项集链表
{
    FrePat*head;
    FrePat*current;
    FrePat*tail;
};
-公共方法说明-
int str_tec(char*str);                                //相应用于对alarm_node需求
int GetAlarm_node();                            //得到所有Alarm_node
void SortTran(Trans&t,FreItemset&set1);//对事务t按照一阶频繁项集的顺序剪枝并排序
void InsTranstoIset(CElement&itemset,FreItemset&FreItemset_1);
                                                  //将事务t1插入一阶频繁项集
void InsTranstoTree(Trans&t,FPtree&tree);              //将事务t1插入到树中。
void FPTreeillu(FPTreenode&node);                   //用于将树展示给设计者
void All_tranGen(Trans&t,FPtree&FPTree);//对于事务t产生其全项集并插入到FPTree当中
bool equal(Trans t1,Trans t2);                               //判断两个事务是否相同
bool equalfre(FreItemset set1,FreItemset set2);          //判断两个结果项集是否相同
void ResultClear(ResultList&list);                        //清楚结果链表中重复的项集
void FrePatMining(FPTreenode node,ResultList&list);      //将树中的频繁项集挖掘出来
void getdata_1set(FreItemset&fp_1,int_wintime,int_itvl,char*str);
                                  //扫描数据库并产生一介频繁项集
void getdata_FP(FreItemset&fp_1,Trans&tran,FPtree&tree,int_wintime,int_itvl,char*str);
                                                     //扫描数据库并产生FP树
int GetWinData(CElement&itemset,int&move_time,const int m_wintime,const int m_itvl,char*
str);                                  //扫描数据库的一条事务并返回当前事务
void ResultClear(ResultList&list,ResultList&list2);         //清楚结果链表中重复的项集
void Resillu(ResultList&list,FrePatList&list2);         //将结果项集按照正确的格式输出
bool HavOrNot(FreItemset set,ResultList&list);      //判断结果集list当中是否包含项集set
bool HavOrNot_fp(FrePat fp,FrePatList&list);//判断频繁模式链表中是否包含了频繁模式fp
bool equalfp(FrePat fp1,FrePat fp2);                //判断频繁模式fp1和fp2是否相同
-类说明-
类名:ItemSet
说明:产生项集的对象。
对象:用于生成的对象有事务、清理之后的事务
成员:
私有:
int lenth;                         //项集长度
ItemType item[100];            //项
bool isadd[100];                   //是否加一的标志
公有:
    ItemSet();                     //构造函数
    virtual~ItemSet();                //析构函数
    void Insert(ItemType e);               //插入项e
    bool Del(int i);                   //删除第i个位置上的元素并将项集前移一位
    bool IsIn(ItemType e);             //判断e是否在项集中
    bool IsLarger(ItemType a,ItemType b); //判断a是否大于等于b
    ItemType illu(int i);                  //返回i位置的项
    void ChangeItem(int i,int j);         //对调两个位置上面的项
    int Size();                        //返回项集的长度
    void DelAll();                    //删除项集中的所有元素
    bool reisadd(int i);                    //返回isadd[i]
    bool falseisadd(int i);            //更改isadd[i]为false
--------------------------------
(*)类名:HeadNode
说明:项头列表中的每一个节点的对象
对象:用于生成项头列表的每一项
成员:
私有:
ItemType item;                        //项目
int count;                            //频繁度计数
FPnode*link;                          //指向树节点的指针表
int lnklenth;                         //连接表当前长度
Hnodelnk*next;                      //指向下一个节点的指针
公有:
Headnode();                          //无参数构造函数
Headnode(ItemType e,int num);         //构造函数
virtual~Headnode();                //析构函数
        ItemType Item();                  //返回当前节点的item值
        Hnodelnk renext();                 //返回当前节点的next指针
        void chnext(Hnodelnk lnk);         //更改当前节点的下一节点的指针
        bool IsFull();                     //判断连接表是否已满
        bool addl ink(FPTreenode node);   //在节点链接表尾加入一个新的链接
--------------------------------------
(*)类名:HeadList
说明:产生项头列表的对象
对象:用于生成项头列表
成员:
私有:
Headnode*first;                            //头指针
Headnode*curr;                         //指向当前节点的指针
Headnode*tail;                        //尾指针
int lenth;                                //链表长度
公有:
HeadList();                           //构造函数
    virtual~HeadList();                      //析构函数
    void InsNode(ItemType e,int num);        //插入一个节点
    Headnode find(ItemType e);  //查找项的位置并返回如果没有此项则返回空
    bool linkTreenode(FPTreenode node,ItemType e);//在项e所在节点,插入树节点链接
node如果插入失败,返回false
------------------------------------
类名:FreItemset
说明:产生频繁项集
对象:用于频繁一项集和其他频繁项集
成员:
私有:
int lenth;                             //项集长度
ItemType item[100];                //项
int count[100];                        //每一项的支持数
公有:
FreItemset();                         //构造函数
virtual~FreItemset();                //析构函数
void Insert(ItemType e);                  //插入项e
void Del(int i);                          //删除第i个位置上的元素和支持度并将项集前
移一位
int IsIn(ItemType e);                //返回e在项集中的位置
bool IsLarger(ItemType a,ItemType b);    //判断a是否大于等于b
ItemType illu(int i);                     //返回i位置的项
void ChangeItem(int i,int j);            //对调两个位置上面的项
int Size();                          //返回项集的长度
int recount(ItemType e);             //返回项e的支持度
bool addcount(ItemType e);           //项e的支持度增一
int chcount(ItemType e,int num);      //change the count of item e to be num
void SortSet();                        //将频繁项集按照支持度排序
    void supcut();                         //根据支持数剪枝
-------------------------------
类名:FPnode
说明:产生频繁模式树中节点的对象
对象:用于生成频繁模式树中节点
成员:
私有:
ItemType item;                            //该节点对应的项
    int count;                                //包含从根结点到现节点的项集的事务数
    int numPath;                          //在以此节点为根的子树中,叶子节点的个数,
用于在FP_Growth过程中,检查是否只有一条单一路径。
    FPTreenode parent;                            //指向父节点的指针
    Childlink children;                           //指向孩子节点的指针
    FPTreenode hlink;                             //连接项头链表,指向相同项的下一个节点
的指针
    Headnode*first;                              //头指针
    Headnode*curr;                           //指向当前节点的指针
    Headnode*tail;                           //尾指针
    int lenth;                                   //链表长度
公有:
    FPnode();                                 //无参数构造函数
    FPnode(ItemType e,FPTreenode&pare);        //无项头指针的节点
    FPnode(ItemType e,FPnode pare,HeadList hl);//构造函数
    virtual~FPnode();                          //析构函数
    Childlink reChildren();                       //返回children指针
    ItemType reItem();                          //返回当前节点的item
    int reCount();                               //返回当前节点的支持数
    void AddCount();                            //支持数加一
    FPTreenode reParent();                        //返回父节点
    void chChildren(Childlink link);                  //改变孩子节点指针
--------------------------------
类名:FPtree
说明:产生频繁模式树的对象
对象:用于频繁模式树
成员:
私有:
FPnode*Troot;                            //根节点
公有:
FPtree();                               //构造函数
virtual~FPtree();                        //析构函数
FPTreenode reTroot();                    //返回根节点
FPTreenode Insertnode(FPTreenode&nod,Childlink&child,FPTreenode&pare);
                                      //加入一个新的节点e
FPTreenode reNode(ItemType e,FPTreenode&pare);//返回节点pare的孩子中e所在的节点
bool IsIn(ItemType e,FPTreenode&pare);        //在此父节点下是否有e所在节点
void FPTreeDel(FPTreenode&node);         //递归释放节点
------------------------------
类名:FrePat
说明:产生最终展示的频繁项集
对象:频繁项集结果
成员:
私有:
    int lenth;                                //项集长度
    ItemType item[10];                        //项
    int count;                                //支持度
    FrePat*next;                              //指向下一个节点
共有:
    FrePat();                                //构造函数
    virtual~FrePat();                       //析构函数
    bool Insert(ItemType it);                    //插入项it
    int ReCount();                          //返回支持数
    bool ChCount(int num);                  //将支持度改为num
    void illuFrePat();                      //在屏幕上输出当前频繁模式
    int Size();                             //返回当前频繁模式的长度
    FrePat*ReNext();                        //返回当前节点的下一结点
    void ChNext(FrePat*fp);                 //将当前节点的next指针指向fp
    ItemType ReItem(int i);                 //返回第i个位置上的元素
};
----------------------------------
类名:Childnode
说明:产生频繁模式树中孩子结点的指针节点
对象:用于频繁模式树
成员:
私有:
    FPTreenode node;                        //孩子节点
    Childlink next;                     //指向下一个孩子的节点
公有:
    Childnode(FPTreenode&nod);      //构造函数,参数为要加入的节点,和父节点
    virtual~Childnode();                   //析构函数
    FPTreenode renode();                  //返回当前树节点指针
    Childlink renext();                    //返回当前下一个孩子节点指针
    void chnext(Childlink link);            //改变下一个节点链接
-主要对象说明-
    FreItemset fp1;                    //一阶频繁项集
    Trans t;                               //事务对象(表示一条事务)
    FPtree FPTree;                    //频繁模式树
---------------------------------------
关联规则数据结构,将生成的关联规则保存在链表中
typedef struct Associationrulenode*AssociationRulePtr;//关联规则链表指针
  链表节点结构
typedef struct Associationrulenode{
float confidenceLevel;                //该关联规则的置信度
    Item left[5];                       //关联规则的左端项集
    int leftcount;                      //关联规则左端项集的个数
    Item right[5];                      //关联规则右端项集
int rightcount;                         //关联规则右端项集的个数
CElement left;                        //关联规则中左端项集
CElement right;                       //关联规则右端项集
AssociationRulePtr next;                //指向下一个关联规则节点的指针
}AssociationRulenode;
调用GetPatternPosition(PatternsInMain,patternnum,patternPosition);得到每一阶的频繁项集在PatternsInMain里面所存在的位置,从一阶频繁项集开始到高阶排列,声明两个变量:
int associationRuleNum=0;//记录关联规则的数目
AssociationRulePtr associationRuleHeaderPtr=NULL;关联规则链表头指针
调用函数GetPatternPosition得到关联规则,将频繁项集,存储频繁项集个数的数组patternPosition,以及频繁项集总的数目传递给函数,得到关联规则。

Claims (1)

1.一种移动互联网告警关联规则获取方法,系统包括告警数据获取模块、告警处理模块、参数设置模块、算法模块、结果处理模块,其特征在于,系统在获取到告警数据以后,对告警数据进行合并,根据挖掘工作的需要,对数据进行处理,进行关联规则提取工作,最后将获取到的结果进行表述和解释,其中:
(1)告警数据获取模块
①建立告警信息存储数据库;
②构建数据表:活动告警表,历史告警表,告警编号表;
③活动告警和历史告警:告警在没有清除以前是活动告警,需要入到活动告警表中,告警清除以后被清除的告警需要入到历史告警表里面,一条告警同一时刻的状态是唯一的,要么是活动告警,要么是历史告警,但是肯定是先活动后经处理之后清除,活动告警在清除了以后,需要从活动告警表中移植到历史告警表中,清除时每个厂家的告警都有自己的清除规则,活动告警表和历史告警表里面的告警加起来是全部完整的告警,因此告警关联规则获取应该将两个表中的数据合在一起,作为最终的待处理数据;
④告警标题编号:为每个告警标题加上一个编号;
⑤告警关联规则获取用到的存储字段,包括:设备厂家,网元名,告警对象,告警的发生时间,告警标题,告警标题编号;
(2)告警处理模块
数据处理是告警关联规则获取中的一个重要步骤,数据准备是否做好将直接影响到规则获取的效率、准确度以及最终结果的有效性,这个阶段又进一步分成几个子步骤,包括:数据集成、数据选取、数据清洗和数据变换,其中:
①数据集成:数据集成是将多文件或多数据库运行环境中的数据进行合并处理;
②数据选取:从告警数据库中将不同网元发送的告警进行统一格式处理;
③数据清洗:包括去噪声、缺值数据处理、消除重复记录操作,删除告警数据中由于各种原因引起的无法识别的数据或者在重要关键告警信息上缺失的数据;
④数据变换:将目标数据处理成便于规则获取的形式;数据变换的一个重要的步骤就是为每个告警标题加上告警编号,形成一个告警编号表,将告警标题和告警编号一一对应;这样使得在规则获取过程中更加容易处理,并且速度快;
(3)参数设置模块,包括:
告警时间窗及滑动步长:
由于移动互联网设备的告警是不间断的实时发生的,很难确定一个完整的告警序列的开始时间和结束时间,如果随意的获取,很可能将本来是一个完整的告警序列拆分成部分,因此告警的连续性为告警关联规则获取工作带来了很多困难,为了使数据能够适合关联规则获取工作的需要,以时间窗的方式划分告警数据,这种转换机制需要用户预先设定好时间窗口大小以及滑动步长,并且保证每一个告警时间窗和其前面的时间窗和后面的时间窗互有重叠,在最大程度上保证时间窗中取得完整的告警序列数据,这样将告警关系型数据转换为告警事务型数据,告警时间窗和滑动步长的具体的设置方法为:
首先读入数据库中的告警数据,获得第一条告警发生时间,作为窗口开始时间,由开始时 间加上窗口大小得到窗口终止时间,逐次将接下来的告警数据读入,时间不晚于终止时间的告警都为一个事务保存下来,一旦有一条告警的开始时间晚于终止时间,则由刚才的开始时间加上滑动步长得到新的开始时间,再加上窗口大小得到新的终止时间,然后将读取告警的指针移动到与新的开始时间最接近的记录开始读入,重复上述过程,这样,把预处理表中的关系型数据转化为事务型数据,若干条告警对应一个事务,这里需要注意的是,告警滑动步长的设置不能大于告警时间窗口宽度的一半;
支持度和置信度:
在关联规则的获取过程中,需要设置两个重要的参数:支持度阈值与置信度阈值,其中,支持度阈值用来生成告警频繁项集,置信度阈值用来生成告警关联规则;支持度阈值对关联规则结果集和算法运行时间影响都很大,而置信度阈值则对算法的运行时间没有太大的影响,如果支持度阈值太低,规则中偶尔发生的关联规则也会包含到最终输出的规则集当中,如果置信度阈值过低,同样会导致一些无意义的关联规则出现在结果规则集中;较低的阈值意味着较多的关联规则以及较长的规则发现时间;如果阈值过高则会导致丢失一些潜在有意义的关联规则;
给定了以上参数之后,挖掘算法最终输出满足给定条件的关联规则集,由于参数的选择对挖掘结果影响极大,因此需要在实际工作中选择合适的参数,尽量在不耗费过多的算法运行时间的前提下找出所有意义的关联规则模式;
(4)算法模块
基于全项集的频繁模式增长告警关联规则获取算法,具体描述如下:
①读入告警事务数据库,生成一阶频繁项集,并将一阶频繁项集按照支持数进行排序;
②再次读入事务数据库,按照频繁项集,扫描每一条事务,如果事务中的某项不在频繁项集中,则删除该项,然后按照频繁项集的顺序对每一条事务排序;
③对每一条事务产生全项集,对全项集的每一个项集进行扫描,将当前项集与前面所有项集进行比较,如果当前项集中的前i个项与前面某项集的前i个项相同,则标记为false,其余标记为true;
⑤生成全项集的编码规则:
将全项集的每一条项集插入到树中,事务中的第一个节点插入到根节点下,后面的每一个项作为前一项的子节点,扫描频繁模式树,如果当前节点下的孩子节点中,没有包含当前项的节点,则建立此节点,已经有包含当前项的节点,检查项集中该项下面的标记,如果为true则节点支持数加1,否则不加1;
(5)结果处理模块
结果的表述和解释,是对获取到的关联规则进行解释、评估,告警关联规则获取阶段发现的告警关联规则,可能存在冗余模式或无用规则,将其剔除;对一些近似的规则,为了便于用户理解、使用,对其进行归纳整理,合并为具有更高信息量的模式;对发现的规则进行一致性检查,避免发现的规则之间存在矛盾,根据用户的需要,对获取到的规则执行修改操作。
CN201110028473.9A 2011-01-26 2011-01-26 一种移动互联网告警关联规则获取方法 Active CN102098175B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110028473.9A CN102098175B (zh) 2011-01-26 2011-01-26 一种移动互联网告警关联规则获取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110028473.9A CN102098175B (zh) 2011-01-26 2011-01-26 一种移动互联网告警关联规则获取方法

Publications (2)

Publication Number Publication Date
CN102098175A CN102098175A (zh) 2011-06-15
CN102098175B true CN102098175B (zh) 2015-07-01

Family

ID=44131052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110028473.9A Active CN102098175B (zh) 2011-01-26 2011-01-26 一种移动互联网告警关联规则获取方法

Country Status (1)

Country Link
CN (1) CN102098175B (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294853B (zh) * 2010-06-22 2019-10-11 起元技术有限责任公司 用于处理相关数据集的方法及数据处理系统
CN102932400B (zh) * 2012-07-20 2015-06-17 北京网康科技有限公司 一种识别统一资源定位符主链接的方法及装置
CN103678314B (zh) * 2012-09-03 2017-07-25 中国银联股份有限公司 基于关联规则提取的海量数据处理系统、设备及方法
CN104243192B (zh) * 2013-06-17 2017-11-10 北京神州泰岳软件股份有限公司 故障处理方法及系统
CN104239437B (zh) * 2014-08-28 2017-12-15 国家电网公司 一种面向电网调度的智能告警分析方法
CN104715073B (zh) * 2015-04-03 2017-11-24 江苏物联网研究发展中心 基于改进Apriori算法的关联规则挖掘系统
CN105117315B (zh) * 2015-08-06 2018-07-20 上海携程商务有限公司 基于cep的告警处理系统及方法
CN106559247B (zh) * 2015-09-30 2020-03-27 中兴通讯股份有限公司 网络管理系统中的告警管理方法及网络管理系统
CN105205568B (zh) * 2015-10-14 2017-03-08 广东电网有限责任公司电力调度控制中心 告警事务提取方法及系统
CN106789138B (zh) * 2015-11-23 2019-10-15 中国移动通信集团广西有限公司 一种网络告警关联分析的方法及装置
CN106878038B (zh) * 2015-12-10 2020-02-21 华为技术有限公司 一种通信网络中故障定位方法及装置
CN105677759B (zh) * 2015-12-30 2019-11-12 国家电网公司 一种信息通信网络中的告警关联性分析方法
CN105760279B (zh) * 2016-03-09 2018-09-07 北京国电通网络技术有限公司 分布式数据库集群故障预警关联树生成方法及系统
CN107402797A (zh) * 2016-05-19 2017-11-28 中兴通讯股份有限公司 一种软件编译方法及装置
CN106201835A (zh) * 2016-07-14 2016-12-07 浪潮软件股份有限公司 一种预警自动管理的实现方法置的方法
CN106484884A (zh) * 2016-10-18 2017-03-08 安徽天达网络科技有限公司 一种数据处理系统
CN106484890A (zh) * 2016-10-18 2017-03-08 安徽天达网络科技有限公司 一种基于局域网的数据处理方法
CN106503113A (zh) * 2016-10-18 2017-03-15 安徽天达网络科技有限公司 一种基于局域网的数据处理方法
CN106528313B (zh) * 2016-10-24 2018-10-16 中国银联股份有限公司 一种主机变量异常检测方法及系统
CN106534309A (zh) * 2016-11-14 2017-03-22 晶赞广告(上海)有限公司 一种数据处理方法及装置
CN106789347B (zh) * 2017-01-22 2019-12-13 浪潮天元通信信息系统有限公司 一种基于告警数据实现告警关联和网络故障诊断的方法
CN108737135A (zh) * 2017-04-17 2018-11-02 腾讯科技(深圳)有限公司 数据处理方法及数据处理装置
CN108737147B (zh) * 2017-04-25 2021-09-03 中国移动通信集团广东有限公司 一种网络告警事件处理方法及装置
CN107592223A (zh) * 2017-09-11 2018-01-16 北京富通东方科技有限公司 一种基于大数据的智能告警处理方法
CN109714180B (zh) * 2017-10-26 2022-03-04 中兴通讯股份有限公司 压减冗余告警的方法、相应设备及存储介质
CN108255946B (zh) * 2017-12-13 2020-08-14 东莞市奥海科技股份有限公司 一种镭雕设备的编码管理方法及装置、设备及存储介质
CN110019367B (zh) * 2017-12-28 2022-04-12 北京京东尚科信息技术有限公司 一种统计数据特征的方法和装置
CN108156037B (zh) * 2017-12-29 2020-12-15 中国移动通信集团江苏有限公司 告警关联分析方法、装置、设备及介质
CN108650684B (zh) * 2018-02-12 2021-03-23 中国联合网络通信集团有限公司 一种关联规则确定方法及装置
CN110300011B (zh) * 2018-03-23 2022-07-01 中国移动通信集团有限公司 一种告警根因定位方法、装置和计算机可读存储介质
CN109189736B (zh) * 2018-08-01 2021-01-26 中国联合网络通信集团有限公司 一种告警关联规则的生成方法和装置
CN109358602A (zh) * 2018-10-23 2019-02-19 山东中创软件商用中间件股份有限公司 一种故障分析方法、装置及相关设备
CN109412867B (zh) * 2018-12-06 2022-02-08 国家电网有限公司信息通信分公司 一种告警关联合并方法、装置、系统、设备和存储介质
CN110188025B (zh) * 2019-05-31 2022-05-10 安徽继远软件有限公司 一种告警日志的高效关联方法
CN112200397B (zh) * 2019-07-08 2023-10-27 中国移动通信集团湖南有限公司 一种业务监测预警实现方法
CN111400377B (zh) * 2020-04-27 2023-09-08 新奥新智科技有限公司 一种目标数据集的确定方法及装置
CN112182743B (zh) * 2020-09-09 2023-09-26 北京航空航天大学 一种基于故障传递特征匹配的飞机系统故障诊断方法
CN112200603A (zh) * 2020-09-25 2021-01-08 微梦创科网络科技(中国)有限公司 一种用于社交广告投放的报警方法及系统
CN114579409A (zh) * 2020-11-30 2022-06-03 中兴通讯股份有限公司 告警方法、装置、设备及存储介质
CN113052629B (zh) * 2021-03-10 2024-02-13 浙江工商大学 基于cecu体系智能算法模型的网络用户画像方法
TWI789003B (zh) * 2021-09-10 2023-01-01 伊雲谷數位科技股份有限公司 服務異常偵測告警方法、使用此方法的設備、儲存此方法的儲存媒介及產生異常告警之電腦軟體程式
CN114024828B (zh) * 2021-10-15 2023-05-23 烽火通信科技股份有限公司 一种平台侧告警抑制方法、装置及存储介质
CN114338746A (zh) * 2021-12-30 2022-04-12 以萨技术股份有限公司 一种用于物联网设备数据收集的分析预警方法及系统
CN114615027A (zh) * 2022-02-24 2022-06-10 奇安信科技集团股份有限公司 行为数据处理方法、装置、设备和存储介质
CN114968727B (zh) * 2022-06-29 2023-02-10 北京柏睿数据技术股份有限公司 基于人工智能运维的数据库贯穿基础设施的故障定位方法
CN115498594B (zh) * 2022-10-27 2023-08-22 国网安徽省电力有限公司滁州供电公司 变电站继电保护跳合闸出口回路在线巡检分析系统
CN117806916A (zh) * 2024-02-29 2024-04-02 中国人民解放军国防科技大学 多单元服务器轻量化告警相关性挖掘和收敛方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119302A (zh) * 2007-09-06 2008-02-06 华中科技大学 一种挖掘事务数据流上最近时间窗口内频繁模式的方法
CN101266578A (zh) * 2008-02-22 2008-09-17 浙江大学 基于增量式闭合序列挖掘的高速缓存数据预取方法
CN101888309A (zh) * 2010-06-30 2010-11-17 中国科学院计算技术研究所 在线日志分析方法
CN101937447A (zh) * 2010-06-07 2011-01-05 华为技术有限公司 一种告警关联规则挖掘方法、规则挖掘引擎及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100393048C (zh) * 2006-01-13 2008-06-04 武汉大学 一种建立网络故障诊断规则库的方法
US7840515B2 (en) * 2007-02-16 2010-11-23 Panasonic Corporation System architecture and process for automating intelligent surveillance center operations
CN101242549A (zh) * 2007-11-22 2008-08-13 中国移动通信集团山东有限公司 通信网络告警关联的神经网络构建方法
CN101577636B (zh) * 2009-06-05 2012-07-25 中兴通讯股份有限公司 告警的相关性矩阵确定、告警相关性分析方法与装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119302A (zh) * 2007-09-06 2008-02-06 华中科技大学 一种挖掘事务数据流上最近时间窗口内频繁模式的方法
CN101266578A (zh) * 2008-02-22 2008-09-17 浙江大学 基于增量式闭合序列挖掘的高速缓存数据预取方法
CN101937447A (zh) * 2010-06-07 2011-01-05 华为技术有限公司 一种告警关联规则挖掘方法、规则挖掘引擎及系统
CN101888309A (zh) * 2010-06-30 2010-11-17 中国科学院计算技术研究所 在线日志分析方法

Also Published As

Publication number Publication date
CN102098175A (zh) 2011-06-15

Similar Documents

Publication Publication Date Title
CN102098175B (zh) 一种移动互联网告警关联规则获取方法
CN106709035B (zh) 一种电力多维全景数据的预处理系统
CN103902816A (zh) 基于数据挖掘技术的带电检测数据处理方法
CN104318481A (zh) 一种面向电网运行的全息时标量测数据萃取转换方法
CN104216874A (zh) 基于相关系数的中文词间加权正负模式挖掘方法及系统
CN105760279A (zh) 分布式数据库集群故障预警关联树生成方法及系统
CN104881427A (zh) 一种面向电网调控运行的数据血统分析方法
CN115757813A (zh) 一种基于故障时序知识图谱的装备剩余寿命预测方法
CN112181960A (zh) 一种基于AIOps的智能运维框架系统
CN114218218A (zh) 基于数据仓库的数据处理方法、装置、设备及存储介质
CN104572471A (zh) 一种基于索引的Java软件代码克隆检测方法
CN102609501A (zh) 一种基于实时历史数据库的数据清洗方法
CN110399278B (zh) 基于数据中心异常监控的告警融合系统及方法
Nair et al. Improvised Apriori with frequent subgraph tree for extracting frequent subgraphs
CN116010368A (zh) 基于多元日志数据分析的日志审计方法和系统
CN116680445A (zh) 基于知识图谱的电力光通信系统多源异构数据融合方法及系统
CN115203290A (zh) 一种基于多维prefixspan算法的故障诊断方法
Hu et al. A new approach for decision tree based on principal component analysis
CN109271350A (zh) 一种基于远动通信的数据库及信息点表自动比对及同步方法
Zhao et al. Mining fault association rules in the perception layer of electric power sensor network based on improved Eclat
CN102955860B (zh) 基于模式图的关键字查询改进方法
CN113342807A (zh) 一种基于混合数据库的知识图谱及其构建方法
Deng et al. Mining Alarm Association Rules in Optical Transmission Networks Using a Statistical Approach
Jiang et al. Efficient window aggregate method on array database system
Juan et al. Research of an association rule mining algorithm based on FP tree

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 250100 Ji'nan high tech Zone, Shandong, No. 1036 wave road

Patentee after: Tianyuan Communication Information System Co., Ltd.

Address before: 250100 Shandong Province, Ji'nan City hi tech Development Zone, Nga Road No. 1036

Patentee before: Langchao Communication Information System Co., Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 250100 S06 tower, 1036, Chao Lu Road, hi tech Zone, Ji'nan, Shandong.

Patentee after: INSPUR COMMUNICATION AND INFORMATION SYSTEM Co.,Ltd.

Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Patentee before: INSPUR TIANYUAN COMMUNICATION INFORMATION SYSTEM Co.,Ltd.