CN113014661A - 一种用于分布式系统的日志采集分析方法 - Google Patents
一种用于分布式系统的日志采集分析方法 Download PDFInfo
- Publication number
- CN113014661A CN113014661A CN202110266537.2A CN202110266537A CN113014661A CN 113014661 A CN113014661 A CN 113014661A CN 202110266537 A CN202110266537 A CN 202110266537A CN 113014661 A CN113014661 A CN 113014661A
- Authority
- CN
- China
- Prior art keywords
- log
- rsyslog
- distributed system
- analysis
- logs
- 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
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于分布式系统的日志采集分析方法,属于软件/数据处理技术领域。本发明的用于分布式系统的日志采集分析方法基于rsyslog进行日志的采集和存储,并通过goaccess进行日志分析,用户通过互联网访问nginx服务负载均衡,负载均衡将请求转发至后端应用服务,应用服务处理请求产生访问日志,日志数据通过rsyslog服务集中到一起进行格式化处理和存储,以既定的格式输出,由goaccess服务进行日志数据的解析和处理,并产生实时的分析结果。该发明的用于分布式系统的日志采集分析方法资源占用少,磁盘IO占用量低,实时性高,并能支撑1MB/s的日志量,即日亿级访问量,具有很好的推广应用价值。
Description
技术领域
本发明涉及软件/数据处理技术领域,具体提供一种用于分布式系统的日志采集分析方法。
背景技术
目前,常用的web应用服务器有tomcat、nginx、Apache等,体量较小的应用一般只运行一个实例,日志的查看工作相对较为简单,登录一台服务器找到固定目录的一个日志文件查看即可。
但是,当应用的体量较大时,往往一两个应用服务器很难满足负载需求,从而会安装多个web应用服务器同时产生不同目录下的多个日志文件,甚至分散到不同主机上的不同目录下,负载均衡往往更多是随机轮询web应用服务器,如果为找日志中的有效信息需要在不同主机不同目录下的多个日志间不断切换,这就为日志的查看工作带来了极大的不便。
同时日志的分析工具一般也是基于更加集中的、有规律的日志进行分析,分散的、无规律的日志将很难分析出有效的结果,手工汇聚整理会造成大量人力浪费。
另外,常用的日志采集分析的方案ELK也存在一定的局限性,ELK是Elasticsearch、Logstash、Kibana三个核心组件的集成方案,该方案是生产实践中常用的组合,Logstash负责日志的搜集、分析、过滤,Elasticsearch提供存储能力并支持高效的全文检索,Kibana用图形化的界面展示日志的分析结果,该方案使用的组件较多,搭建过程较为复杂。特别是Logstash占用的资源较多,而且Logstash是基于定时器进行数据变化的检测,故而会产生数据采集的延迟,为了减少数据丢失的可能性一般还会引入消息队列,比如用kafka来缓存数据,这更增加了方案的链路和使用难度,不利于较大规模系统的日志采集和分析。而传统应用的日志往往分散在不同的主机上,不利于日志汇集及分析,并且没有统一的轮转切割规范,导致产生的数据分析结果也很难具有参考价值。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种资源占用少,磁盘IO占用量低,实时性高,并能支撑1MB/s的日志量,即日亿级访问量的用于分布式系统的日志采集分析方法。
为实现上述目的,本发明提供了如下技术方案:
一种用于分布式系统的日志采集分析方法,基于rsyslog进行日志的采集和存储,并通过goaccess进行日志分析,用户通过互联网访问nginx服务负载均衡,负载均衡将请求转发至后端应用服务,应用服务处理请求产生访问日志,日志数据通过rsyslog服务集中到一起进行格式化处理和存储,以既定的格式输出,由goaccess服务进行日志数据的解析和处理,并产生实时的分析结果。
作为优选,该用于分布式系统的日志采集分析方法具体包括以下步骤:
S1、日志采集:基于rsyslog进行日志的采集;
S2、日志分析:日志经由rsyslog进行日志的采集后汇聚分流产生日志文件,由goaccess进行分析展示;
S3、整体流程展示:通过日志的流转过程展示整体流程。
作为优选,日志采集过程中,接收来自各种来源的输入,其中rsyslog支持tcp、udp协议采集nginx、tomcat多种来源不同格式的日志数据。
作为优选,产生日志的应用服务器不存储日志,日志产生后从内存通过TCP或UDP协议传输到日志服务器,由日志服务器的rsyslog统一规划存储及轮转。
Rsyslog是一个syslogd的多线程增强版。它提供高性能、极好的安全功能和模块化设计。虽然基于常规的syslogd,但rsyslog提升多方面的功能,本方法将基于rsyslog进行日志的采集和存储。目前最常用的日志是各web应用产生的运行日志,常规方式是单独存储在web服务所在主机上。由于日志的采集、存储及分析会占用一定量的cpu、磁盘IO,本方案是将rsyslog部署在一台独立的主机上,避免与应用服务器共用服务器,减少rsyslog的密集型磁盘IO对于应用的影响,goaccess可与rsyslog部署在同一台主机便于日志分析。产生日志的应用服务器不存储日志,日志产生后直接从内存通过TCP或者UDP协议传输到日志服务器,由日志服务器的rsyslog统一规划存储及轮转。
作为优选,日志采集过程中转换日志数据,设定规则将采集的日志数据进行有效的过滤,保留有效的日志数据,并通过规则进行整理排序。
rsyslog通过设定不同规则和模板来接收不同来源的日志,并输出到不同的目的地,可以输出到数据库、文件、消息队列等目的地,本方法的日志分析环节采用goaccess是基于日志文件的,所以rsyslog采用输出到日志文件的方式。
作为优选,日志采集过程中将转换后的结果数据输出到不同的目的地,包括数据库、文本文件和消息队列。
日志最终持久化的目的地跟后续的日志分析环节有紧密的联系,存储的形式,规则,磁盘占用情况都对日志的分析有着重要的影响。
作为优选,日志分析过程中,goaccess产生html报告,支持实时日志分析报告。
goaccess是一款开源的且具有交互视图界面的实时Web日志分析工具。goaccess可以产生html报告,也支持产生实时日志分析报告,通过浏览器进行查看,其原理是检测日志文件变化,将增量数据加载到缓存中进行分析,并产生实时分析结果。
以守护进程的方式开启goaccess,并设定源日志文件地址、目的html分析报告地址等配置项,进程将持续实时的产生日志分析报告,将产生的html格式的分析报告通过web服务发布,通过浏览器访问web服务即可看到实时的日志分析结果。
作为优选,整体流程展示由应用服务器产生,产生的不同格式的日志通过tcp、udp协议传输到日志服务器,日志服务器的rsyslog服务负责接收日志,并将日志转换成既定的格式并持久化到日志文件。
与现有技术相比,本发明的用于分布式系统的日志采集分析方法具有以下突出的有益效果:
(一)资源占用少。使用一台主机既能完成日志的采集、存储、实时分析全流程作业;
(二)磁盘IO占用量低。日志传输链路短,应用服务器直接通过TCP/UDP将日志传输到日志服务器不产生IO,不需要消息队列等组件的中转,减少同一数据的多次磁盘IO;
(三)实时性高。从日志的产生、存储到分析都是基于增量产生结果,图形界面实时展示;
(四)能支撑1MB/s的日志量,即日亿级访问量,具有良好的推广应用价值。
附图说明
图1是本发明所述用于分布式系统的日志采集分析方法的流程图。
具体实施方式
下面将结合附图和实施例,对本发明的用于分布式系统的日志采集分析方法作进一步详细说明。
实施例
如图1所示,本发明的用于分布式系统的日志采集分析方法,基于rsyslog进行日志的采集和存储,并通过goaccess进行日志分析,用户通过互联网访问nginx服务负载均衡,负载均衡将请求转发至后端应用服务,应用服务处理请求产生访问日志,日志数据通过rsyslog服务集中到一起进行格式化处理和存储,以既定的格式输出,由goaccess服务进行日志数据的解析和处理,并产生实时的分析结果,具体包括以下步骤:
S1、日志采集:基于rsyslog进行日志的采集。
日志采集过程中,接收来自各种来源的输入,其中rsyslog支持tcp、udp协议采集nginx、tomcat多种来源不同格式的日志数据。产生日志的应用服务器不存储日志,日志产生后从内存通过TCP或UDP协议传输到日志服务器,由日志服务器的rsyslog统一规划存储及轮转。Rsyslog是一个syslogd的多线程增强版。它提供高性能、极好的安全功能和模块化设计。虽然基于常规的syslogd,但rsyslog提升多方面的功能,本方法将基于rsyslog进行日志的采集和存储。目前最常用的日志是各web应用产生的运行日志,常规方式是单独存储在web服务所在主机上。由于日志的采集、存储及分析会占用一定量的cpu、磁盘IO,本方案是将rsyslog部署在一台独立的主机上,避免与应用服务器共用服务器,减少rsyslog的密集型磁盘IO对于应用的影响,goaccess可与rsyslog部署在同一台主机便于日志分析。产生日志的应用服务器不存储日志,日志产生后直接从内存通过TCP或者UDP协议传输到日志服务器,由日志服务器的rsyslog统一规划存储及轮转。
日志采集过程中转换日志数据,设定规则将采集的日志数据进行有效的过滤,保留有效的日志数据,并通过规则进行整理排序。rsyslog通过设定不同规则和模板来接收不同来源的日志,并输出到不同的目的地,可以输出到数据库、文件、消息队列等目的地,本方法的日志分析环节采用goaccess是基于日志文件的,所以rsyslog采用输出到日志文件的方式。
规则定义rsyslog将不同来源的日志按照一定的规则进行分流,即,将日志产生端的日志根据规则名称输出到不同的目的端,从而实现多源日志的汇聚。
规则样例如下:
local1.* ?RemoteLogs;myformat
模板是rsyslog一个重要的特性,它可以让用户自定义输入流格式,同样也可以用于动态生成日志文件,也就是轮转,比如按日期定义日志,rsyslog就会每天进行日志轮转,将日志输出到当天的日志文件。模板样例如下:
$template myformat,"%msg:2:$%[%$year%-%$month%-%$day%%timegenerated:8:$%]\n"
$ActionFileDefaultTemplate myformat
$templateRemoteLogs,"/var/log/%programname%_%$year%%$month%%$day%.log"
local1.*?RemoteLogs
&~。
日志采集过程中将转换后的结果数据输出到不同的目的地,包括数据库、文本文件和消息队列。日志最终持久化的目的地跟后续的日志分析环节有紧密的联系,存储的形式,规则,磁盘占用情况都对日志的分析有着重要的影响。
S2、日志分析:日志经由rsyslog进行日志的采集后汇聚分流产生日志文件,由goaccess进行分析展示。
日志分析过程中,goaccess产生html报告,支持实时日志分析报告。goaccess是一款开源的且具有交互视图界面的实时Web日志分析工具。goaccess可以产生html报告,也支持产生实时日志分析报告,通过浏览器进行查看,其原理是检测日志文件变化,将增量数据加载到缓存中进行分析,并产生实时分析结果。以守护进程的方式开启goaccess,并设定源日志文件地址、目的html分析报告地址等配置项,进程将持续实时的产生日志分析报告,将产生的html格式的分析报告通过web服务发布,通过浏览器访问web服务即可看到实时的日志分析结果。goaccess-f/var/goaccess.log-o/home/deploy/www/goaccess.html--port8080--pid-file/var/run/goaccess.pid--real-time-html–daemonize。
S3、整体流程展示:通过日志的流转过程展示整体流程。
整体流程展示由应用服务器产生,产生的不同格式的日志通过tcp、udp协议传输到日志服务器,日志服务器的rsyslog服务负责接收日志,并将日志转换成既定的格式并持久化到日志文件。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (8)
1.一种用于分布式系统的日志采集分析方法,其特征在于:基于rsyslog进行日志的采集和存储,并通过goaccess进行日志分析,用户通过互联网访问nginx服务负载均衡,负载均衡将请求转发至后端应用服务,应用服务处理请求产生访问日志,日志数据通过rsyslog服务集中到一起进行格式化处理和存储,以既定的格式输出,由goaccess服务进行日志数据的解析和处理,并产生实时的分析结果。
2.根据权利要求1所述的用于分布式系统的日志采集分析方法,其特征在于:具体包括以下步骤:
S1、日志采集:基于rsyslog进行日志的采集;
S2、日志分析:日志经由rsyslog进行日志的采集后汇聚分流产生日志文件,由goaccess进行分析展示;
S3、整体流程展示:通过日志的流转过程展示整体流程。
3.根据权利要求2所述的用于分布式系统的日志采集分析方法,其特征在于:日志采集过程中,接收来自各种来源的输入,其中rsyslog支持tcp、udp协议采集nginx、tomcat多种来源不同格式的日志数据。
4.根据权利要求3所述的用于分布式系统的日志采集分析方法,其特征在于:产生日志的应用服务器不存储日志,日志产生后从内存通过TCP或UDP协议传输到日志服务器,由日志服务器的rsyslog统一规划存储及轮转。
5.根据权利要求4所述的用于分布式系统的日志采集分析方法,其特征在于:日志采集过程中转换日志数据,设定规则将采集的日志数据进行有效的过滤,保留有效的日志数据,并通过规则进行整理排序。
6.根据权利要求5所述的用于分布式系统的日志采集分析方法,其特征在于:日志采集过程中将转换后的结果数据输出到不同的目的地,包括数据库、文本文件和消息队列。
7.根据权利要求6所述的用于分布式系统的日志采集分析方法,其特征在于:日志分析过程中,goaccess产生html报告,支持实时日志分析报告。
8.根据权利要求7所述的用于分布式系统的日志采集分析方法,其特征在于:整体流程展示由应用服务器产生,产生的不同格式的日志通过tcp、udp协议传输到日志服务器,日志服务器的rsyslog服务负责接收日志,并将日志转换成既定的格式并持久化到日志文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110266537.2A CN113014661A (zh) | 2021-03-10 | 2021-03-10 | 一种用于分布式系统的日志采集分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110266537.2A CN113014661A (zh) | 2021-03-10 | 2021-03-10 | 一种用于分布式系统的日志采集分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113014661A true CN113014661A (zh) | 2021-06-22 |
Family
ID=76405416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110266537.2A Pending CN113014661A (zh) | 2021-03-10 | 2021-03-10 | 一种用于分布式系统的日志采集分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113014661A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023183095A1 (en) * | 2022-03-23 | 2023-09-28 | Microsoft Technology Licensing, Llc. | Structured storage of access data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015149062A1 (en) * | 2014-03-28 | 2015-10-01 | Zitovault, Inc. | System and method for predicting impending cyber security events using multi channel behavioral analysis in a distributed computing environment |
CN107689999A (zh) * | 2017-09-14 | 2018-02-13 | 北纬通信科技南京有限责任公司 | 一种云平台全自动计算方法及装置 |
CN110096418A (zh) * | 2019-03-21 | 2019-08-06 | 平安普惠企业管理有限公司 | 业务日志分析方法、装置、计算机设备和存储介质 |
CN111930886A (zh) * | 2020-07-06 | 2020-11-13 | 国网江西省电力有限公司电力科学研究院 | 日志处理方法、系统、存储介质及计算机设备 |
-
2021
- 2021-03-10 CN CN202110266537.2A patent/CN113014661A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015149062A1 (en) * | 2014-03-28 | 2015-10-01 | Zitovault, Inc. | System and method for predicting impending cyber security events using multi channel behavioral analysis in a distributed computing environment |
CN107689999A (zh) * | 2017-09-14 | 2018-02-13 | 北纬通信科技南京有限责任公司 | 一种云平台全自动计算方法及装置 |
CN110096418A (zh) * | 2019-03-21 | 2019-08-06 | 平安普惠企业管理有限公司 | 业务日志分析方法、装置、计算机设备和存储介质 |
CN111930886A (zh) * | 2020-07-06 | 2020-11-13 | 国网江西省电力有限公司电力科学研究院 | 日志处理方法、系统、存储介质及计算机设备 |
Non-Patent Citations (1)
Title |
---|
OOPS: "使用goaccess对Nginx日志简单分析", 《博客园》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023183095A1 (en) * | 2022-03-23 | 2023-09-28 | Microsoft Technology Licensing, Llc. | Structured storage of access data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5160556B2 (ja) | 分散型コンピュータネットワークに基づくログファイル分析方法およびシステム | |
US6148298A (en) | System and method for aggregating distributed data | |
US6694307B2 (en) | System for collecting specific information from several sources of unstructured digitized data | |
CN100596353C (zh) | 提供日志服务的方法及系统 | |
Aye | Web log cleaning for mining of web usage patterns | |
CN111241078A (zh) | 数据分析系统、数据分析的方法及装置 | |
CN101645032B (zh) | 应用服务器的性能分析方法和应用服务器 | |
CN110543571A (zh) | 用于水利信息化的知识图谱构建方法以及装置 | |
CN102799622A (zh) | 基于MapReduce扩展框架的分布式SQL查询方法 | |
CN108228743A (zh) | 一种实时大数据搜索引擎系统 | |
WO2012031259A1 (en) | Dynamic parsing rules | |
CN111125044A (zh) | 一种elk日志监控的改进方法 | |
CN110975293A (zh) | 建立资源引用关系表的方法、装置、服务器及介质 | |
CN113014661A (zh) | 一种用于分布式系统的日志采集分析方法 | |
CN114218211A (zh) | 数据处理系统、方法、计算机设备以及可读存储介质 | |
CN112818070A (zh) | 基于全域数据字典的数据查询方法、装置及电子设备 | |
CN112597369A (zh) | 基于改良云平台的网页蜘蛛主题式搜索系统 | |
CN101763392A (zh) | 检索架构和检索方法 | |
US8856152B2 (en) | Apparatus and method for visualizing data | |
CN112579552A (zh) | 日志存储及调用方法、装置及系统 | |
CN111723262A (zh) | 一种批量合并网络新闻标题、摘要、正文的系统和方法 | |
Shao et al. | Optimization research of information management system based on big data technology | |
KR20210045172A (ko) | 축산 질병 발생 분석을 위한 빅 데이터 관리 및 시스템 | |
CN111104558A (zh) | 一种分布式的多源数据处理方法及系统 | |
CN112306992A (zh) | 一种基于互联网的大数据平台 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210622 |