CN114780348A - 基于分布式部署环境下异步监控客户端操作日志的方法 - Google Patents
基于分布式部署环境下异步监控客户端操作日志的方法 Download PDFInfo
- Publication number
- CN114780348A CN114780348A CN202210457945.0A CN202210457945A CN114780348A CN 114780348 A CN114780348 A CN 114780348A CN 202210457945 A CN202210457945 A CN 202210457945A CN 114780348 A CN114780348 A CN 114780348A
- Authority
- CN
- China
- Prior art keywords
- event
- operation log
- processing
- creating
- log
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了基于分布式部署环境下异步监控客户端操作日志的方法,基于Maven+SpringBoot搭建web项目公共包,创建自定义日志标签接口、事件处理模型、事件生成器接口;创建基于SpringAop的切面编程类,并将自定义日志标签接口作为切入点进行拦截、处理操作日志读取问题;创建操作日志事件生成器类,并在事件生成处理方法中创建新的线程将包含操作日志的事件处理模型写入到redis队列中;将web项目公共包中封装成一个公共Jar,处理操作日志事件并持久化到数据库。在业务与日志记录数据库不对外开放、不影响管理人员正常业务流程处理的情况下,异步、安全、完整的记录下客服端对服务器的请求操作。
Description
技术领域
本发明涉及操作日志监控技术领域,具体的说,是一种基于分布式部署环境下异步监控客户端操作日志的方法。
背景技术
在微服务化背景模式下,各个管理系统可分布式部署在不同的服务器上,管理员用户通过一个登录入口进入到管理平台,进行操作各个微服务业务管理系统。需要对使用管理平台的用户操作进行监控时,管理平台的用户通过客户端对服务器发出服务请求,对请求内容进行监控并记录,即需要记住使用管理平台的用户的操作日志,保证请求的系统的安全性以及可溯源性。但是现有技术中尚没有一种监控客户端操作日志的方法,能够实现在不影响业务操作的前提下完整的记录下客户端发起的服务请求。
发明内容
本发明的目的在于提供一种基于分布式部署环境下异步监控客户端操作日志的方法,用于解决现有技术中尚没有一种监控客户端操作日志的方法,能够实现在不影响业务操作的前提下完整的记录下客户端发起的服务请求的问题。
本发明通过下述技术方案解决上述问题:
一种基于分布式部署环境下异步监控客户端操作日志的方法,包括:
步骤A、基于Maven+SpringBoot搭建web项目公共包,在web项目公共包中创建自定义日志标签接口SysLog、事件处理模型javaBean、事件生成器接口interfaceeventproducer;
步骤B、在web项目公共包中创建基于SpringAop的切面编程类,并将自定义日志标签接口SysLog作为切入点进行拦截,并使用环绕通知方式,处理操作日志读取问题;
步骤C、通过事件生成器接口interface eventproducer创建操作日志事件生成器类LogEventProducer,并在事件生成处理方法exect()中创建新的线程将包含操作日志的事件处理模型javaBean写入到redis队列中;
步骤D、将web项目公共包中封装成一个公共Jar,用于其他微服务管理工程引入,在需要进行操作日志记录点添加注解标签标记@SysLog完成对操作日志的收集记录;
步骤E、处理操作日志事件并持久化到mysql数据库。
本发明采用异步消息队列方式处理并记录用户日志,不影响正常的业务操作并且能完整的记录下客户端发起的服务请求;采用redis作为日志消息队列中间存储服务器,满足在分布式部署环境状态下日志保存数据库以及各个微服务系统不对外开放;结合面向切面编程和标签化编程,简化开发过程;确保数据的安全性、完整性以及业务微服务之间的松耦合性。
所述步骤A具体包括:
步骤A1、基于Maven+SpringBoot搭建web项目公共包,在web项目公共包中创建自定义日志标签接口SysLog,在自定义日志标签接口SysLog中声明属性,用于说明当前操作详情;
步骤A2、在web项目公共包中创建事件处理模型javaBean,事件处理模型javaBean用于将从客户端传输到服务的请求转化为事件处理模型对象;
步骤A3、在web项目公共包中创建事件生成器接口interface eventproducer,并声明事件生成处理方法exect()。
所述步骤E具体包括:
步骤E1、创建SpringBoot的web工程morefun-consumer,web工程morefun-consumer用于处理操作日志事件并持久化到mysql数据库;
步骤E2、在web工程morefun-consumer中定义事件处理器接口interfaceEventHandler并声明事件处理方法doHander;以及定义事件处理分发器接口interfaceEventDispatcher并声明事件分发器处理方法;事件处理分发器接口interfaceEventDispatcher创建操作日志事件处理分发器类LogEventDispatcher,用于实现分配方法dispatcher的业务处理逻辑;事件处理器接口interface EventHandler创建操作日志处理事件类LogEventHandler;创建新的线程监听redis消息队列中的存储事件,以及调用操作日志处理事件类LogEventHandler中的事件处理方法doHander完成对操作日志的处理并持久化到MySql数据库中。
本发明与现有技术相比,具有以下优点及有益效果:
本发明在管理系统微服务化背景模式下,各个管理系统可分布式部署在不同的服务器上,保证程序和数据的安全性;业务与日志记录数据库不对外开放情况下,同时在不影响管理人员正常业务流程处理的情况下,异步、安全、完整的记录下客服端对服务器的请求操作。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
结合附图1所示,一种基于分布式部署环境下异步监控客户端操作日志的方法,包括:
步骤S1、基于Maven+SpringBoot搭建web项目公共包,例如取名为morefun-commom,在morefun-commom包中通过自定义注解@interface创建自定义日志标签接口SysLog,在自定义日志标签接口中声明属性,用于说明当前操作详情;例如:
String module()default"";//所属微服务系统
String value()default"";//业务操作描述
步骤S2、在morefun-commom包中创建事件处理模型javaBean,事件处理模型javaBean用于将从客户端传输到服务的请求转化为事件处理模型对象,方便统一管理并存储到redis中;例如:
private int type;//事件的类型
private String jsonObject;//事件JSON对象
private String systemType;//触发事件的系统
private Map<String,String>extra=new HashMap<>();//附加数据
步骤S3、在morefun-commom包中创建事件生成器接口interface eventproducer,并声明事件生成处理方法exect();
boolean exect(final EventModel eventModel);
步骤S4、在morefun-commom包中创建基于SpringAop的切面编程类,并将自定义日志标签接口SysLog作为切入点进行拦截,并使用环绕通知方式,处理操作日志读取问题;
@Pointcut("@annotation(com.cms.common.annotation.SysLog)")//这个是切面的切入点
public void logPointCut(){
}
@Around("logPointCut()")//这个标签就标志着这个是一个环绕通知的方式
public Object around(ProceedingJoinPoint point){
point.proceed()//执行主业务
//将需要记录的操作日志信息转换为事件模型对象
EventModel eventModel=new EventModel(EventType.LOG);
eventModel.setJsonObject(JSONObject.toJSONString(sysLogDto));
//将带有操作日志的事件模型进行创建事件
eventProducer.exect(eventModel);
}
步骤S5、在morefun-commom包中通过事件生成器接口interface eventproducer创建操作日志事件生成器类LogEventProducer,并在事件生成处理方法exect()中创建新的线程将包含操作日志的事件处理模型javaBean写入到redis队列中,将创建的所有的事件处理模型javaBean全部写入到redis中,通过其中定义的属性private int type(事件的类型),来区分该事件是否属于操作日志的事件;
步骤S6、将morefun-common包中封装成一个公共Jar,用于其他微服务管理工程引入,在需要进行操作日志记录点添加注解标签标记@SysLog完成对操作日志的收集记录;
@SysLog(module="统一登录平台",value="用户登录")
public JSONObject authLogin(){
}
以上是日志事件收集工作,以下为日志事件持久化工作。
步骤S7、创建SpringBoot的web工程morefun-consumer,web工程morefun-consumer用于处理操作日志事件并持久化到mysql数据库;
步骤S8、在web工程morefun-consumer中定义事件处理器接口interfaceEventHandler并声明事件处理方法doHander;
void doHander(EventModel model)
以及定义事件处理分发器接口interface EventDispatcher并声明事件分发器处理方法;
void dispatcher(int type,List<EventHandler>eventHandlerList);
事件处理分发器接口interface EventDispatcher创建操作日志事件处理分发器类LogEventDispatcher,用于实现分配方法dispatcher的业务处理逻辑;创建新的线程,进行监听redis消息队列中的存储的事件。通过调用操作日志处理事件类LogEventHandler中的事件处理方法doHander完成对操作日志的处理。这个是监听redis中的事件,如果redis中有日志事件,则按照步骤9进行处理)
步骤9、在morefun-consumer工程中实现事件处理器接口interfaceEventHandler创建操作日志处理事件类LogEventHandler;并在事件处理方法doHander中完成对操作日志业务操作并持久化到MySql数据库中。
采用异步消息队列方式处理并记录用户日志,不影响正常的业务操作并且能完整的记录下客户端发起的服务请求;采用redis作为日志消息队列中间存储服务器,满足在分布式部署环境状态下日志保存数据库以及各个微服务系统不对外开放;结合面向切面编程和标签化编程,简化开发过程;确保数据的安全性、完整性以及业务微服务之间的松耦合性。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (3)
1.一种基于分布式部署环境下异步监控客户端操作日志的方法,其特征在于,包括:
步骤A、基于Maven+SpringBoot搭建web项目公共包,在web项目公共包中创建自定义日志标签接口SysLog、事件处理模型javaBean、事件生成器接口interface eventproducer;
步骤B、在web项目公共包中创建基于SpringAop的切面编程类,并将自定义日志标签接口SysLog作为切入点进行拦截,并使用环绕通知方式,处理操作日志读取问题;
步骤C、通过事件生成器接口interface eventproducer创建操作日志事件生成器类LogEventProducer,并在事件生成处理方法exect()中创建新的线程将包含操作日志的事件处理模型javaBean写入到redis队列中;
步骤D、将web项目公共包中封装成一个公共Jar,用于其他微服务管理工程引入,在需要进行操作日志记录点添加注解标签标记@SysLog完成对操作日志的收集记录;
步骤E、处理操作日志事件并持久化到mysql数据库。
2.根据权利要求1所述的基于分布式部署环境下异步监控客户端操作日志的方法,其特征在于,所述步骤A具体包括:
步骤A1、基于Maven+SpringBoot搭建web项目公共包,在web项目公共包中创建自定义日志标签接口SysLog,在自定义日志标签接口SysLog中声明属性,用于说明当前操作详情;
步骤A2、在web项目公共包中创建事件处理模型javaBean,事件处理模型javaBean用于将从客户端传输到服务的请求转化为事件处理模型对象;
步骤A3、在web项目公共包中创建事件生成器接口interface eventproducer,并声明事件生成处理方法exect()。
3.根据权利要求2所述的基于分布式部署环境下异步监控客户端操作日志的方法,其特征在于,所述步骤E具体包括:
步骤E1、创建SpringBoot的web工程morefun-consumer,web工程morefun-consumer用于处理操作日志事件并持久化到mysql数据库;
步骤E2、在web工程morefun-consumer中定义事件处理器接口interfaceEventHandler并声明事件处理方法doHander;以及定义事件处理分发器接口interfaceEventDispatcher并声明事件分发器处理方法;事件处理分发器接口interfaceEventDispatcher创建操作日志事件处理分发器类LogEventDispatcher,用于实现分配方法dispatcher的业务处理逻辑;事件处理器接口interface EventHandler创建操作日志处理事件类LogEventHandler;创建新的线程监听redis消息队列中的存储事件,以及调用操作日志处理事件类LogEventHandler中的事件处理方法doHander完成对操作日志的处理并持久化到MySql数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210457945.0A CN114780348B (zh) | 2022-04-28 | 2022-04-28 | 基于分布式部署环境下异步监控客户端操作日志的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210457945.0A CN114780348B (zh) | 2022-04-28 | 2022-04-28 | 基于分布式部署环境下异步监控客户端操作日志的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114780348A true CN114780348A (zh) | 2022-07-22 |
CN114780348B CN114780348B (zh) | 2023-02-07 |
Family
ID=82432940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210457945.0A Active CN114780348B (zh) | 2022-04-28 | 2022-04-28 | 基于分布式部署环境下异步监控客户端操作日志的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780348B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590182A (zh) * | 2017-08-03 | 2018-01-16 | 华南理工大学 | 一种分布式日志收集方法 |
CN111123765A (zh) * | 2019-12-06 | 2020-05-08 | 山东电工电气集团有限公司 | 基于微服务的电缆隧道综合状态监控系统及其实现方法 |
CN114036167A (zh) * | 2021-11-15 | 2022-02-11 | 深圳市平行线信息科技有限公司 | 一种微服务中记录数据变更操作日志的方法 |
-
2022
- 2022-04-28 CN CN202210457945.0A patent/CN114780348B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590182A (zh) * | 2017-08-03 | 2018-01-16 | 华南理工大学 | 一种分布式日志收集方法 |
CN111123765A (zh) * | 2019-12-06 | 2020-05-08 | 山东电工电气集团有限公司 | 基于微服务的电缆隧道综合状态监控系统及其实现方法 |
CN114036167A (zh) * | 2021-11-15 | 2022-02-11 | 深圳市平行线信息科技有限公司 | 一种微服务中记录数据变更操作日志的方法 |
Non-Patent Citations (1)
Title |
---|
段洪杰: "办公网主机监控系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114780348B (zh) | 2023-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019134226A1 (zh) | 一种日志收集方法、装置、终端设备及存储介质 | |
US7743029B2 (en) | Log configuration and online deployment services | |
CN108595316B (zh) | 分布式应用的生命周期管理方法、管理器、设备和介质 | |
US7546606B2 (en) | System and method using a connector architecture for application integration | |
CN103559118B (zh) | 一种基于aop与注解信息系统的安全审计方法 | |
JP2023500228A (ja) | Mlベースのイベント・ハンドリング | |
US20170038919A1 (en) | Event-driven data processing system | |
US20070268822A1 (en) | Conformance control module | |
US7069184B1 (en) | Centralized monitoring and early warning operations console | |
CN113269547B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US20080059436A1 (en) | Providing a visual representation of a sub-set of a visual program | |
WO2016007679A1 (en) | Virtualized execution across distributed nodes | |
CN114327678A (zh) | 一种支持多引擎的实时数据处理系统及方法 | |
US20090063395A1 (en) | Mapping log sets between different log analysis tools in a problem determination environment | |
US5797007A (en) | Persistent object storage system with default object encoder/decoder | |
WO2003034183A2 (en) | System and method using a connector architecture for application integration | |
CN113127050B (zh) | 一种应用资源打包过程监控方法、装置、设备和介质 | |
CN113918357A (zh) | 业务处理方法及装置、存储介质、电子设备 | |
CN113778790A (zh) | 一种基于Zabbix的计算系统状态监控的方法和系统 | |
CN115934471A (zh) | 基于大数据的数据采集方法及大数据系统 | |
US20120159442A1 (en) | Auto-documenting based on real-time analysis of code execution | |
US6473769B1 (en) | Property linking in object-oriented computing environments | |
CN114780348B (zh) | 基于分布式部署环境下异步监控客户端操作日志的方法 | |
CN109614380A (zh) | 日志处理方法、系统、计算机设备及可读介质 | |
US20060282460A1 (en) | Method and system for generic data objects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |