CN110413573B - 日志存储控制方法、装置、计算机设备和存储介质 - Google Patents
日志存储控制方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110413573B CN110413573B CN201910710934.7A CN201910710934A CN110413573B CN 110413573 B CN110413573 B CN 110413573B CN 201910710934 A CN201910710934 A CN 201910710934A CN 110413573 B CN110413573 B CN 110413573B
- Authority
- CN
- China
- Prior art keywords
- application
- target
- forwarding
- storage system
- log file
- 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.)
- Active
Links
Images
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/13—File access structures, e.g. distributed indices
-
- 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
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)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种日志存储控制方法、装置、计算机设备和存储介质,其中,该方法包括:接收目标存储***发送的报警信息;响应于报警信息,获取目标存储***中存储的各应用的日志文件增长率;确定各应用的日志文件增长率是否大于预设增长率;将日志文件增长率大于预设增长率的应用确定为目标应用,并将目标应用存储至预设的异常应用列表;将异常应用列表发送至转发***,以使得转发***对异常应用列表中的目标应用的日志文件进行过滤。上述日志存储控制方法可以基于各应用日志文件增长率进行数据过滤,从而有效提高存储***的稳定性和可用性。
Description
技术领域
本申请涉及日志存储和监控技术领域,特别涉及一种日志存储控制方法、装置、计算机设备和存储介质。
背景技术
随着大数据时代的来临,数据的价值不断得以体现。为了便于进行日志数据的分析与再处理,日志数据的集中化存储成为主要选择。
通常,集中化日志存储架构主要包含日志采集层、日志缓冲层、日志消费层和日志存储层四个部分。其中,日志采集层用于数据采集,通过部署在应用侧的采集单元实现。日志缓冲层用于接受采集层数据并进行缓冲。日志消费层用于消费解析数据并进行存储分配。日志存储层用于数据的本地化存储。
目前,日志存储层多采用分布式存储技术搭建,存储容量和读写能力是存储层稳定的核心指标。对于如何对分布式存储进行分配以及实时实现,目前一般是根据运维经验日志对日志消费层进行配置,将日志流分配到相应集群中进行存储,然而这种处理方式无法基于实时日志流量进行动态调整,存储稳定性和可用性较差。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种日志存储控制方法、装置、计算机设备和存储介质,以解决现有技术中存储稳定性和可用性较差的问题。
本申请实施例还提供了一种日志存储控制方法,包括:接收目标存储***发送的报警信息;响应于报警信息,获取目标存储***中存储的各应用的日志文件增长率;确定各应用的日志文件增长率是否大于预设增长率;将日志文件增长率大于预设增长率的应用确定为目标应用,并将目标应用存储至预设的异常应用列表;将异常应用列表发送至转发***,以使得转发***对异常应用列表中的目标应用的日志文件进行过滤。
在一个实施例中,在将日志文件增长率大于预设增长率的应用确定为目标应用之后,还包括:获取目标采集***的资源使用参数,其中,目标采集***用于采集目标应用的日志文件,资源使用参数包括以下至少之一:CPU使用率、内存使用率;确定资源使用参数是否大于预设阈值;在确定资源使用参数大于预设阈值的情况下,向目标采集***发送第一控制信息,以使得目标采集***停止采集目标应用的日志文件。
在一个实施例中,在向目标采集***发送第一控制信息,以使得目标采集***停止采集目标应用的日志文件之后,还包括:实时获取目标采集***的资源使用参数;在确定资源使用参数不大于预设阈值的情况下,向目标采集***发送第二控制信息,以使得目标采集***开始采集目标应用的日志文件。
在一个实施例中,在接收目标存储***发送的报警信息之后,还包括:响应于报警信息,获取目标存储***的资源使用参数,其中,资源使用参数包括以下至少之一:磁盘占用百分比、读写性能参数和线程池对读写请求的拒绝率;根据资源使用参数确定目标存储***是否可用;在确定目标存储***不可用的情况下,将目标存储***的地址从预设的转发地址列表中移除;将预设的转发地址列表发送至转发***,以使得转发***停止向目标存储***转发日志文件。
在一个实施例中,在将预设的转发地址列表发送至转发***,以使得转发***停止向目标存储***转发日志文件之后,还包括:实时获取目标存储***的资源使用参数;根据资源使用参数确定目标存储***是否可用;在确定目标存储***可用的情况下,将目标存储***的地址存储至预设的转发地址列表中;将预设的转发地址列表发送至转发***,以使得转发***向目标存储***转发日志文件。
在一个实施例中,将异常应用列表发送至转发***,包括:接收转发***发送的下载请求,其中,转发***在检测到异常应用列表的时间戳信息发生改变的情况下发送下载请求;响应于下载请求,将异常应用列表发送至转发***。
在一个实施例中,异常应用列表基于Etcd进行存储;转发***通过Confd定时检测Etcd的时间戳信息是否发生改变。
在一个实施例中,存储***基于ElasticSearch进行日志文件存储。
在一个实施例中,转发***基于Kafka进行日志文件缓冲,和/或,转发***基于Logstash进行日志文件解析和转发。
本申请实施例还提供了一种日志存储控制装置,包括:接收模块,用于接收目标存储***发送的报警信息;获取模块,用于响应于报警信息,获取目标存储***中存储的各应用的日志文件增长率;第一确定模块,用于确定各应用的日志文件增长率是否大于预设增长率;第二确定模块,用于将日志文件增长率大于预设增长率的应用确定为目标应用,并将目标应用存储至预设的异常应用列表;发送模块,用于将异常应用列表发送至转发***,以使得转发***对异常应用列表中的目标应用的日志文件进行过滤。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的日志存储控制方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的日志存储控制方法的步骤。
在本申请实施例中,提供了一种日志存储控制方法,在接收到目标存储***发送的报警信息之后,获取目标存储***中存储的各应用的日志文件增长率,确定各应用的日志文件增长率是否大于预设增长率,若是,则将该应用确定为目标应用,并将目标应用存储至预设的异常应用列表中,之后,将异常应用列表发送至转发***,使得转发***在将日志文件转发至目标存储***之前对异常应用列表中的应用的日志文件进行过滤。上述方案中,响应于报警信息,获取目标存储***中各应用的日志文件增长率,将增长率大于预设增长率的应用确定为异常应用,使得转发***对异常应用的日志文件进行过滤,即,不将异常应用的日志文件发送至目标存储***进行存储,可以基于实时日志流量对日志存储进行动态调整,有效处理报警信息,基于各应用日志文件增长率进行数据过滤,可以有效提高存储***的稳定性和可用性。通过上述方案解决了现有的日志存储存在存储稳定性和可用性较差的技术问题,达到了有效提升存储***的稳定性和可用性的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中的日志存储控制方法的应用场景示意图;
图2示出了本申请一实施例中的日志存储控制方法的流程图;
图3示出了本申请一实施例中的日志存储控制方法的流程图;
图4示出了本申请一实施例中的日志存储控制装置的示意图;
图5示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种***、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
现有的日志存储方法根据运维经验日志对日志消费层进行配置,存储稳定性和可用性较差。发明人通过研究发现,可以通过目标存储层在出现异常时(例如,资源使用瓶颈或者某一应用分区出现存储异常时)生成报警信息,并将报警信息发送至监控服务器,使得监控服务器根据报警信息获取目标存储***的资源使用情况和/或各应用的日志文件增长情况。监控服务器可以根据获得的资源使用情况和/或日志文件增长情况确定是否控制转发***过滤异常应用的日志文件以及是否控制转发***停止向目标存储***转发异常应用的日志文件,实现基于实时日志流量进行动态调整,可以有效提高存储稳定性和可用性。
基于此,本申请实施例提供了一种日志存储控制方法。图1示出了本申请实施例提供的日志存储控制方法的应用场景的示意图。如图1所示,示意性地示出了应用服务器、日志采集层、日志转发层、日志存储层和监控服务器。其中,应用服务器用于执行应用服务,生成日志文件。监控服务器可以是单一的服务器,也可以是服务器集群,或者是云服务器等都可以,具体的组成形成本申请不作限定。日志采集层用于采集应用服务器生成的日志文件。日志转发层用于缓存日志文件,并将日志文件转发至日志存储层。日志存储层用于将日志文件进行存储。
示意性地,如图1所示,日志采集层包括采集***1、采集***2和采集***3。其中,各采集***可以部署在日志采集层的容器和/或虚拟机中,拥有各自的CPU和内存。各采集***可以采集各应用的日志文件。例如,采集***1可以采集应用服务器1执行的应用1的日志文件,采集***2可以采集应用服务器2执行的应用2的日志文件,采集***3可以采集应用服务器3执行的应用3的日志文件。上述示例中,一个应用对应一个采集***,但本申请并不限于此。在其他实施例中,一个应用可以对应多个采集***,例如,一个应用包括多种类型的日志文件,多个采集***中各采集***分别采集其中一种类型的日志文件。
请继续参考图1,日志转发层可以包括转发***。其中,转发***可以用于缓存日志文件,以及消费解析日志文件,并将解析后的日志文件发送至存储***进行存储。图1中仅示意性地示出了日志转发层包括一个转发***,本申请并不限于此。其中,转发***可以基于Kafka进行日志缓存。其中,Kafka是一种高吞吐量的分布式发布订阅消息***,可以处理消费者在网站中的所有动作流数据。另外,转发***可以基于Logstash进行日志文件的消费解析。其中,Logstash是一种数据收集和日志解析引擎。转发***可以基于转发策略对日志文件进行转发。
请继续参考图1,日志存储层可以包括多个存储***。图1中示意性地示出了三个存储***:存储***1、存储***2和存储***3。其中,各存储***对日志文件按应用进行分类存储。一个存储***可以存储一个或多个应用的日志文件。例如,存储***1可以存储应用1和应用2的日志文件,并且将应用1的日志文件存储在应用分区1中,将应用2的日志文件存储在应用分区2中。其中,存储***可以是单独的服务器,也可以是多个服务器形成的存储集群。对于存储***的具体呈现形式,本申请不作限定。
请继续参考图1,监控服务器与日志采集层、日志转发层和日志存储层通信连接。其中,监控服务器可以是单一的服务器,也可以是服务器集群,或者是云服务器等都可以,具体的组成形成本申请不作限定。日志存储层中各存储***在检测到异常时,生成报警信息,并向监控服务器发送所述报警信息。其中,报警信息中携带有目标存储***的标识信息。监控服务器响应于报警信息从目标存储***(例如,存储***1)获取存储***1的资源使用情况和其中存储的各应用的日志增长情况。监控服务器根据接收到的资源使用情况确定异常应用,并将异常应用存储至预设的异常应用列表中。监控服务器将更新后的异常应用列表发送至日志转发层,以使转发***对异常应用的日志文件进行过滤,即,不将异常应用的日志文件发送至存储***1进行存储。监控服务器还可以根据异常应用(例如,应用1)确定采集该异常应用的采集***(例如,采集***1)。监控服务器可以获取采集***1的资源使用参数。在确定采集***1的资源使用参数大于预设阈值的情况下,可以向采集***1发送控制信息,以使得采集***1停止采集应用1的日志文件。监控服务器还可以根据存储***1的资源使用情况确定存储***1是否可用。在确定存储***1不可用的情况下,监控服务器将存储***1的地址从预设的转发地址中移除。监控服务器将更新后的转发地址发送至日志转发层。日志转发层根据更新后的转发地址生成新的转发策略,并根据新的转发策略进行转发,即不将日志文件转发至存储***1。
图2示出了本申请一实施例中日志存储控制方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图2所示,本申请一种实施例提供的日志存储控制方法可以包括以下步骤:
步骤S201,接收目标存储***发送的报警信息。
其中,日志存储层中的各个存储***均可以监测其中用于存储各应用的日志文件的各应用分区的存储情况。在监测到应用分区出现存储异常的情况下,存储***生成报警信息,并将报警信息发送至监控服务器。其中,存储***的应用分区出现异常可以包括读写异常和/或磁盘占用超过预设百分比。其中,报警信息中可以包括目标存储***的标识信息。
步骤S202,响应于报警信息,获取目标存储***中存储的各应用的日志文件增长率。
在监控服务器接收到报警信息之后,可以根据目标存储***的标识信息从对应的目标存储***中获取该目标存储***中存储的各应用的日志文件增长率。其中,应用的日志文件增长率是指在单位时间内该应用的日志文件占目标存储***的空间大小的增长量。
步骤S203,确定各应用的日志文件增长率是否大于预设增长率。
步骤S204,将日志文件增长率大于预设增长率的应用确定为目标应用,并将目标应用存储至预设的异常应用列表。
在获取各应用的日志文件增长率之后,确定各应用的日志文件增长率是否大于预设增长率。将日志文件增长率大于预设增长率的应用确定为目标应用,并将目标应用存储至预设的异常应用列表中。
步骤S205,将异常应用列表发送至转发***,以使得转发***对异常应用列表中的目标应用的日志文件进行过滤。
在对异常应用列表更新之后,将更新后的异常应用列表发送至转发***,以使得转发***对异常应用列表中的应用的日志文件进行过滤,即,不对目标应用的日志文件进行转发。
上述方案中,响应于报警信息,获取目标存储***中各应用的日志文件增长率,将增长率大于预设增长率的应用确定为异常应用,使得转发***对异常应用的日志文件进行过滤,即,不将异常应用的日志文件发送至目标存储***进行存储,可以基于实时日志流量对日志存储进行动态调整,有效处理报警信息,基于各应用日志文件增长率进行数据过滤,可以有效提高存储***的稳定性和可用性。
进一步地,在本申请一些实施例中,在将目标应用存入异常应用列表持续预设时间后,可以将目标应用从异常应用列表移除。即,在对目标应用的日志文件进行过滤一段时间后,重新尝试将日志文件录入目标存储***。
在本申请一些实施例中,在将日志文件增长率大于预设增长率的应用确定为目标应用之后,还可以包括:获取目标采集***的资源使用参数,其中,目标采集***用于采集目标应用的日志文件,资源使用参数包括以下至少之一:CPU使用率、内存使用率;确定资源使用参数是否大于预设阈值;在确定资源使用参数大于预设阈值的情况下,向目标采集***发送第一控制信息,以使得目标采集***停止采集目标应用的日志文件。
具体地,在将日志文件增长率大于预设增长率的应用确定为目标应用之后,可以获取目标采集***的资源使用参数。其中,目标采集***用于采集目标应用的日志文件。示例性地,目标采集***在采集目标应用的日志文件之后,对日志文件进行解析,并将解析后的日志文件发送至日志转发层。解析后的日志文件中可以携带有采集***的标识信息。因此,在确定目标应用之后,可以根据目标应用的日志文件确定对应的目标采集***。其中,资源使用参数可以包括但不限于以下至少之一:CPU使用率和内存使用率。监控服务器确定资源使用参数是否大于预设阈值。例如,在CPU使用率大于90%的情况下,确定资源使用参数大于预设阈值。例如,在内存使用率大于95%的情况下,确定资源使用参数大于预设阈值。例如,在CPU使用率和内存使用率均大于85%的情况下,确定资源使用参数大于预设阈值。在确定目标采集***的资源使用参数大于预设阈值的情况下,确定目标采集***异常。监控服务器向目标采集***发送第一控制信息,以使得目标采集***停止采集目标应用的日志文件。通过上述方式,可以有效控制异常采集***停止采集日志文件,通过采集控制实现对异常应用的日志文件的处理,可以提高存储***的稳定性和可用性,同时避免采集***由于异常而崩溃。
在本申请一些实施例中,在向目标采集***发送第一控制信息,以使得目标采集***停止采集目标应用的日志文件之后,还可以包括:实时获取目标采集***的资源使用参数;在确定资源使用参数不大于预设阈值的情况下,向目标采集***发送第二控制信息,以使得目标采集***开始采集目标应用的日志文件。
在目标采集***停止采集目标应用的日志文件之后,可以实时获取目标采集***的资源使用参数,以在目标采集***恢复正常之后,重新开启目标采集***进行日志采集。具体地,实时获取目标采集***的资源使用参数,在确定资源使用参数不大于预设阈值的情况下,向目标采集***发送第二控制信息,以使得目标采集***开始采集目标应用的日志文件。通过上述方式,可以在目标采集***恢复正常的情况下,重新开始采集,有利于提高整个日志存储***的可用性和稳定性。
在本申请一些实施例中,在接收目标存储***发送的报警信息之后,还可以包括:响应于报警信息,获取目标存储***的资源使用参数,其中,资源使用参数包括以下至少之一:磁盘占用百分比、读写性能参数和线程池对读写请求的拒绝率;根据资源使用参数确定目标存储***是否可用;在确定目标存储***不可用的情况下,将目标存储***的地址从预设的转发地址列表中移除;将预设的转发地址列表发送至转发***,以使得转发***停止向目标存储***转发日志文件。
存储***还可以监测自身的资源使用情况,在检测到资源使用瓶颈的情况下,向监控服务器发送报警信息。其中,资源使用瓶颈可以包括但不限于以下至少之一:磁盘占用率大于预设占用率、读写性能参数小于预设值、线程池持续沾满而导致对读写请求的拒绝率大于预设拒绝率。在接收到报警信息之后,监控服务器可以获取目标存储***的资源使用参数。其中,资源使用参数可以包括但不限于以下至少之一:磁盘占用百分比、读写性能参数和线程池对读写请求的拒绝率。在获取资源使用参数之后,监控服务器可以根据资源使用参数确定目标存储***是否可用。示例性地,监控服务器可以根据磁盘占用百分比、读写性能参数和线程池对读写请求的拒绝率确定目标存储***的综合性能参数。在综合性能参数小于预设数值时,可以确定目标存储***不可用。在综合性能参数大于预设数值时,可以确定目标存储***可用。其中,综合性能参数可以与磁盘占用百分比成反相关、与读写性能参数成正相关、与线程池对读写请求的拒绝率成反相关。在确定目标存储***不可用的情况下,将目标存储***的地址从预设的转发地址列表中移除。将更新后的转发地址列表发送至转发***,以使得转发***停止向目标存储***转发日志文件。
在本申请一些实施例中,在将预设的转发地址列表发送至转发***,以使得转发***停止向目标存储***转发日志文件之后,还可以包括:实时获取目标存储***的资源使用参数;根据资源使用参数确定目标存储***是否可用;在确定目标存储***可用的情况下,将目标存储***的地址存储至预设的转发地址列表中;将预设的转发地址列表发送至转发***,以使得转发***向目标存储***转发日志文件。
在转发***停止向目标存储***转发日志文件之后,可以实时获取目标存储***的资源使用参数,以在目标存储***恢复正常之后,将目标存储***的地址添加至预设的转发地址中,从而可以继续进行日志存储。具体地,实时获取目标存储***的资源使用参数。其中,资源使用参数可以包括但不限于以下之一:磁盘占用百分比、读写性能参数和线程池对读写请求的拒绝率。根据资源使用参数确定目标存储***是否可用。在确定目标存储***可用的情况下,将目标存储***的地址存储至预设的转地址列表。将更新后的转发地址列表发送至转发***,以使得转发***向目标存储***转发日志文件。通过上述方式,可以在存储***恢复正常时及时向存储***发送日志文件进行存储,可以缓解其他存储***的存储压力,有效提高存储***的稳定性和可用性。
在本申请一些实施例中,将异常应用列表发送至转发***,可以包括:接收转发***发送的下载请求,其中,转发***在检测到异常应用列表的时间戳信息发生改变的情况下发送下载请求;响应于下载请求,将异常应用列表发送至转发***。
具体地,转发***可以实时监测监控服务器端的异常应用列表是否更新。在本实施例中,转发***可以通过检测异常应用列表的时间戳信息与本地异常应用列表的时间戳信息是否一致,若不一致,则说明异常应用列表发生更新。在转发***检测到异常应用列表的时间戳发生改变的情况下,向监控服务器发送下载请求。监控服务器响应于下载请求,将异常应用列表发送至转发***。通过上述方式,可以通过转发***监测异常应用列表是否发生改变,并在发生改变的情况下从监控服务器下载异常应用列表,从而根据更新后的异常应用列表对日志文件进行过滤。
在本申请一些实施例中,异常应用列表基于Etcd进行存储;转发***通过Confd定时检测Etcd的时间戳信息是否发生改变。
其中,Etcd是一种分布式键值对存储,用于可靠而快速地保存关键数据并提供访问。本实施例中,监控服务器中可以部署Etcd节点来存储异常应用列表。Confd是一种轻量级的配置管理工具,可以通过定时任务去服务端获取配置信息,生成配置文本,并从本机读取配置文本。转发***中部署有Confd,用于定时检测Etcd的时间戳信息是否发生改变,并且在检测到发生改变时,从Etcd读取更新的异常应用列表,并根据更新的异常应用列表动态修改配置文件,使得转发***对异常应用的日志文件进行过滤。
在本申请一些实施例中,存储***基于ElasticSearch进行日志文件存储。其中,ElasticSearch是一种分布式、高扩展、高实时的搜索与数据分析引擎。本实施例中的存储***可以是存储集群,可以基于ElasticSearch对日志进行分布式存储。通过ElasticSearch进行日志存储可以提高日志存储效率。
在本申请一些实施例中,转发***基于Kafka进行日志文件缓冲,和/或,转发***基于Logstash进行日志文件解析和转发。其中,Kafka是一种高吞吐量的分布式发布订阅消息***,可以处理消费者在网站中的所有动作流数据。Logstash是一种数据收集和日志解析引擎。转发***可以基于Kafka进行日志文件缓冲。转发***可以基于Logstash进行日志文件解析和转发。
在本申请一些实施例中,可以通过ElasticSearch对日志文件进行分布式存储。在ElasticSearch前面加入Kafka消息中间件层进行缓冲。云上和云下应用的日志发送到Kafka。在Kafka消费端部署Logstash消费者集群。Logstash消费者集群录入日志到ElasticSearch。将Confd与Logstash部署在一起。同时单独部署Etcd节点存储异常应用列表。Confd定时检测Etcd,当发现应用黑名单发生变化时,动态修改Logstash配置文件,禁止异常应用的日志由Logstash录入ElasticSearch。另外,单独部署ElasticSearch流量监控节点,定时查询各应用日志增长量。当应用增长量超过阈值时,更新Etcd应用黑名单。在应用被列入异常应用列表中持续预设时间后,可以重新尝试开放录入。通过上述方式,可以有效防止部分应用日志流量突增而冲垮ElasticSearch并导致所有应用日志无法录入查询,可以对日志流量进行自适应调整,从而提高存储***的稳定性和可用性。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
请参考图3,示出了本申请一实施例中的日志存储控制方法的流程图。如图3所示,该方法可以包括以下步骤:
步骤1,监控服务器接收目标存储***发送的报警信息,其中,日志存储层的存储***检测自身的总体资源使用情况和各应用分区的资源使用情况,在出现总体资源使用瓶颈或者应用分区的资源使用瓶颈的情况下生成报警信息,并将报警信息发送至监控服务器;
步骤2,监控服务器获取目标存储***的资源使用参数和各应用的日志文件增长率;
步骤3,监控服务器确定各应用的日志文件增长率是否大于预设增长率,并将日志文件增长率大于预设增长率的应用确定为目标应用;
步骤4,监控服务器获取目标采集***的资源使用参数,其中,目标采集***用于采集目标应用的日志文件;
步骤5,监控服务器确定目标采集***的资源使用参数是否大于预设阈值,若是,则执行步骤6,否则执行步骤7;
步骤6,监控服务器向目标采集***发送控制信息,以控制目标采集***停止采集目标应用的日志文件,跳到步骤11;
步骤7,将目标应用存储至预设的异常应用列表中;
步骤8,接收转发***发送的下载请求,并响应于该下载请求,将更新后的异常应用列表发送至转发***,以使得转发***对更新后的异常应用列表中的应用的日志文件进行过滤;
步骤9,监控服务器根据资源使用参数确定目标存储***是否可用,若是,则执行步骤11,否则执行步骤10;
步骤10,监控服务器将目标存储***的地址从预设的转发地址列表中移除,并将更新后的转发地址列表发送至转发***,以使得转发***根据更新后的转发地址列表生成新的转发策略,并根据新的转发策略进行日志转发;
步骤11,结束。
上述实施例中的日志存储控制方法,在接收到报警信息之后,获取目标存储***的资源使用情况和各应用的日志文件增长情况,将日志文件增长率大于预设增长率的应用确定为目标应用,确定采集目标应用的日志文件的目标采集***是否运行异常,在运行异常的情况下,停止采集目标应用的日志文件。在确定目标采集***运行正常的情况下,将目标应用存储至预设的异常应用列表中,并将更新后的异常应用列表发送至转发***,使得转发***对目标应用的日志文件进行过滤。通过上述方式,可以有效防止日志流量突增而造成目标存储***崩溃,提高存储***的稳定性和可用性。之后,监控服务器还可以根据目标存储***的资源使用情况确定目标存储***是否可用。在确定目标存储***不可用的情况下,将目标存储***从预设的转发地址列表中移除,以使得转发***生成新的转发策略并停止向目标存储***转发日志文件。通过上述方式,可以提高日志存储层的存储效率,提升***的存储可用稳定性。
基于同一发明构思,本申请实施例中还提供了一种日志存储控制装置,如下面的实施例所述。由于日志存储控制装置解决问题的原理与日志存储控制方法相似,因此日志存储控制装置的实施可以参见日志存储控制方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是本申请实施例的日志存储控制装置的一种结构框图,如图4所示,包括:接收模块401、获取模块402、第一确定模块403、第二确定模块404和发送模块405,下面对该结构进行说明。
接收模块401用于接收目标存储***发送的报警信息;
获取模块402用于响应于报警信息,获取目标存储***中存储的各应用的日志文件增长率;
第一确定模块403用于确定各应用的日志文件增长率是否大于预设增长率;
第二确定模块404用于将日志文件增长率大于预设增长率的应用确定为目标应用,并将目标应用存储至预设的异常应用列表;
发送模块405用于将异常应用列表发送至转发***,以使得转发***对异常应用列表中的目标应用的日志文件进行过滤。
在本申请一些实施例中,该装置还包括采集控制模块,可以具体用于:在将日志文件增长率大于预设增长率的应用确定为目标应用之后,获取目标采集***的资源使用参数,其中,目标采集***用于采集目标应用的日志文件,资源使用参数包括以下至少之一:CPU使用率、内存使用率;确定资源使用参数是否大于预设阈值;在确定资源使用参数大于预设阈值的情况下,向目标采集***发送第一控制信息,以使得目标采集***停止采集目标应用的日志文件。
在本申请一些实施例中,该装置还包括存储控制模块,可以具体用于:在接收目标存储***发送的报警信息之后,响应于报警信息,获取目标存储***的资源使用参数,其中,资源使用参数包括以下至少之一:磁盘占用百分比、读写性能参数和线程池对读写请求的拒绝率;根据资源使用参数确定目标存储***是否可用;在确定目标存储***不可用的情况下,将目标存储***的地址从预设的转发地址列表中移除;将预设的转发地址列表发送至转发***,以使得转发***停止向目标存储***转发日志文件。
在本申请一些实施例中,采集控制模块还可以具体用于:在向目标采集***发送第一控制信息,以使得目标采集***停止采集目标应用的日志文件之后,实时获取目标采集***的资源使用参数;在确定资源使用参数不大于预设阈值的情况下,向目标采集***发送第二控制信息,以使得目标采集***开始采集目标应用的日志文件。
在本申请一些实施例中,存储控制模块还可以具体用于:在将预设的转发地址列表发送至转发***,以使得转发***停止向目标存储***转发日志文件之后,实时获取目标存储***的资源使用参数;根据资源使用参数确定目标存储***是否可用;在确定目标存储***可用的情况下,将目标存储***的地址存储至预设的转发地址列表中;将预设的转发地址列表发送至转发***,以使得转发***向目标存储***转发日志文件。
在本申请一些实施例中,将异常应用列表发送至转发***,包括:接收转发***发送的下载请求,其中,转发***在检测到异常应用列表的时间戳信息发生改变的情况下发送下载请求;响应于下载请求,将异常应用列表发送至转发***。
在本申请一些实施例中,异常应用列表基于Etcd进行存储;转发***通过Confd定时检测Etcd的时间戳信息是否发生改变。
在本申请一些实施例中,存储***基于ElasticSearch进行日志文件存储。
在本申请一些实施例中,转发***基于Kafka进行日志文件缓冲,和/或,转发***基于Logstash进行日志文件解析和转发。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:上述方案中,响应于报警信息,获取目标存储***中各应用的日志文件增长率,将增长率大于预设增长率大于预设增长率的应用确定为异常应用,使得转发***对异常应用的日志文件进行过滤,即,不将异常应用的日志文件发送至目标存储***进行存储,可以基于实时日志流量对日志存储进行动态调整,有效处理报警信息,基于各应用日志文件增长率进行数据过滤,可以有效提高存储***的稳定性和可用性。通过上述方案解决了现有的日志存储存在存储稳定性和可用性较差的技术问题,达到了有效提升存储***的稳定性和可用性的技术效果。
本申请实施方式还提供了一种计算机设备,具体可以参阅图5所示的基于本申请实施例提供的日志存储控制方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备51、处理器52、存储器53。其中,所述存储器53用于存储处理器可执行指令。所述处理器52执行所述指令时实现上述任意实施例中所述的日志存储控制方法的步骤。
在本实施方式中,所述输入设备具体可以是用户和计算机***之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字***中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在***中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于日志存储控制方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述日志存储控制方法的步骤。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种日志存储控制方法,其特征在于,包括:
接收目标存储***发送的报警信息;
响应于所述报警信息,获取所述目标存储***中存储的各应用的日志文件增长率;
确定所述各应用的日志文件增长率是否大于预设增长率;
将日志文件增长率大于预设增长率的应用确定为目标应用,并将所述目标应用存储至预设的异常应用列表;
将所述异常应用列表发送至转发***,以使得所述转发***对所述异常应用列表中的目标应用的日志文件进行过滤;
其中,在接收目标存储***发送的报警信息之后,还包括:
响应于所述报警信息,获取所述目标存储***的资源使用参数,其中,所述资源使用参数包括以下至少之一:磁盘占用百分比、读写性能参数和线程池对读写请求的拒绝率;
根据所述资源使用参数确定所述目标存储***是否可用;
在确定所述目标存储***不可用的情况下,将所述目标存储***的地址从预设的转发地址列表中移除;
将所述预设的转发地址列表发送至所述转发***,以使得所述转发***停止向所述目标存储***转发日志文件。
2.根据权利要求1所述的方法,其特征在于,在将日志文件增长率大于预设增长率的应用确定为目标应用之后,还包括:
获取目标采集***的资源使用参数,其中,所述目标采集***用于采集所述目标应用的日志文件,所述资源使用参数包括以下至少之一:CPU使用率、内存使用率;
确定所述资源使用参数是否大于预设阈值;
在确定所述资源使用参数大于预设阈值的情况下,向所述目标采集***发送第一控制信息,以使得所述目标采集***停止采集所述目标应用的日志文件。
3.根据权利要求2所述的方法,其特征在于,在向所述目标采集***发送第一控制信息,以使得所述目标采集***停止采集所述目标应用的日志文件之后,还包括:
实时获取所述目标采集***的资源使用参数;
在确定所述资源使用参数不大于预设阈值的情况下,向所述目标采集***发送第二控制信息,以使得所述目标采集***开始采集所述目标应用的日志文件。
4.根据权利要求1所述的方法,其特征在于,在将所述预设的转发地址列表发送至所述转发***,以使得所述转发***停止向所述目标存储***转发日志文件之后,还包括:
实时获取所述目标存储***的资源使用参数;
根据所述资源使用参数确定所述目标存储***是否可用;
在确定所述目标存储***可用的情况下,将所述目标存储***的地址存储至所述预设的转发地址列表中;
将所述预设的转发地址列表发送至所述转发***,以使得所述转发***向所述目标存储***转发日志文件。
5.根据权利要求1所述的方法,其特征在于,将所述异常应用列表发送至转发***,包括:
接收转发***发送的下载请求,其中,所述转发***在检测到所述异常应用列表的时间戳信息发生改变的情况下发送下载请求;
响应于所述下载请求,将所述异常应用列表发送至所述转发***。
6.根据权利要求5所述的方法,其特征在于,所述异常应用列表基于Etcd进行存储;所述转发***通过Confd定时检测Etcd的时间戳信息是否发生改变。
7.根据权利要求1所述的方法,其特征在于,所述存储***基于ElasticSearch进行日志文件存储。
8.根据权利要求1所述的方法,其特征在于,所述转发***基于Kafka进行日志文件缓冲,和/或,所述转发***基于Logstash进行日志文件解析和转发。
9.一种日志存储控制装置,其特征在于,包括:
接收模块,用于接收目标存储***发送的报警信息;
获取模块,用于响应于所述报警信息,获取所述目标存储***中存储的各应用的日志文件增长率;
第一确定模块,用于确定所述各应用的日志文件增长率是否大于预设增长率;
第二确定模块,用于将日志文件增长率大于预设增长率的应用确定为目标应用,并将所述目标应用存储至预设的异常应用列表;
发送模块,用于将所述异常应用列表发送至转发***,以使得所述转发***对所述异常应用列表中的目标应用的日志文件进行过滤;
其中,所述装置还包括存储控制模块,所述存储控制模块具体用于:
在所述接收模块接收目标存储***发送的报警信息之后,响应于所述报警信息,获取所述目标存储***的资源使用参数,其中,所述资源使用参数包括以下至少之一:磁盘占用百分比、读写性能参数和线程池对读写请求的拒绝率;
根据所述资源使用参数确定所述目标存储***是否可用;
在确定所述目标存储***不可用的情况下,将所述目标存储***的地址从预设的转发地址列表中移除;
将所述预设的转发地址列表发送至所述转发***,以使得所述转发***停止向所述目标存储***转发日志文件。
10.一种计算机设备,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至8中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910710934.7A CN110413573B (zh) | 2019-08-02 | 2019-08-02 | 日志存储控制方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910710934.7A CN110413573B (zh) | 2019-08-02 | 2019-08-02 | 日志存储控制方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413573A CN110413573A (zh) | 2019-11-05 |
CN110413573B true CN110413573B (zh) | 2022-07-05 |
Family
ID=68365428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910710934.7A Active CN110413573B (zh) | 2019-08-02 | 2019-08-02 | 日志存储控制方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413573B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908870B (zh) * | 2019-11-28 | 2023-11-21 | 中国银行股份有限公司 | 一种大型机的资源监控方法、装置、存储介质及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902752A (zh) * | 2012-09-20 | 2013-01-30 | 新浪网技术(中国)有限公司 | 一种日志监控方法及*** |
CN104268064A (zh) * | 2014-09-11 | 2015-01-07 | 百度在线网络技术(北京)有限公司 | 产品日志的异常诊断方法和装置 |
CN106371986A (zh) * | 2016-09-08 | 2017-02-01 | 上海新炬网络技术有限公司 | 一种日志处理运维监控*** |
CN106776245A (zh) * | 2016-11-18 | 2017-05-31 | 维沃移动通信有限公司 | 一种异常应用处理方法、装置及移动终端 |
CN106844576A (zh) * | 2017-01-06 | 2017-06-13 | 北京蓝海讯通科技股份有限公司 | 一种异常检测方法、装置和监控设备 |
CN107612740A (zh) * | 2017-09-30 | 2018-01-19 | 武汉光谷信息技术股份有限公司 | 一种分布式环境下的日志监控***及方法 |
CN109324996A (zh) * | 2018-10-12 | 2019-02-12 | 平安科技(深圳)有限公司 | 日志文件处理方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190079965A1 (en) * | 2017-09-08 | 2019-03-14 | Striim, Inc. | Apparatus and method for real time analysis, predicting and reporting of anomalous database transaction log activity |
-
2019
- 2019-08-02 CN CN201910710934.7A patent/CN110413573B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902752A (zh) * | 2012-09-20 | 2013-01-30 | 新浪网技术(中国)有限公司 | 一种日志监控方法及*** |
CN104268064A (zh) * | 2014-09-11 | 2015-01-07 | 百度在线网络技术(北京)有限公司 | 产品日志的异常诊断方法和装置 |
CN106371986A (zh) * | 2016-09-08 | 2017-02-01 | 上海新炬网络技术有限公司 | 一种日志处理运维监控*** |
CN106776245A (zh) * | 2016-11-18 | 2017-05-31 | 维沃移动通信有限公司 | 一种异常应用处理方法、装置及移动终端 |
CN106844576A (zh) * | 2017-01-06 | 2017-06-13 | 北京蓝海讯通科技股份有限公司 | 一种异常检测方法、装置和监控设备 |
CN107612740A (zh) * | 2017-09-30 | 2018-01-19 | 武汉光谷信息技术股份有限公司 | 一种分布式环境下的日志监控***及方法 |
CN109324996A (zh) * | 2018-10-12 | 2019-02-12 | 平安科技(深圳)有限公司 | 日志文件处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110413573A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10440136B2 (en) | Method and system for resource scheduling | |
CN111818159B (zh) | 数据处理节点的管理方法、装置、设备及存储介质 | |
US9584617B2 (en) | Allocating cache request in distributed cache system based upon cache object and marker identifying mission critical data | |
CN107729185B (zh) | 一种故障处理方法及装置 | |
CN107544832B (zh) | 一种虚拟机进程的监控方法、装置和*** | |
CN104836819A (zh) | 动态负载均衡的方法、***及监控调度设备 | |
CN110955586A (zh) | 一种基于日志的***故障预测方法、装置和设备 | |
CN111309644B (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
CN107682169B (zh) | 一种利用Kafka集群发送消息的方法和装置 | |
CN112052088B (zh) | 自适应的进程cpu资源限制方法、装置、终端及存储介质 | |
CN110413585B (zh) | 日志处理设备、方法、电子设备及计算机可读存储介质 | |
CN110413573B (zh) | 日志存储控制方法、装置、计算机设备和存储介质 | |
CN112612587A (zh) | 一种针对流量分析的Spark平台动态资源调配方法 | |
EP2328322A1 (en) | Method and apparatus for accessing files stored in a storage access network (SAN) or network attached storange (NAS) | |
CN111385359A (zh) | 对象网关的负载处理方法及装置 | |
JP2010092107A (ja) | 故障情報監視装置及び故障情報監視方法 | |
CN109510730B (zh) | 分布式***及其监控方法、装置、电子设备及存储介质 | |
CN107426012B (zh) | 一种基于超融合架构的故障恢复方法及其装置 | |
CN116414661B (zh) | 分布式存储的固态硬盘处理方法和装置 | |
CN106375372B (zh) | 一种大数据资源分配方法和装置 | |
EP3188026B1 (en) | Memory resource management method and apparatus | |
CN111538629A (zh) | 一种服务器传感器的轮循方法、***及相关装置 | |
CN101227330A (zh) | 一种历史性能数据采集方法和*** | |
CN115422010A (zh) | 数据集群中的节点管理方法、装置及存储介质 | |
CN110837428A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |