CN112181927A - 一种微服务架构下的日志审计方法 - Google Patents
一种微服务架构下的日志审计方法 Download PDFInfo
- Publication number
- CN112181927A CN112181927A CN201910601573.2A CN201910601573A CN112181927A CN 112181927 A CN112181927 A CN 112181927A CN 201910601573 A CN201910601573 A CN 201910601573A CN 112181927 A CN112181927 A CN 112181927A
- Authority
- CN
- China
- Prior art keywords
- log
- service
- logs
- request
- guid
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种微服务架构下的日志审计方法,首先提供一个公共的SDK包,作为日志输出的公共组件,使用open zipkin实现对请求链路的记录与跟踪,为每一个服务间交互请求生成唯一guid进行关联,将从中获取到相关guid存入到服务交互日志中实现日志的全链路关联,在运行时将日志内容输出到服务的文件目录下;日志过滤模块匀速消费缓存队列中的日志内容,针对不同topic的日志进行针对性的过滤与转换后存储到es集群中;最后通过kibana和运维管理平台实现日志内容的展示和告警。本发明通过日志中心提供对日志的实时采集、分析、展示能力,并通过日志中心及时了解系统性能、用户行为,保障微服务的高可靠运行。
Description
技术领域
本发明涉及计算机系统开发技术领域,具体涉及一种基于微服务架构的日志审计的方法。
背景技术
业务系统、设备及应用程序在运行过程中实时产生,记录运行内容的文本称为日志,每条日志记录一般都会包含日期,时间,用户和内容等信息描述。用户或者运维管理人员可以通过查看日志来检查系统错误发生的原因,统计系统的活动记录,或者找出用户的异常操作。
由于系统架构的日趋庞大,以及系统架构复杂性愈发增加,由此会产生大量的日志信息。很多企业都开始将整体型应用拆分为微服务形式。而在拆分大型应用时,我们需要建立松散耦合的模块,从而保证其便于测试并降低变更风险。另外,这些模块亦可独立部署以实现横向规模扩展。然而,这也会带来一些初看并不严重,但长远影响极其重大的问题——其中的典型代表就是日志记录。
在微服务的架构下,各个服务的日志是独立记录在服务器硬盘上,而服务间交互通过http这种无状态协议进行,导致日志与日志间难以产生关联,增加了运维管理人员排查日志的复杂度。这些日志需要存储以备查询和分析,而传统的关系数据库对日志存储、查询、分析的能力有限。
随着软件系统的容量、复杂度日趋提高,原有的日志管理模式存在的问题,在采集方面过去主要采用http接口的方式,由客户端(业务系统、服务器等)向服务端(审计平台)主动推送日志,这样的高耦合导致服务端接口改变时所有的客户端需要随之改变。日志监控方面在微服务架构下,过去的单节点发送日志的形式已经难以监控到一个请求链路上的所有日志状态。因此,需要考虑一种大容量复杂场景的日志审计方案。
发明内容
本发明的目的是提出一种高效的微服务架构下的日志审计方法,通过自定协议的方式实现日志审计。
本发明的技术方案如下:
一种微服务架构下的日志审计方法,其特征在于:
(1)首先提供一个公共的SDK包,作为日志输出的公共组件,其功能包含:服务链路追踪,服务请求过程中生成唯一标识符并记录;日志输出,根据不同类型日志自动修改日志格式并输出到消息队列;
(2)使用open zipkin实现对请求链路的记录与跟踪,zipkin在跟踪的过程中为每一个服务间交互请求生成唯一guid进行关联,将从中获取到相关guid存入到服务交互日志中实现日志的全链路关联;
(3)业务系统在集成了日志组件后,在运行时将日志内容输出到服务的文件目录下;
(4)日志过滤模块将匀速消费缓存队列中的日志内容,针对不同topic的日志进行针对性的过滤与转换后存储到es集群中;
(5)最后通过kibana和运维管理平台实现日志内容的展示和告警。
日志中心在微服务架构中起到了至关重要的作用,它是微服务监控的一个非常重要的切入点,本发明以技术实践为蓝本阐述了其设计、实现与关键配置,并详细阐述了日志审计个关键步骤和一些考量原则。采用这样的架构和原则,可以通过日志中心提供对日志的实时采集、分析、展示能力,并通过日志中心可以及时了解系统性能、用户行为,保障微服务的高可靠运行。
具体实施方式
本发明根据日志的产生源,将日志分类为系统日志和应用日志,其中系统日志多为中间件、开源组件等运行时产生的日志,此类日志信息多为格式、内容、位置单体固定,需要在解析时针对不同的组件进行专门的日志分析,应用日志一般是由开发人员在项目中开发的应用程序、业务系统,此类日志可以通过事前协议,产生出固定的日志内容。
应用日志可以通过在系统架构的不同层次分为用户操作日志,服务交互日志,应用运行日志和数据操作日志。
其中用户操作日志由客户端记录,服务端生产,主要记录用户对于应用程序的操作,比如查询,新增,修改,删除等事件。
服务交互日志是指应用程序或者微服务间的交互,根据执行动作主要分为响应和请求两种。根据不同协议会有不同的交互形式,例如http协议交互,socket协议交互,mq协议交互等。
应用运行日志是指业务系统在运行时,由自身主动发起的动作的日志记录,例如系统启动、定时任务等日志。
数据操作日志是业务系统对数据的修改记录,针对不同的数据源,包括关系化数据库、非关系化数据库、文件系统等,例如oracle、redis、MongoDB、elasticsearch、fastDFS等。
当根据不同情况分解出多种日志类型时,业务逻辑最终需要由一个或者多个组件构成。而在追踪这些事务时,我们往往很难对其加以识别。因此,需要为每个事务生成一个惟一标识符,并利用其关联事件以及追踪各项事务。
最后审计日志记录程序中的日志事件应包括:
1、操作系统(OS)事件:
启动和关闭系统;
启动和停止服务;
网络连接更改或失败;
更改或尝试更改系统安全设置和控件。
2、操作系统(OS)审核记录:
登录尝试(成功或不成功);
登录后执行的功能(例如,读取或更新关键文件,软件安装);
帐户更改(例如,帐户创建和删除,帐户权限分配);
成功/失败使用特权帐户。
3、应用帐户信息:
成功和失败的应用程序验证尝试;
应用程序帐户更改(例如,帐户创建和删除,帐户权限分配);
使用应用程序权限。
4、应用操作:
应用程序启动和关闭;
应用失败;
主要应用配置更改:应用程序事务,例如,电子邮件服务器,记录每封电子邮件的发件人,收件人,主题名称和附件名称;Web服务器记录请求的每个URL以及服务器提供的响应类型;业务应用程序记录每个用户访问哪些财务记录。
日志系统分为日志输出,日志采集,缓存队列,日志过滤,日志存储,日志展示及告警六个模块,可以达到一个应用程序或业务系统从应用编码到应用上线到应用运维一个生命周期的功能全覆盖。具体实现过程如下:
首先需要提供一个公共的SDK包,作为日志输出的公共组件,其功能包含:1、服务链路追踪,服务请求过程中生成唯一标识符并记录。2、日志输出,根据不同类型日志自动修改日志格式并输出到消息队列。微服务客户端需要接入此公共SDK,通过AOP拦截的方式,实现在业务编码过程中不需要考虑日志的输出与格式,达到全自动的日志拦截与记录。
使用open zipkin实现对请求链路的记录与跟踪,zipkin在跟踪的过程中会为每一个服务间交互请求生成唯一guid进行关联,将从中获取到相关guid存入到服务交互日志中实现日志的全链路关联。
业务系统在集成了日志组件后,会在运行时将日志内容输出到服务的文件目录下。
使用Kafka进行日志传输的原因在于其有数据缓存的能力,并且它的数据可重复消费,Kafka本身具有高可用性,能够很好的防止数据丢失,其次由于根据业务不同的需求,不同时间段内产生的日志数量也大有不同,通过kafka可以实现高并发情况下的日志缓存,延迟日志过滤模块的消费。
日志过滤模块将匀速消费缓存队列中的日志内容,针对不同topic的日志进行针对性的过滤与转换后存储到es集群中。
最后通过kibana和运维管理平台实现日志内容的展示和告警。
Claims (1)
1.一种微服务架构下的日志审计方法,其特征在于:
(1)首先提供一个公共的SDK包,作为日志输出的公共组件,其功能包含:服务链路追踪,服务请求过程中生成唯一标识符并记录;日志输出,根据不同类型日志自动修改日志格式并输出到消息队列;
(2)使用open zipkin实现对请求链路的记录与跟踪,zipkin在跟踪的过程中为每一个服务间交互请求生成唯一guid进行关联,将从中获取到相关guid存入到服务交互日志中实现日志的全链路关联;
(3)业务系统在集成了日志组件后,在运行时将日志内容输出到服务的文件目录下;
(4)日志过滤模块将匀速消费缓存队列中的日志内容,针对不同topic的日志进行针对性的过滤与转换后存储到es集群中;
(5)最后通过kibana和运维管理平台实现日志内容的展示和告警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910601573.2A CN112181927A (zh) | 2019-07-04 | 2019-07-04 | 一种微服务架构下的日志审计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910601573.2A CN112181927A (zh) | 2019-07-04 | 2019-07-04 | 一种微服务架构下的日志审计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112181927A true CN112181927A (zh) | 2021-01-05 |
Family
ID=73915188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910601573.2A Pending CN112181927A (zh) | 2019-07-04 | 2019-07-04 | 一种微服务架构下的日志审计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181927A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918426A (zh) * | 2021-12-09 | 2022-01-11 | 山东宁泓信息技术有限公司 | 一种实现Redis访问全链路跟踪的方法、系统及设备 |
CN115470090A (zh) * | 2022-09-27 | 2022-12-13 | 中邮消费金融有限公司 | 一种日志数据采集方法 |
-
2019
- 2019-07-04 CN CN201910601573.2A patent/CN112181927A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918426A (zh) * | 2021-12-09 | 2022-01-11 | 山东宁泓信息技术有限公司 | 一种实现Redis访问全链路跟踪的方法、系统及设备 |
CN115470090A (zh) * | 2022-09-27 | 2022-12-13 | 中邮消费金融有限公司 | 一种日志数据采集方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112313916B (zh) | 一种融合区块链技术拟态存储防篡改日志的方法及系统 | |
US10558515B2 (en) | Policy based dynamic data collection for problem analysis | |
US9286368B2 (en) | Linking framework for information technology management | |
US20120209898A1 (en) | Distributed file system logging | |
US20090031174A1 (en) | Server outage data management | |
CN105099740A (zh) | 一种日志管理系统及日志采集方法 | |
US8434095B2 (en) | Microblogging based dynamic transaction tracking for composite application flow | |
CN111522703B (zh) | 监控访问请求的方法、设备和计算机程序产品 | |
CN105739987A (zh) | 面向SOA的快速构建JavaWeb应用的系统框架 | |
US8738767B2 (en) | Mainframe management console monitoring | |
JPWO2007074680A1 (ja) | トランザクション処理のロギングを行うためのシステム、方法、およびプログラムならびにシステム構築方法 | |
CN103297485B (zh) | 分布式缓存自动管理系统和分布式缓存自动管理方法 | |
US8738768B2 (en) | Multiple destinations for mainframe event monitoring | |
CN112181927A (zh) | 一种微服务架构下的日志审计方法 | |
CN111694743A (zh) | 业务系统的检测方法及装置 | |
EP3384391A1 (en) | Real-time change data from disparate sources | |
CN115757552A (zh) | 基于分布式微服务的银行历史数据管理系统 | |
CN116010494A (zh) | 一种支持异构数据源的数据交换系统 | |
CN111611094A (zh) | 对异常mq信息的监控及管理方法 | |
CN114338684A (zh) | 一种能源管理系统及方法 | |
WO2017007981A1 (en) | Action correlation framework | |
CN113536304A (zh) | 一种基于运维审计系统的防绕行方法及设备 | |
CN117609174A (zh) | 一种可读性操作日志记录系统及方法 | |
CN117271584A (zh) | 数据处理方法及装置、计算机可读存储介质和电子设备 | |
US20170060704A1 (en) | Synchronization of a disaster-recovery system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210105 |