CN102457578A - 一种基于事件机制的分布式网络监控方法 - Google Patents
一种基于事件机制的分布式网络监控方法 Download PDFInfo
- Publication number
- CN102457578A CN102457578A CN2011104226003A CN201110422600A CN102457578A CN 102457578 A CN102457578 A CN 102457578A CN 2011104226003 A CN2011104226003 A CN 2011104226003A CN 201110422600 A CN201110422600 A CN 201110422600A CN 102457578 A CN102457578 A CN 102457578A
- Authority
- CN
- China
- Prior art keywords
- incident
- event
- monitoring
- inspection
- network
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实现了一种基于事件机制的分布式网络监控方法,包括:各种初始化操作;构建基于优先级的事件队列;根据优先级对事件进行处理;获取网络中客户机的状态信息等。本发明适用于当前流行的分布式远程监控系统架构,采用统一的事件机制,节省了存储空间,优化了管理方式;通过并行检查机制,提高了监控系统的监控能力,最终提高了原有分布式监控系统在增长的网络环境下的使用寿命,可以有效减少企业硬件成本,较好地保证了正常的网络环境。
Description
技术领域
本发明涉及到计算机网络监控技术,具体涉及到一种基于事件机制的分布式网络监控系统中服务器端监控的方法。
背景技术
21世纪已进入计算机网络时代。计算机网络极大普及,计算机应用已进入更高层次,计算机网络成了计算机行业的一部分。新一代的计算机已将网络接口集成到主板上,网络功能已嵌入到操作系统之中,智能大楼的兴建已经和计算机网络布线同时、同地、同方案施工。随着通信和计算机技术紧密结合和同步发展,我国计算机网络技术飞跃发展。网络管理就是通过某种方式对网络进行管理,使网络能正常高效地运行。其目的很明确,就是使网络中的资源得到更加有效的利用。
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。网络管理经过一段时间的发展,已经有了长足的进步,各种各样的监控管理工具正在满足着不同的网络监控需求,其中,分布式网络监控是其中重要的一份子。
分布式网络监控是将地理上分布的网络管理客户机与一组网络管理服务器相互作用,共同完成网络监控管理功能。在以前,由于网络环境中客户机比较少,相应的监控资源也比较少,采用的监控手段也比较简单,没有统一的规划,通常是通过多个进程分别对硬件和远程主机的软件资源进行监控;但是,随着自动办公化的发展,现在的企业,网络环境中客户机越来越多,网络环境越来越复杂,原有的监控系统已经不能满足增长的办公环境,由于监控的随意性、网络环境的复杂性等原因,监控服务器上运行的监控进程越来越多,资源消耗越来越大,导致监控服务器运行速度越来越慢,造成监控系统不能及时响应客户机请求,监控系统不能及时获得客户机资源状态变化的情况,影响企业的正常运营。这个时候,如果还要继续使用原有的监控系统,企业只能增加监控服务器以分散每个监控服务器的的压力,或者重新购买监控软件以提高监控能力,而这两种方法都会给企业运营带来额外的成本。
发明内容
针对以上问题,本发明提供了一种基于监控服务器端的采用事件机制的通用分布式网络监控方法。所谓事件机制,是将所有的操作(主要分为两类,监控操作:包括硬件设备监控、应用服务监控等;管理操作:包括监控结果回收、日志记录等)通过统一的事件结构来表示,将所有的操作统一化,并通过事件优先级队列的方式使得监控进一步优化,使监控和管理一体化,实现对网络中硬件设备、操作系统、应用服务等软硬件设备的统一监控;并通过并行服务检查,按需调用监控进程,大大降低了监控服务器的负载,提高了单台监控服务器的监控性能,解决了增长的网络环境中服务器监控性能瓶颈问题,在不需要增加监控服务器数量、不需要重新购买新的监控软件的前提下,仍然能够对网络中的各种软硬件设备进行监控而不会出现遗漏或响应不及时的问题,大大提高了原有监控环境的生命周期。
为了实现以上目标,本发明提供了以下技术方案:
1) 读取配置文件,加载事件处理模块;
2) 监控初始化,创建各个事件,按照事件执行时间构建两个优先级的事件队列:高优先级事件(检查事件以外的所有事件)队列,低优先级事件(检查事件)队列;
3) 进入监控循环,根据优先级处理各个事件:首先处理高优先级队列中的事件,其次处理低优先级队列事件;
4) 监控系统收到停止信号,退出。
本发明适用于分布式监控管理系统,跟传统的分布式监控系统相比,有以下两方面的优势:
1) 监控流程使用单进程循环方式,减少了系统中运行的进程数,降低了系统负载,提高了单机监控能力;
2) 采用统一的数据结构——事件,简化了监控管理操作,节省了管理所需的系统资源,主要是存储空间。
附图说明
图1是本发明适用的监控系统结构示意图;
图2是本发明分布式网络监控方法实现的流程图;
图3是本发明监控循环的流程图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
下面结合图1、图2和图3,通过具体实施方式对本发明作进一步的详细描述:
图1是本发明适用的分布式网络监控系统结构示意图。本方法主要针对监控服务器端,主要由两个部分构成:事件处理模块和基于优先级的事件队列,事件处理模块用于对事件队列中的事件进行处理,而优先级队列则用于存储所有的事件。
图2是本发明分布式网络监控方法实现的总流程图,图3是监控循环的流程图,具体的流程如下:
1) 读取配置文件,加载事件处理模块
在该方法中,首先要读取配置文件,配置文件主要用于定义所有监控内容和监控选项,包括监控对象(分为主机host和服务service两类)、监控选项(主要包括检查间隔、结果回收间隔、日志记录间隔等内容)。主机是以实体存在的客户机,可以是硬件设备,也可以是一个操作系统;而服务则是存在于实体上的各个具体应用。读取配置文件的过程就是获取所有已经定义好的主机和服务,并读取所有的监控选项。
此外,还需要初始化并加载事件处理模块,事件处理模块是一系列事件处理操作的集合,包括事件检查处理(参考步骤4)、外部命令处理(步骤3中针对EVENT_COMMAND_CHECK的处理)、结果回收(步骤3中针对EVENT_CHECK_REAPER的处理)以及日志处理(步骤3中针对EVENT_LOG_ROTATION的处理)等。
2) 监控初始化(init_event_loop),根据配置文件内容创建事件,构建不同优先级的事件队列;
本发明所述的方法以事件机制为核心,因此所有的操作都是由事件触发器触发的。init_event_loop用于创建事件并进行初始化工作,主要包括:
利用从配置文件中读取的信息建立scheduling_info表,该表的内容包括总的host数、总的service数、单个host平均service数、平均service检查间隔、host检查总间隔、service检查总间隔等;
为了降低系统负载,需要调整两个主机或者两个服务之间的检查间隔,以避免同一时间出现多个检查事件,本发明中采用平均值法计算得到最优的检查间隔,计算公式为:最优host检查间隔(host_inter_check_delay)=总host检查间隔/总的host数,最优service检查间隔(service_inter_check_delay)=总service检查间隔/总的service数。
创建事件,构建事件优先级队列。事件按照功能分为检查事件和非检查事件。
检查事件分为两类:
#define EVENT_SERVICE_CHECK 0 //服务检查事件
#define EVENT_HOST_CHECK 1 //主机检查事件
非检查事件包括所有检查事件之外的其他事件,主要事件定义如下:
#define EVENT_COMMAND_CHECK 3 //外部命令事件
#define EVENT_LOG_ROTATION 4 //日志记录事件
#define EVENT_CHECK_REAPER 5 //结果回收事件
根据以上定义创建事件(event),定义如下。
typedef struct event_struct{
int event_type; //事件类型,参考前面的事件类型定义
time_t run_time; //执行时间
int recurring; //是否安排下一次执行,检查事件一般都会重复执行
unsigned long event_interval; //同一事件两次检查间隔,值来自配置文件
void *event_data; //事件数据内容
……
struct event_struct *next;
struct event_struct *prev;
} event; //事件定义
根据检查事件和非检查事件的分类,构建两种优先级队列:高优先级队列(用于存放非检查事件)和低优先级队列(检查事件)。构建高优先级队列的逻辑:计算得到非检查事件的执行事件(非检查事件的执行时间=当前时间+该事件的检查间隔),按照执行时间插入到队列中,并修改队列执行时间为队列首事件的执行时间;构建低优先级队列逻辑如下:初始化间隔基数(mult_factor)为0,读取最优主机检查间隔host_inter_check_delay,依次读取各个已经定义好的主机,对于每个主机检查事件,其检查时间=当前时间+(host_inter_check_delay*(mult_factor++));服务检查事件同样如此,读取最优服务检查间隔(service_inter_check_delay),依次读取服务定义,其检查时间=当前时间+ (service_inter_check_delay*(mult_factor++)),根据检查时间的先后次序将所有检查事件插入到低优先级队列中,并修改低优先级执行事件为队列首事件的执行时间。通过这样的方式,可以将检查时间平均化,避免某一个时间段内检查事件过多,造成系统负载过高而影响检查效率。
3) 进入监控流程event_loop,根据优先级处理各个事件,参考图3
事件队列创建之后,仅需监控流程event_loop,event_loop以单个进程循环方式执行,流程如下:
(1)高优先级队列判断,见图3中的S1。如果队列空或者当前时间小于队列执行时间,则说明当前没有事件要执行,转入步骤(5);否则,转入步骤(2)。
(2) 处理高优先级队列首事件,见图3中的S2。根据事件类型分别进行相应的处理,列举主要的非检查事件处理方法:
针对EVENT_COMMAND_CHECK的处理:检查调用的外部命令是否存在,如果存在,则调用相应的命令进行处理。主要的外部命令包括:停止检测、调整下一次检查时间、启用或者禁用主机/服务通知等,这些外部命令都是可以根据自己的需求定义的;
针对EVENT_LOG_ROTATION的处理:写日志记录到日志文件中;
针对EVENT_CHECK_REAPER的处理:检查结果回收处理,包括将检查结果保存到文本文件中以及将结果通过数据库读写模块保存到数据库中。
处理完之后,将该事件从队列中移除,并修改队列执行时间为当前队列首事件的执行时间。
(3) 检查是否需要安排下一次执行,见图3中的S3,如果不需要安排下一次执行,转入步骤(1)继续执行下次循环;如果需要安排下一次执行,转入步骤(4)。
(4) 安排下一次执行,见图3中的S4。修改事件执行时间为本次检查时间+检查间隔,按照事件执行时间插入到相对应的优先级队列中,并修改队列执行时间为当前队列首事件的执行时间。
(5) 低优先级队列判断,见图3中的S5。如果队列空或者当前时间小于队列执行时间,则说明当前没有事件要执行,转入步骤(1);否则,转入步骤(6)。
(6)低优先级队列处理,见图3中的S6。从队列中取出首个检查事件进行处理,考虑到同一时间可能有多个检查事件,因此采取并发方式进行,主线程fork出一个子线程执行该次检查事件,见步骤(7)和步骤(8);之后,将该事件从队列中移除,修改低优先级队列执行时间为当前队列首事件的执行时间,转入步骤(3)。
(7)子线程处理1,见图3中的S7。子线程从事件内容中获取检查内容(包括检查命令、检查对象等),根据检查内容设置超时并向相应主机发送监控命令,之后等待客户机反馈结果。
(8)子线程处理2,见图3中的S8。如果超时或者收到客户机反馈结果,子线程创建回收事件,该事件的执行时间为当前时间,并将该事件按照执行时间的顺序插入到高优先级队列中,并结束该次检查。
4) 退出
监控过程会在3)中循环,直到收到用户发送来的结束信号,监控系统退出,监控过程结束。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于事件机制的分布式网络监控方法,其特征在于,包括以下步骤:
1) 读取配置文件,加载事件处理模块;
2) 监控初始化,创建监控事件,构建不同优先级的事件队列;
3) 进入监控循环,根据优先级处理各个事件:首先处理高优先级队列中的事件,其次通过并发方式处理低优先级队列事件;
4) 退出。
2.如权利要求1所述的方法,其特征在于:步骤1)中需要从配置文件中获得创建事件所需要的监控对象内容以及监控选项。
3.如权利要求1所述的方法,其特征在于:步骤2)中的初始化工作包括得到监控对象的信息内容,通过计算得到各个数据信息,创建核心数据结构事件,并在此基础上构建不同优先级的事件队列。
4.如权利要求1所述的方法,其特征在于:步骤3)要中的高优先级队列中的事件是指监控事件以外的其他事件,包括监控回收事件、日志处理事件;低优先级事件是指所有的监控事件,包括主机监控事件以及服务监控事件两类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110422600.3A CN102457578B (zh) | 2011-12-16 | 2011-12-16 | 一种基于事件机制的分布式网络监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110422600.3A CN102457578B (zh) | 2011-12-16 | 2011-12-16 | 一种基于事件机制的分布式网络监控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102457578A true CN102457578A (zh) | 2012-05-16 |
CN102457578B CN102457578B (zh) | 2015-10-07 |
Family
ID=46040223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110422600.3A Active CN102457578B (zh) | 2011-12-16 | 2011-12-16 | 一种基于事件机制的分布式网络监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102457578B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905223A (zh) * | 2012-12-26 | 2014-07-02 | 腾讯科技(北京)有限公司 | 数据包采集方法、系统和装置 |
CN103916397A (zh) * | 2014-04-13 | 2014-07-09 | 北京工业大学 | 一种分布式网络环境下安全监控方法 |
CN105404556A (zh) * | 2015-10-22 | 2016-03-16 | 江苏省电力公司扬州供电公司 | 基于l-qt-p多线程事件触发机制的通信系统及方法 |
CN106445784A (zh) * | 2016-09-27 | 2017-02-22 | 北京搜狐新动力信息技术有限公司 | 一种信息监控方法及装置 |
CN106951332A (zh) * | 2017-03-01 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 消息调度方法和装置 |
CN108073652A (zh) * | 2016-11-16 | 2018-05-25 | 南京南瑞继保电气有限公司 | 一种事件分组优化存储方法 |
WO2019223596A1 (zh) * | 2018-05-25 | 2019-11-28 | 杭州海康威视数字技术股份有限公司 | 事件处理方法、装置、设备及存储介质 |
CN111127250A (zh) * | 2019-12-17 | 2020-05-08 | 国网智能科技股份有限公司 | 一种电力数据监控事件分析系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1356639A (zh) * | 2000-09-28 | 2002-07-03 | 松下电器产业株式会社 | 为有同时截止期和优先级的盘输入/输出子系统提供服务质量 |
US20060155552A1 (en) * | 2004-03-31 | 2006-07-13 | Lechong Chen | Event handling mechanism |
CN101854299A (zh) * | 2010-05-21 | 2010-10-06 | 中国科学院软件研究所 | 一种发布/订阅系统的动态负载平衡方法 |
CN101866175A (zh) * | 2010-06-21 | 2010-10-20 | 北京机电院高技术股份有限公司 | 一种多远程地磅采集、记录方法和系统 |
-
2011
- 2011-12-16 CN CN201110422600.3A patent/CN102457578B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1356639A (zh) * | 2000-09-28 | 2002-07-03 | 松下电器产业株式会社 | 为有同时截止期和优先级的盘输入/输出子系统提供服务质量 |
US20060155552A1 (en) * | 2004-03-31 | 2006-07-13 | Lechong Chen | Event handling mechanism |
CN101854299A (zh) * | 2010-05-21 | 2010-10-06 | 中国科学院软件研究所 | 一种发布/订阅系统的动态负载平衡方法 |
CN101866175A (zh) * | 2010-06-21 | 2010-10-20 | 北京机电院高技术股份有限公司 | 一种多远程地磅采集、记录方法和系统 |
Non-Patent Citations (1)
Title |
---|
司徒放: "基于事件的分布式系统监控方法", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905223B (zh) * | 2012-12-26 | 2018-01-19 | 腾讯科技(北京)有限公司 | 数据包采集方法、系统和装置 |
CN103905223A (zh) * | 2012-12-26 | 2014-07-02 | 腾讯科技(北京)有限公司 | 数据包采集方法、系统和装置 |
CN103916397A (zh) * | 2014-04-13 | 2014-07-09 | 北京工业大学 | 一种分布式网络环境下安全监控方法 |
CN103916397B (zh) * | 2014-04-13 | 2017-09-29 | 北京工业大学 | 一种分布式网络环境下安全监控方法 |
CN105404556A (zh) * | 2015-10-22 | 2016-03-16 | 江苏省电力公司扬州供电公司 | 基于l-qt-p多线程事件触发机制的通信系统及方法 |
CN105404556B (zh) * | 2015-10-22 | 2018-10-30 | 江苏省电力公司扬州供电公司 | 基于l-qt-p多线程事件触发机制的通信系统及方法 |
CN106445784A (zh) * | 2016-09-27 | 2017-02-22 | 北京搜狐新动力信息技术有限公司 | 一种信息监控方法及装置 |
CN108073652A (zh) * | 2016-11-16 | 2018-05-25 | 南京南瑞继保电气有限公司 | 一种事件分组优化存储方法 |
CN108073652B (zh) * | 2016-11-16 | 2021-06-18 | 南京南瑞继保电气有限公司 | 一种事件分组优化存储方法 |
CN106951332A (zh) * | 2017-03-01 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 消息调度方法和装置 |
WO2019223596A1 (zh) * | 2018-05-25 | 2019-11-28 | 杭州海康威视数字技术股份有限公司 | 事件处理方法、装置、设备及存储介质 |
CN111127250A (zh) * | 2019-12-17 | 2020-05-08 | 国网智能科技股份有限公司 | 一种电力数据监控事件分析系统及方法 |
CN111127250B (zh) * | 2019-12-17 | 2023-11-03 | 山东鲁软数字科技有限公司智慧能源分公司 | 一种电力数据监控事件分析系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102457578B (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102457578A (zh) | 一种基于事件机制的分布式网络监控方法 | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
US20180060132A1 (en) | Stateful resource pool management for job execution | |
CN109327509A (zh) | 一种主/从架构的低耦合的分布式流式计算框架 | |
CN102929769B (zh) | 一种基于代理服务的虚拟机内部数据采集方法 | |
CN107479990A (zh) | 一种分布式软件服务系统 | |
WO2011128369A1 (en) | Querying performance data on a parallel computer system having compute nodes | |
CN103684916A (zh) | 一种云计算下智能监控分析方法及系统 | |
CN101707399A (zh) | 电能信息采集方法及系统 | |
US8326982B2 (en) | Method and apparatus for extracting and visualizing execution patterns from web services | |
CN106528853A (zh) | 数据交互管理装置、跨库数据交互处理装置及方法 | |
CN111813573B (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN113422842B (zh) | 一种考虑网络负载的分布式电力用电信息数据采集系统 | |
CN102081554A (zh) | 云计算操作系统及其内核控制系统及方法 | |
CN107133231B (zh) | 一种数据获取方法和装置 | |
US20140059152A1 (en) | Support server for redirecting task results to a wake-up server | |
CN101093454A (zh) | 一种在分布式系统中执行sql脚本文件的方法和装置 | |
CN108304267A (zh) | 高可靠低资源开销的多源数据引接方法 | |
CN114205641A (zh) | 一种视频数据处理方法及装置 | |
Bedini et al. | Modeling performance of a parallel streaming engine: bridging theory and costs | |
CN113485812B (zh) | 基于大数据量任务的分区并行处理方法及系统 | |
CN109951370B (zh) | 多大数据中心分层互联互通方法及装置 | |
CN113570347A (zh) | 一种面向微服务架构系统的rpa运维方法 | |
CN112199432A (zh) | 一种基于分布式的高性能数据etl装置及控制方法 | |
CN105786945B (zh) | 一种基于数据通道的用电信息数据高效处理方法 |
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 |