CN108512704A - 日志的处理方法及装置 - Google Patents
日志的处理方法及装置 Download PDFInfo
- Publication number
- CN108512704A CN108512704A CN201810312062.4A CN201810312062A CN108512704A CN 108512704 A CN108512704 A CN 108512704A CN 201810312062 A CN201810312062 A CN 201810312062A CN 108512704 A CN108512704 A CN 108512704A
- Authority
- CN
- China
- Prior art keywords
- daily record
- output
- different
- conditional code
- business
- 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
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种日志的处理方法及装置,其中,该方法包括:针对不同的系统日志设置不同的输出决策,后续依据当前输出日志对应的输出决策处理该日志,可选地,通过状态码区分不同类型的日志,采用上述技术方案,解决了相关技术存储或读取系统输出日志时浪费系统资源的问题,将重要日志和不重要日志进行不同方式的存储,读取时效率也高,节省了系统资源。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种日志的处理方法及装置。
背景技术
在相关技术中,超文本传输协议HTTP和反向代理服务器Nginx是网络基础设施中非常重要的一环,其重要程度可以从其绝对优势的市场占用率看出来。Nginx的特点是高性能,并且最常见的用法是作为HTTP代理服务器proxy存在。在极高性能下,Nginx会产生大量的日志输出。现代的服务器CPU一般很强,除非是使用HTTPS,否则服务器CPU到达瓶颈之前一般输入输出IO首先到达瓶颈。而服务器的IO瓶颈一直是困扰Nginx在极高负载情况下使用者的问题,尤其是还涉及到日志收集和分析系统对日志的二遍处理带来的IO加倍的损耗。
Nginx专门开发了对所有访问日志accesslog进行压缩的功能。但是这种机制显然在企业中是不能很好的适应业务需求的,企业的需求通常更加复杂,与业务相关性比较大的。目前Nginx的日志在大部分企业中的处理方式是全量输出,然后有专门的收集装置进行数据收集(全量或者满足条件的)和日志回滚,如果启用日志压缩,那么就意味着收集之前要先解压缩,也就是两倍的CPU压缩损耗,所以一般在实际应用中都不会开启压缩功能。
在相关技术中,现代一线互联网企业的解决方案通常都是一个分级的日志系统,一部分收集到服务器,一部分放在本地。显然大量的普通数据放在本地,重要的放到服务器。大部分企业都应该使用这套日志模型,但是有一个问题是Nginx输出的不需要收集的日志和需要收集的日志一样,要么都是明文的要么都是压缩过的。这就导致了压缩功能的使用率较低。
针对相关技术存储或读取系统输出日志时浪费系统资源的问题,目前还没有有效的解决方案。
发明内容
本发明实施例提供了一种日志的处理方法及装置,以至少解决相关技术存储或读取系统输出日志时浪费系统资源的问题。
根据本发明的一个实施例,提供了一种日志的处理方法,该方法包括:确定不同类型的日志对应的不同输出决策;依据每种输出决策处理对应类型的日志。
根据本发明的另一个实施例,还提供了一种日志的处理装置,包括:确定模块,用于确定不同类型的日志对应的不同输出决策;处理模块,用于依据每种输出决策处理对应类型的日志。
根据本发明的另一个实施例,还提供了一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述实施例任一项中所述的方法。
根据本发明的另一个实施例,还提供了一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述实施例任一项中所述的方法。
通过本发明,针对不同的系统日志设置不同的输出决策,后续依据当前输出日志对应的输出决策处理该日志,可选地,通过状态码区分不同类型的日志,采用上述技术方案,解决了相关技术存储或读取系统输出日志时浪费系统资源的问题,将重要日志和不重要日志进行不同方式的存储,读取时效率也高,节省了系统资源。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的日志的处理方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请文件的技术方案可以应用于超文本传输协议和反向代理服务器Nginx(需要补充的是,超文本传输协议和反向代理服务器,是一个整体的技术术语)。应用场景可以是用户终端向Nginx发送业务请求,例如登陆网页,搜索文件等操作,Nginx在响应上述业务请求时,会生成系统日志,在输出系统日志时,依据预设的不同类型日志对应的不同输出决策进行处理。
实施例一
在本实施例中提供了一种运行于服务器设备的日志的处理方法,图1是根据本发明实施例的日志的处理方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,确定不同类型的日志对应的不同输出决策;
步骤S104,依据每种输出决策处理对应类型的日志。
通过上述步骤,针对不同的系统日志设置不同的输出决策,后续依据当前输出日志对应的输出决策处理该日志,可选地,通过状态码区分不同类型的日志,采用上述技术方案,解决了相关技术存储或读取系统输出日志时浪费系统资源的问题,将重要日志和不重要日志进行不同方式的存储,读取时效率也高,节省了系统资源。
可选地,上述步骤的执行主体可以为服务器设备等,但不限于此。
可选地,步骤S102和步骤S104的执行顺序是可以互换的,即可以先执行步骤S104,然后再执行S102。
可选地,确定不同类型的日志对应的不同输出决策之前,确定不同类型的日志分别对应有不同的状态码,其中,该状态码用于指示日志对应的当前业务的执行状态是否异常。需要补充的是,在服务器接收到业务请求后,会输出当前业务请求的状态码,例如常见的超文本传输协议HTTP状态码404,用于指示服务器无法正常提供信息。即可以用不同的状态码来区分输出日志的类型,分别对应设置不同的输出决策。
可选地,依据每种输出决策处理对应类型的日志,包括:获取当前输出日志对应的业务的状态码;依据与该状态码对应的输出决策处理当前输出的日志。
可选地,依据与该状态码对应的输出决策处理当前输出的日志,包括:在该状态码指示当前业务处于正常时,以超过预设阈值的压缩率压缩当前日志;在该状态码指示当前业务处于异常时,以低于预设阈值的压缩率压缩当前日志,或者禁止压缩当前日志。需要补充的是,上述业务处于正常时,相关技术中反馈的是200类似的状态码。业务异常时,可以分为两种情况,一种类似业务可以执行,但是当前服务器网址发生了迁移,相关技术中反馈的可能是300类似的状态码;第二种情况较为严重,服务器无法提供相应服务,例如相关技术中反馈404的情形。即上述业务处于异常可以包括相关技术中的HTTP状态码为3XX,4XX,5XX或6XX等情况。
可选地,依据与该状态码对应的输出决策处理当前输出的日志,包括:在该状态码指示当前业务处于正常时,将当前日志存储至磁盘;在该状态码指示当前业务处于异常时,将当前日志存储至固态磁盘。需要说明的是,上述实施例意在将重要的日志(比如状态码显示业务异常对应的日志)存储在可以快速读取的位置。将不重要的日志,较为常见的日志(例如状态码显示业务正常对应的日志)存储在一般的磁盘中,后续不太可能读取该部分日志。
可选地,该方法应用于超文本传输协议和反向代理服务器Nginx。
下面结合本发明优选实施例进行详细说明。
本发明优选实施例立足于Nginx提供的日志功能和实际的业务需求的断裂,改动Nginx本体使得Nginx适应业务的日志系统,让Nginx本身就是企业级日志系统的一部分存在。解决的技术问题就是Nginx输出日志在压缩上同时识别业务模型,对业务关注的日志进行特殊处理。
本申请文件的技术方案取代Nginx原有的HTTP accesslog输出方式,设计并实现了根据HTTP不同状态码选择不同输出方案的系统,什么状态码对应什么样的输出决策是可以配置的,以此实现Nginx本体与业务的紧密相关。显然的正常流量,例如200,是可以压缩的,就会被导出到压缩输出引擎,并且由于其流量占比比较高,可以设置较高的压缩率(压缩率一共有十级)。其他的例如3XX的返回值,也比较常见,但是对业务的敏感性又不是特别大,就可以配置其导出到压缩率较低的输出。例如4XX的业务可用性相关的错误,对于业务来说就是需要及时知道的,并且出现的概率相对较小,就配置其输出到不需要压缩的输出文件。
采用上述技术方案,此日志系统通过配置接口与业务紧密联系,业务对于不同的HTTP状态有不同的日志输出需求都可以通过本系统的接口进行配置。根据状态码设置的不同的输出策略会被输出到不同的文件,以不同的压缩率和压缩方式输出。完美的与日志分析与收集系统进行业务层面的耦合。
由于在Nginx输出的时候就进行了大量压缩,输入输出IO就可以得到有效的控制,由于业务的日志分析引擎并不需要对关心的日志进行解包了,同时就节省了二次解压缩的CPU的损耗。同时本日志系统还实现了内部的日志回滚配置,就完全省去了外部的日志收集装置对日志的操作。可以说是将Nginx日志系统从技术和业务上提供了完整的分割和合理的接口。日志收集装置只需要配置好策略关心自己关心的输出文件就好,日志系统关心的输出文件的每一行都是他希望关心的,而不是像以前那样需要大量的判断和读取。由于省去了日志系统的全量读取的巨大IO开销,整套方案又进一步降低了系统的IO负载,有效的节省了线上资源。
本发明在技术上是重写了Nginx的HTTP日志子系统,设计了一套策略框架,并且与Nginx的配置系统联动,使得业务可以直接通过配置来将日志系统的性能与业务需求联动。策略框架根据配置选择策略。
在日志输出的时候,截断了原来Nginx的访问日志输出路径,加入了中间层,相当于引入了程序中常用的sink架构。中间层是实现了sink模型,这个模型可以设置让符合不同条件的日志输出到不同的消息目标(sink),并且实现了一系列的压缩目标(sink),例如符合一定条件的5级压缩输出到ssd磁盘,符合另外的条件的10级压缩输出到磁盘,符合另外的条件的不压缩输出到/tmp目录的内存文件系统。这些条件都是可以通过配置文件设置,条件是用HTTP请求的状态码进行区别。
本装置即使不使用配置策略系统,使用HTTP状态码对应的约定业务意义也能对大多数的业务的日志需求进行有效的IO和CPU优化。采用策略框架使得本系统能适应更加灵活的业务需求。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例二
在本实施例中还提供了一种日志处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
根据本发明的一个实施例,还提供了一种日志的处理装置,包括:确定模块,用于确定不同类型的日志对应的不同输出决策;处理模块,用于依据每种输出决策处理对应类型的日志。
可选地,在确定不同类型的日志对应的不同输出决策之前,所述确定模块还用于确定不同类型的日志分别对应有不同的状态码,其中,所述状态码用于指示日志对应的当前业务的执行状态是否异常。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例三
根据本发明的另一个实施例,还提供了一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述实施例任一项中所述的方法。
实施例四
根据本发明的另一个实施例,还提供了一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述实施例任一项中所述的方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种日志的处理方法,其特征在于,包括:
确定不同类型的日志对应的不同输出决策;
依据每种输出决策处理对应类型的日志。
2.根据权利要求1所述的方法,其特征在于,确定不同类型的日志对应的不同输出决策之前,所述方法包括:
确定不同类型的日志分别对应有不同的状态码,其中,所述状态码用于指示日志对应的当前业务的执行状态是否异常。
3.根据权利要求2所述的方法,其特征在于,依据每种输出决策处理对应类型的日志,包括:
获取当前输出日志对应的业务的状态码;
依据与所述状态码对应的输出决策处理当前输出的日志。
4.根据权利要求3所述的方法,其特征在于,依据与所述状态码对应的输出决策处理当前输出的日志,包括:
在所述状态码指示当前业务处于正常时,以超过预设阈值的压缩率压缩当前日志;
在所述状态码指示当前业务处于异常时,以低于预设阈值的压缩率压缩当前日志,或者禁止压缩当前日志。
5.根据权利要求3所述的方法,其特征在于,依据与所述状态码对应的输出决策处理当前输出的日志,包括:
在所述状态码指示当前业务处于正常时,将当前日志存储至磁盘;
在所述状态码指示当前业务处于异常时,将当前日志存储至固态磁盘。
6.根据权利要求1所述的方法,其特征在于,所述方法应用于超文本传输协议和反向代理服务器Nginx。
7.一种日志的处理装置,其特征在于,包括:
确定模块,用于确定不同类型的日志对应的不同输出决策;
处理模块,用于依据每种输出决策处理对应类型的日志。
8.根据权利要求7所述的装置,其特征在于,
在确定不同类型的日志对应的不同输出决策之前,所述确定模块还用于确定不同类型的日志分别对应有不同的状态码,其中,所述状态码用于指示日志对应的当前业务的执行状态是否异常。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810312062.4A CN108512704A (zh) | 2018-04-09 | 2018-04-09 | 日志的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810312062.4A CN108512704A (zh) | 2018-04-09 | 2018-04-09 | 日志的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108512704A true CN108512704A (zh) | 2018-09-07 |
Family
ID=63380976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810312062.4A Pending CN108512704A (zh) | 2018-04-09 | 2018-04-09 | 日志的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108512704A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080044145A (ko) * | 2006-11-15 | 2008-05-20 | 한국전자통신연구원 | 웹 로그 상호연관분석을 이용한 웹 애플리케이션 공격의침입 탐지 시스템 및 방법 |
CN105701237A (zh) * | 2016-02-23 | 2016-06-22 | 无锡中科富农物联科技有限公司 | Web访问日志处理方法 |
CN106649336A (zh) * | 2015-10-30 | 2017-05-10 | 华为数字技术(苏州)有限公司 | 一种日志压缩方法及日志处理设备、日志处理系统 |
CN106802904A (zh) * | 2015-11-26 | 2017-06-06 | 北京国双科技有限公司 | 日志处理方法、装置及系统 |
CN106815667A (zh) * | 2015-11-30 | 2017-06-09 | 胡凡 | 基于无线互联网的大型科研仪器实时监控及使用管理系统 |
US20180089188A1 (en) * | 2016-09-26 | 2018-03-29 | Splunk Inc. | Hash bucketing of data |
US20180095790A1 (en) * | 2016-09-30 | 2018-04-05 | Salesforce.Com, Inc. | Scheduling jobs for processing log files using a database system |
-
2018
- 2018-04-09 CN CN201810312062.4A patent/CN108512704A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080044145A (ko) * | 2006-11-15 | 2008-05-20 | 한국전자통신연구원 | 웹 로그 상호연관분석을 이용한 웹 애플리케이션 공격의침입 탐지 시스템 및 방법 |
CN106649336A (zh) * | 2015-10-30 | 2017-05-10 | 华为数字技术(苏州)有限公司 | 一种日志压缩方法及日志处理设备、日志处理系统 |
CN106802904A (zh) * | 2015-11-26 | 2017-06-06 | 北京国双科技有限公司 | 日志处理方法、装置及系统 |
CN106815667A (zh) * | 2015-11-30 | 2017-06-09 | 胡凡 | 基于无线互联网的大型科研仪器实时监控及使用管理系统 |
CN105701237A (zh) * | 2016-02-23 | 2016-06-22 | 无锡中科富农物联科技有限公司 | Web访问日志处理方法 |
US20180089188A1 (en) * | 2016-09-26 | 2018-03-29 | Splunk Inc. | Hash bucketing of data |
US20180095790A1 (en) * | 2016-09-30 | 2018-04-05 | Salesforce.Com, Inc. | Scheduling jobs for processing log files using a database system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3000050B1 (en) | Efficient data compression and analysis as a service | |
CN109783581A (zh) | 权限管理方法、装置、电子设备及存储介质 | |
CN110796430A (zh) | 一种逾期交易数据处理方法和装置 | |
CN110737425B (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN109857524A (zh) | 流式计算方法、装置、设备及计算机可读存储介质 | |
CN113867957A (zh) | 一种跨集群容器数量弹性伸缩实现方法及装置 | |
Zhang et al. | EB-BFT: An elastic batched BFT consensus protocol in blockchain | |
CN107329832A (zh) | 一种数据接收方法及装置 | |
CN114862282B (zh) | 一种基于数据分析的业财协同管理方法及系统 | |
CN108512704A (zh) | 日志的处理方法及装置 | |
CN116795818A (zh) | 数据仓库提炼优化方法、装置、设备及其存储介质 | |
CN113438678B (zh) | 一种为网络切片分配云资源的方法及装置 | |
CN109377380A (zh) | 一种基于大数据处理的续保提醒的方法、装置及通信设备 | |
CN111639936B (zh) | 交易信息的获取方法、装置、电子设备及可读存储介质 | |
JP2023538941A (ja) | コンテナ化された環境のインテリジェントバックアップ及び復元 | |
CN112015590A (zh) | 一种多层级灾备方法、装置及电子设备 | |
US20230222579A1 (en) | Method and Apparatus for Iterating Credit Scorecard Model, Electronic Device and Storage Medium | |
JP7457169B2 (ja) | データ解析方法、電子機器及び記憶媒体 | |
CN117950600B (zh) | 一种数据存储方法以及相关装置 | |
US11366735B2 (en) | Dynamic data storage management | |
CN109710884B (zh) | 一种支持多种复杂计算方式的实时指标配置方法及系统 | |
CN117873462A (zh) | 业务处理系统的构建方法及装置、存储介质、电子设备 | |
CN117743291A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN116860436A (zh) | 线程数据处理方法、装置、设备及存储介质 | |
CN115686807A (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 |
Application publication date: 20180907 |
|
RJ01 | Rejection of invention patent application after publication |