一种用于分布式系统的日志采集分析方法技术方案

技术编号:28987588 阅读:15 留言:0更新日期:2021-06-23 09:39
本发明专利技术公开了一种用于分布式系统的日志采集分析方法,属于软件/数据处理技术领域。本发明专利技术的用于分布式系统的日志采集分析方法基于rsyslog进行日志的采集和存储,并通过goaccess进行日志分析,用户通过互联网访问nginx服务负载均衡,负载均衡将请求转发至后端应用服务,应用服务处理请求产生访问日志,日志数据通过rsyslog服务集中到一起进行格式化处理和存储,以既定的格式输出,由goaccess服务进行日志数据的解析和处理,并产生实时的分析结果。该发明专利技术的用于分布式系统的日志采集分析方法资源占用少,磁盘IO占用量低,实时性高,并能支撑1MB/s的日志量,即日亿级访问量,具有很好的推广应用价值。

【技术实现步骤摘要】
一种用于分布式系统的日志采集分析方法
本专利技术涉及软件/数据处理
,具体提供一种用于分布式系统的日志采集分析方法。
技术介绍
目前,常用的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服务进行日志数据的解析和处理,并产生实时的分析结果本文档来自技高网
...

【技术保护点】
1.一种用于分布式系统的日志采集分析方法,其特征在于:基于rsyslog进行日志的采集和存储,并通过goaccess进行日志分析,用户通过互联网访问nginx服务负载均衡,负载均衡将请求转发至后端应用服务,应用服务处理请求产生访问日志,日志数据通过rsyslog服务集中到一起进行格式化处理和存储,以既定的格式输出,由goaccess服务进行日志数据的解析和处理,并产生实时的分析结果。/n

【技术特征摘要】
1.一种用于分布式系统的日志采集分析方法,其特征在于:基于rsyslog进行日志的采集和存储,并通过goaccess进行日志分析,用户通过互联网访问nginx服务负载均衡,负载均衡将请求转发至后端应用服务,应用服务处理请求产生访问日志,日志数据通过rsyslog服务集中到一起进行格式化处理和存储,以既定的格式输出,由goaccess服务进行日志数据的解析和处理,并产生实时的分析结果。


2.根据权利要求1所述的用于分布式系统的日志采集分析方法,其特征在于:具体包括以下步骤:
S1、日志采集:基于rsyslog进行日志的采集;
S2、日志分析:日志经由rsyslog进行日志的采集后汇聚分流产生日志文件,由goaccess进行分析展示;
S3、整体流程展示:通过日志的流转过程展示整体流程。


3.根据权利要求2所述的用于分布式系统的日志采集分析方法,其特征在于:日志采集过程中,接收来自各种来源的输入,其中rsyslog支持tcp、udp协议采集nginx、tomcat多种来源不同格式的日志数据。


4.根据权利要求3所...

【专利技术属性】
技术研发人员:王海华桑成刚李振学
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1