CN106470123A - 日志收集方法、客户端、服务器和电子设备 - Google Patents

日志收集方法、客户端、服务器和电子设备 Download PDF

Info

Publication number
CN106470123A
CN106470123A CN201610867937.8A CN201610867937A CN106470123A CN 106470123 A CN106470123 A CN 106470123A CN 201610867937 A CN201610867937 A CN 201610867937A CN 106470123 A CN106470123 A CN 106470123A
Authority
CN
China
Prior art keywords
server
daily record
record data
client
pressure rating
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.)
Granted
Application number
CN201610867937.8A
Other languages
English (en)
Other versions
CN106470123B (zh
Inventor
乔译
姚志东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN201610867937.8A priority Critical patent/CN106470123B/zh
Publication of CN106470123A publication Critical patent/CN106470123A/zh
Application granted granted Critical
Publication of CN106470123B publication Critical patent/CN106470123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种日志收集方法、客户端、服务器和电子设备,包括:收集日志数据;向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;当所述接收状态参数表征所述服务器为接收等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;在所述目标时间达到时,向所述服务器发送日志数据。

Description

日志收集方法、客户端、服务器和电子设备
技术领域
本发明涉及日志收集技术,尤其涉及一种日志收集方法、客户端、服务器、电子设备、存储介质。
背景技术
随着计算机应用技术的迅速发展,终端设备中的客户端一般都具有日志功能,用于记录客户端运行的日志数据。这样,在后续流程中,通过查看客户端记录的日志数据,可以获取客户端的运行状态,便于管理人员和维护人员能够更加方便地分析客户端的运行数据,解决客户端运行中出现的各种技术故障,并在一定程度上预测客户端未来可能发生的异常,从而规避未来出现的技术故障,保障客户端的正常运行。
目前,客户端向服务器上报日志的方式大都分为两种:一种是定时向服务器上报日志。另一种是当日志积累到一定的数量级时再向服务器上报日志。
上述两种日志上报方式非常不智能,在不考虑数据量及服务器压力的时候可以满足大多数服务的可用性,但是一旦服务器压力达到极限值,这两种上报方式很可能对服务器造成雪崩式崩溃,直接导致服务被打死,甚至所积攒的数据会把网卡打满导致其他服务无法正常运行。
发明内容
为解决上述技术问题,本发明实施例提供了一种日志收集方法、客户端、服务器。
本发明实施例提供的日志收集方法,包括:
收集日志数据;
向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;
根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,向所述服务器发送日志数据。
本发明实施例中,所述根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间,包括:
接收所述服务器发送的接收状态参数;
当所述接收状态参数表征所述服务器为接收等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
本发明实施例中,所述向服务器发送日志数据,包括:
将所述日志数据以JSON格式发送给服务器;
相应地,所述接收所述服务器发送的所述服务器的压力等级参数,包括:
接收所述服务器以JSON格式发送的所述服务器的压力等级参数。
本发明实施例中,所述服务器的压力等级参数能够表征N种压力等级,N为正整数,其中,每种压力等级对应不同的目标时间。
本发明实施例中,所述根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间,包括:
确定与所述服务器的压力等级参数相对应的延迟基数值;
根据所述延迟基数值以及随机数值,计算得到所述目标时间,其中,所述服务器的压力等级参数越大时,与所述服务器的压力等级参数相对应的延迟基数值越大。
本发明实施例中,所述随机数值的确定方式能够动态改变。
本发明实施例中,所述方法还包括:
当所述压力等级参数超过门限值时,丢弃下一次向所述服务器发送的日志数据,或者将下一次向所述服务器发送的日志数据进行简化并在距离当前时刻超过预设时长的时刻发送给所述服务器。
本发明另一实施例提供的日志收集方法,包括:
接收客户端发送的日志数据;
向所述客户端发送服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,接收所述客户端发送的日志数据。
本发明实施例中,所述方法还包括:
向所述客户端发送服务器的接收状态参数,以使所述客户端在接收状态参数表征所述服务器为等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
本发明实施例中,所述接收客户端发送的日志数据,包括:
接收客户端以JSON格式发送的日志数据;
相应地,所述向所述客户端发送服务器的压力等级参数,包括:
向所述客户端以JSON格式发送服务器的压力等级参数。
本发明实施例中,所述方法还包括:
当成功接收日志数据后,通过分布式发布订阅系统(kafka)消息队列对所述日志数据进行处理。
本发明实施例提供的客户端,包括:
收集单元,用于收集日志数据;
通信单元,用于向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;
确定单元,用于根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
所述通信单元,还用于在所述目标时间达到时,向所述服务器发送日志数据。
本发明实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
收集日志数据;
向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;
根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,向所述服务器发送日志数据。
本发明实施例提供的服务器,包括:
通信单元,用于接收客户端发送的日志数据;
确定单元,用于确定服务器的压力等级参数;
所述通信单元,还用于向所述客户端发送所述服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;在所述目标时间达到时,接收所述客户端发送的日志数据。
本发明另一实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
接收客户端发送的日志数据;
向所述客户端发送服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,接收所述客户端发送的日志数据。
本发明实施例提供的存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上所述方法的步骤。
本发明实施例的技术方案中,客户端收集日志数据;向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;在所述目标时间达到时,向所述服务器发送日志数据。采用本发明实施例的技术方案,客户端将海量的分布式日志数据上报给服务器时,根据服务器的压力等级动态调整上报的时间,从而有效缓解了服务器的压力,尤其是在服务器处理能力有限时,能够避免大量的日志数据上报而导致服务不可用的情况。
此外,服务器通过kafka消息队列对日志数据进行处理,分担了服务器的压力,减少服务的耦合度,提高了服务质量与数据质量。
附图说明
图1为本发明实施例中进行信息交互的各方硬件实体的示意图;
图2为本发明实施例的日志收集方法的流程示意图;
图3为本发明实施例的日志收集方法的流程示意图;
图4为本发明实施例的客户端的结构组成示意图;
图5为本发明实施例的服务器的结构组成示意图;
图6为本发明实施例的电子设备的各硬件模块的示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
图1为本发明实施例中进行信息交互的各方硬件实体的示意图,图1中包括:服务器11、终端设备21-2n,终端设备21-2n通过无线网络与服务器进行信息交互,终端设备为手机。一个示例中,终端设备21-2n安装有客户端,也称为应用(APP),客户端通过终端设备将与应用相关的日志数据上报给服务器,从而维护人员可以对日志数据进行分析。本发明实施例中,客户端向服务器上报日志数据时,根据服务器的压力等级来动态上报日志数据,从而可以平衡服务器的压力,并且,服务器成功接收到日志数据时,通过kafka消息队列对日志数据进行处理,将消息的生产与消费分为上游与下游,有效的分担了服务器的压力。
上述图1的例子只是实现本发明实施例的一个系统架构实例,本发明实施例并不限于上述图1所述的系统结构,基于该系统架构,提出本发明各个实施例。
图2为本发明实施例的日志收集方法的流程示意图,本示例中的日志收集方法应用于客户端侧,如图2所示,所述日志收集方法包括以下步骤:
步骤201:收集日志数据。
本发明实施例中,客户端,也即应用(APP)中均安装有推送包(pushSDK),通过pushSDK能够将客户端收集到的日志数据上报给服务器。
当在终端设备中安装客户端时,客户端便开始收集日志数据。收集的日志数据主要包括:终端设备的标识(device_id),终端设备的令牌(device_token),软件开发工具包(SDK,Software Development Kit)版本号等、网络变化情况、客户端运行逻辑等。
步骤202:向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数。
首先,客户端尝试与服务器建立连接,当建立好连接通道时,客户端会将日志数据传送给服务器,服务器端会返回给客户端所述服务器的压力等级参数。
在一实施方式中,客户端将所述日志数据以JSON格式发送给服务器;客户端接收所述服务器以JSON格式发送的所述服务器的压力等级参数。具体实现时,客户端可以每次都将一定数目,如100条日志数据以JSON格式发送给服务器。
这里,压力等级参数是客户端进行下一次上报日志数据的判断条件。
步骤203:根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
在一实施方式中,客户端还接收所述服务器发送的接收状态参数,所述接收状态参数包括三种:接收成功(success),接收失败参数(fail),接收等待(wait)。在一实施方式中,当所述接收状态参数表征所述服务器为接收等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
本发明实施例中,当所述接收状态参数表征所述服务器接收日志数据成功时,则客户端直接(也即在当前时刻)再次向服务器上传日志数据。
本发明实施例中,当所述接收状态参数表征所述服务器接收日志数据失败时,对接收失败的所述日志数据进行格式检测;当所述日志数据的格式因为封装发生错误而导致不是正确的JSON格式时,重新将正确的JSON格式的所述日志数据发送给所述服务器。
本发明实施例中,当所述接收状态参数表征所述服务器接收日志数据处于等待状态时,延迟向服务器发送日志数据。
此外,接收状态参数为接收成功(success)或者是接收失败(fail)时,客户端还可以根据服务器的压力等级参数来判定服务器的性能状态,从而能够让客户端更好的控制后续上报日志的上报时间。
本发明实施例中,服务器在整个过程中都通过simple-metrics对整个服务器的压力级别进行实时监控。此外,还可以直接通过检测服务器的各个硬件资源负载来对服务器的压力级别进行判定。所述服务器的压力等级参数能够表征N种压力等级,N为正整数,其中,每种压力等级对应不同的目标时间。以N=3为例,在一实施方式中,服务器的压力等级参数包括:第一压力等级、第二压力等级、第三压力等级。当然,也可以将服务器的压力等级参数根据实际应用场景进行其他形式的划分。
第一压力等级、第二压力等级、第三压力等级所代表的服务器的各个压力情况依次增大。
本发明实施例中,服务器返回的接收状态参数与服务器的压力等级参数表征两个不同的概念,其中,服务器返回的接收状态参数是指:服务器接收到客户端发送的日志数据后,确定出接收到日志数据是否成功,如果接收成功,则返回接收成功(success),如果接收失败,则返回接收失败(fail),如果暂时无法接收日志数据,则返回接收等待(wait)。服务器的压力等级参数表征了服务器当前的处理能力。如果客户端接收到的接收状态参数是接收等待(wait),则表明服务器暂时无法接收日志数据,需要客户端进一步根据服务器返回的压力等级参数来确定下一次向服务器重新上报日志数据的时间。
当所述接收状态参数表征所述服务器为接收等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间,具体地,
确定与所述服务器的压力等级参数相对应的延迟基数值;
根据所述延迟基数值以及随机数值,计算得到所述目标时间,其中,所述服务器的压力等级参数越大时,与所述服务器的压力等级参数相对应的延迟基数值越大。例如:
1)当所述压力等级参数表征所述服务器处于第一压力等级时,根据所述第一压力等级所确定的延迟基数值以及一个随机数值,计算得到下一次向所述服务器发送日志数据的目标时间。
例如,客户端以当前时刻为起点延迟20分钟加一个范围内的随机时长后,再次上传日志数据。
2)当所述压力等级参数表征所述服务器处于第二压力等级时,根据所述第二压力等级所确定的延迟基数值以及一个随机数值,计算得到下一次向所述服务器发送日志数据的目标时间。
例如,客户端以当前时刻为起点延迟一个小时加一个范围内的随机时长后,再次上传日志数据。
3)当所述压力等级参数表征所述服务器处于第三压力等级时,根据所述第三压力等级所确定的延迟基数值以及一个随机数值,计算得到下一次向所述服务器发送日志数据的目标时间。
例如,客户端以当前时刻为起点延迟四个小时加一个范围内的随机时长后,再次上传日志数据。
上述方案中,压力等级越大,则表明服务器的处理能力越差,对应地,该压力等级的延迟基数值则越大,这样,可以使客户端延长更长的时间进行下一次日志的上报,从而缓解了服务器的压力。
上述方案中,所述随机数值的确定方式能够动态改变。例如:随机时长根据服务器的压力高峰时间段正太分布,避免高峰时间里客户端频繁与服务器交互。这里,当随机时长根据服务器的压力高峰时间段正太分布时,压力高峰时间所对应的随机时长最长,而压力高峰时间所对应的服务器的压力是最大的,因此,需要通过最长的随机时长来计算目标时间,避免高峰时间里客户端频繁与服务器交互。
此外,作为优选,当所述压力等级参数超过门限值时,丢弃下一次向所述服务器发送的日志数据,或者将下一次向所述服务器发送的日志数据进行简化并在距离当前时刻超过预设时长的时刻发送给所述服务器。
这里,日志数据进行简化是指:根据预设的策略删除日志数据中不重要的信息内容,从而将日志数据中较为重要的内容上报给服务器,以减轻服务器的压力。其中,预设的策略可以根据业务灵活设置,例如:当业务为计费业务时,则将与资金无关的冗余内容删除掉,保留与资金有关的信息内容。具体实现时,可以预先设置关键词,然后对日志数据进行逐一排查过滤,将出现关键词的语句保留,其余的语句删除,从而实现对日志数据的简化。
这里,距离当前时刻超过预设时长可以是第二天的某个时刻,这样可以缓解服务器当前的压力。其中,对于第二压力等级或者第三压力等级的延迟基数值而言,预设时长需要均大于他们的延迟基数值,这样,超过门限值的压力等级参数所对应的目标时间才能够晚于第二压力等级或者第三压力等级对应的目标时间。
步骤204:在所述目标时间达到时,向所述服务器发送日志数据。
服务器成功接收到日志数据后,通过kafka消息队列对所述日志数据进行处理。
本发明实施例中,客户端根据服务器的压力动态上报日志数据,从而可以有效缓解服务器的压力;在服务器处理能力有限的前提下,避免了大量数据导致服务不可用的情况,平衡了服务器的资源。并且通过kafka消息队列增加服务器的处理能力,在大量的服务器请求压力下,分担了服务器的压力,减少了服务器的耦合度,提高了服务质量和数据质量。
图3为本发明实施例的日志收集方法的流程示意图,本示例中的日志收集方法应用于服务器侧,如图3所示,所述日志收集方法包括以下步骤:
步骤301:接收客户端发送的日志数据。
本发明实施例中,客户端,也即应用(APP)中均安装有推送包(pushSDK),通过pushSDK能够将客户端收集到的日志数据上报给服务器。
当在终端设备中安装客户端时,客户端便开始收集日志数据。收集的日志数据主要包括:终端设备的标识(device_id),终端设备的令牌(device_token),软件开发工具包(SDK,Software Development Kit)版本号等、网络变化情况、客户端运行逻辑等。
首先,客户端尝试与服务器建立连接,当建立好连接通道时,客户端会将日志数据传送给服务器。在一实施方式中,服务器接收客户端以JSON格式发送的日志数据。具体实现时,客户端可以每次都将一定数目,如200条日志数据以JSON格式发送给服务器。
步骤302:向所述客户端发送服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
本发明实施例中,服务器向所述客户端以JSON格式发送服务器的压力等级参数。
这里,压力等级参数是客户端进行下一次上报日志数据的判断条件。
在一实施方式中,服务器还向所述客户端发送服务器的接收状态参数,所述接收状态参数包括三种:接收成功(success),接收失败参数(fail),接收等待(wait)。
本发明实施例中,当所述接收状态参数表征所述服务器接收日志数据成功时,则客户端直接(也即在当前时刻)再次向服务器上传日志数据。
本发明实施例中,当所述接收状态参数表征所述服务器接收日志数据失败时,对接收失败的所述日志数据进行格式检测;当所述日志数据的格式不是JSON格式时,重新将JSON格式的所述日志数据发送给所述服务器。
本发明实施例中,当所述接收状态参数表征所述服务器接收日志数据处于等待状态时,延迟向服务器发送日志数据。
本发明实施例中,服务器在整个过程中都通过simple-metrics对整个服务器的压力级别进行实时监控。此外,还可以直接通过检测服务器的各个硬件资源负载来对服务器的压力级别进行判定。所述服务器的压力等级参数能够表征N种压力等级,N为正整数,其中,每种压力等级对应不同的目标时间。以N=3为例,在一实施方式中,服务器的压力等级参数包括:第一压力等级、第二压力等级、第三压力等级。当然,也可以将服务器的压力等级参数根据实际应用场景进行其他形式的划分。
第一压力等级、第二压力等级、第三压力等级所代表的服务器的各个压力情况依次增大。
本发明实施例中,服务器返回的接收状态参数与服务器的压力等级参数表征两个不同的概念,其中,服务器返回的接收状态参数是指:服务器接收到客户端发送的日志数据后,确定出接收到日志数据是否成功,如果接收成功,则返回接收成功(success),如果接收失败,则返回接收失败(fail),如果暂时无法接收日志数据,则返回接收等待(wait)。服务器的压力等级参数表征了服务器当前的处理能力。如果客户端接收到的接收状态参数是接收等待(wait),则表明服务器暂时无法接收日志数据,需要客户端进一步根据服务器返回的压力等级参数来确定下一次向服务器重新上报日志数据的时间。
在一实施方式中,当所述接收状态参数表征所述服务器为接收等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间,例如:
1)当所述压力等级参数表征所述服务器处于第一压力等级时,根据所述第一压力等级所确定的延迟基数值以及一个随机数值,计算得到下一次向所述服务器发送日志数据的目标时间。
例如,客户端以当前时刻为起点延迟20分钟加一个范围内的随机时长后,再次上传日志数据。
2)当所述压力等级参数表征所述服务器处于第二压力等级时,根据所述第二压力等级所确定的延迟基数值以及一个随机数值,计算得到下一次向所述服务器发送日志数据的目标时间。
例如,客户端以当前时刻为起点延迟一个小时加一个范围内的随机时长后,再次上传日志数据。
3)当所述压力等级参数表征所述服务器处于第三压力等级时,根据所述第三压力等级所确定的延迟基数值以及一个随机数值,计算得到下一次向所述服务器发送日志数据的目标时间。
例如,客户端以当前时刻为起点延迟四个小时加一个范围内的随机时长后,再次上传日志数据。
上述方案中,压力等级越大,则表明服务器的处理能力越差,对应地,该压力等级的延迟基数值则越大,这样,可以使客户端延长更长的时间进行下一次日志的上报,从而缓解了服务器的压力。
上述方案中,所述随机数值的确定方式能够动态改变。例如:随机时长根据服务器的压力高峰时间段正太分布,避免高峰时间里客户端频繁与服务器交互。这里,当随机时长根据服务器的压力高峰时间段正太分布时,压力高峰时间所对应的随机时长最长,而压力高峰时间所对应的服务器的压力是最大的,因此,需要通过最长的随机时长来计算目标时间,避免高峰时间里客户端频繁与服务器交互。
此外,当所述压力等级参数超过门限值时,丢弃下一次向所述服务器发送的日志数据,或者将下一次向所述服务器发送的日志数据进行简化并在距离当前时刻超过预设时长的时刻发送给所述服务器。
这里,日志数据进行简化是指:根据预设的策略删除日志数据中不重要的信息内容,从而将日志数据中较为重要的内容上报给服务器,以减轻服务器的压力。其中,预设的策略可以根据业务灵活设置,例如:当业务为计费业务时,则将与资金无关的冗余内容删除掉,保留与资金有关的信息内容。具体实现时,可以预先设置关键词,然后对日志数据进行逐一排查过滤,将出现关键词的语句保留,其余的语句删除,从而实现对日志数据的简化。
这里,距离当前时刻超过预设时长可以是第二天的某个时刻,这样可以缓解服务器当前的压力。其中,对于第二压力等级或者第三压力等级的延迟基数值而言,预设时长需要均大于他们的延迟基数值,这样,超过门限值的压力等级参数所对应的目标时间才能够晚于第二压力等级或者第三压力等级对应的目标时间。
步骤303:在所述目标时间达到时,接收所述客户端发送的日志数据。
服务器成功接收到日志数据后,通过kafka消息队列对所述日志数据进行处理。
具体地,当服务器成功接收日志数据后,将日志数据以生产者的方式存入kafka消息队列,kafka是一种高吞吐量的分布式发布订阅系统,kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。服务器下游通过消费kafka消息,将消息以固定格式通过开源日志系统(flume)存入数据仓库(hive)。
本发明实施例中,服务器采用kafka消息队列的方式,将消息的生产与消费分为上游与下游,有效的平衡了服务器的压力,方便在消费水平扩展,避免了单点故障等问题,使得系统容易监控和维护。
本发明实施例中,服务器通过动态收集日志数据的方式可以有效的平衡服务器的压力,避免通过某些客户端的漏洞(bug)或某种特殊情况引起数据量突增而导致服务不可用的情况。具体通过服务器不同的压力级别对客户端的上报的日志数据进行限制,平衡服务器的压力,在服务器资源一定的前提下能够保障海量数据请求服务的可用性。
图4为本发明实施例的客户端的结构组成示意图,如图4所示,所述客户端包括:
收集单元41,用于收集日志数据;
通信单元42,用于向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;
确定单元43,用于根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
所述通信单元42,还用于在所述目标时间达到时,向所述服务器发送日志数据。
本发明实施例中,所述通信单元42,还用于接收所述服务器发送的接收状态参数;
本发明实施例中,确定单元43,还用于当所述接收状态参数表征所述服务器为接收等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
本发明实施例中,所述通信单元42,还用于将所述日志数据以JSON格式发送给服务器;接收所述服务器以JSON格式发送的所述服务器的压力等级参数。
本发明实施例中,所述服务器的压力等级参数能够表征N种压力等级,N为正整数,其中,每种压力等级对应不同的目标时间。
本发明实施例中,所述确定单元43,还用于确定与所述服务器的压力等级参数相对应的延迟基数值;根据所述延迟基数值以及随机数值,计算得到所述目标时间,其中,所述服务器的压力等级参数越大时,与所述服务器的压力等级参数相对应的延迟基数值越大。
本发明实施例中,所述随机数值的确定方式能够动态改变。
本发明实施例中,所述客户端还包括:
丢弃单元44,用于当所述压力等级参数超过门限值时,丢弃下一次向所述服务器发送的日志数据;
简化单元45,用于当所述压力等级参数超过门限值时,将下一次向所述服务器发送的日志数据进行简化并在距离当前时刻超过预设时长的时刻发送给所述服务器。
本领域技术人员应当理解,图4所示的客户端中的各单元的实现功能可参照前述日志收集方法的相关描述而理解。图4所示的客户端中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
本发明实施例还提供了一种电子设备,参照图6,包括存储器61、处理器62及存储在存储器上并可在处理器上运行的计算机程序,所述处理器62执行所述程序时实现以下步骤:
收集日志数据;
向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;
根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,向所述服务器发送日志数据。
本领域技术人员应当理解,上述处理器所执行的步骤还可以包括本发明实施例中日志收集方法中所描述的任意相关步骤。
图5为本发明实施例的服务器的结构组成示意图,如图5所示,所述服务器包括:
通信单元51,用于接收客户端发送的日志数据;
确定单元52,用于确定服务器的压力等级参数;
所述通信单元51,还用于向所述客户端发送服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;在所述目标时间达到时,接收所述客户端发送的日志数据。
本发明实施例中,所述通信单元51,还用于向所述客户端发送服务器的接收状态参数,以使所述客户端在接收状态参数表征所述服务器为等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
本发明实施例中,所述通信单元51,还用于接收客户端以JSON格式发送的日志数据;向所述客户端以JSON格式发送服务器的压力等级参数。
本发明实施例中,所述服务器还包括:
kafka单元53,用于当成功接收日志数据后,通过分布式发布订阅系统kafka消息队列对所述日志数据进行处理。
本领域技术人员应当理解,图5所示的服务器中的各单元的实现功能可参照前述日志收集方法的相关描述而理解。图5所示的服务器中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
本发明实施例还提供了一种电子设备,参照图6,包括存储,61、处理器62及存储在存储器上并可在处理器上运行的计算机程序,所述处理器62执行所述程序时实现以下步骤:
接收客户端发送的日志数据;
向所述客户端发送所述服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,接收所述客户端发送的日志数据。
本领域技术人员应当理解,上述处理器所执行的步骤还可以包括本发明实施例中日志收集方法中所描述的任意相关步骤。
本发明实施例上述各个设备如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
相应地,本发明实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例中日志收集方法中所描述的任意相关步骤。
本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (16)

1.一种日志收集方法,其特征在于,所述方法包括:
收集日志数据;
向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;
根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,向所述服务器发送日志数据。
2.根据权利要求1所述的日志收集方法,其特征在于,所述根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间,包括:
接收所述服务器发送的接收状态参数;
当所述接收状态参数表征所述服务器为接收等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
3.根据权利要求1所述的日志收集方法,其特征在于,所述向服务器发送日志数据,包括:
将所述日志数据以JSON格式发送给服务器;
相应地,所述接收所述服务器发送的所述服务器的压力等级参数,包括:
接收所述服务器以JSON格式发送的所述服务器的压力等级参数。
4.根据权利要求1所述的日志收集方法,其特征在于,所述服务器的压力等级参数能够表征N种压力等级,N为正整数,其中,每种压力等级对应不同的目标时间。
5.根据权利要求4所述的日志收集方法,其特征在于,所述根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间,包括:
确定与所述服务器的压力等级参数相对应的延迟基数值;
根据所述延迟基数值以及随机数值,计算得到所述目标时间,其中,所述服务器的压力等级参数越大时,与所述服务器的压力等级参数相对应的延迟基数值越大。
6.根据权利要求5所述的日志收集方法,其特征在于,所述随机数值的确定方式能够动态改变。
7.根据权利要求1至6任一项所述的日志收集方法,其特征在于,所述方法还包括:
当所述压力等级参数超过门限值时,丢弃下一次向所述服务器发送的日志数据,或者将下一次向所述服务器发送的日志数据进行简化并在距离当前时刻超过预设时长的时刻发送给所述服务器。
8.一种日志收集方法,其特征在于,所述方法包括:
接收客户端发送的日志数据;
向所述客户端发送服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,接收所述客户端发送的日志数据。
9.根据权利要求8所述的日志收集方法,其特征在于,所述方法还包括:
向所述客户端发送服务器的接收状态参数,以使所述客户端在接收状态参数表征所述服务器为等待状态时,根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间。
10.根据权利要求8所述的日志收集方法,其特征在于,所述接收客户端发送的日志数据,包括:
接收客户端以JSON格式发送的日志数据;
相应地,所述向所述客户端发送服务器的压力等级参数,包括:
向所述客户端以JSON格式发送服务器的压力等级参数。
11.根据权利要求8所述的日志收集方法,其特征在于,所述方法还包括:
当成功接收日志数据后,通过分布式发布订阅系统kafka消息队列对所述日志数据进行处理。
12.一种客户端,其特征在于,所述客户端包括:
收集单元,用于收集日志数据;
通信单元,用于向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;
确定单元,用于根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
所述通信单元,还用于在所述目标时间达到时,向所述服务器发送日志数据。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
收集日志数据;
向服务器发送日志数据,接收所述服务器发送的所述服务器的压力等级参数;
根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,向所述服务器发送日志数据。
14.一种服务器,其特征在于,所述服务器包括:
通信单元,用于接收客户端发送的日志数据;
确定单元,用于确定服务器的压力等级参数;
所述通信单元,还用于向所述客户端发送服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;在所述目标时间达到时,接收所述客户端发送的日志数据。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
接收客户端发送的日志数据;
向所述客户端发送服务器的压力等级参数,以使所述客户端根据所述服务器的压力等级参数确定下一次向所述服务器发送日志数据的目标时间;
在所述目标时间达到时,接收所述客户端发送的日志数据。
16.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-11任一项所述方法的步骤。
CN201610867937.8A 2016-09-29 2016-09-29 日志收集方法、客户端、服务器和电子设备 Active CN106470123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610867937.8A CN106470123B (zh) 2016-09-29 2016-09-29 日志收集方法、客户端、服务器和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610867937.8A CN106470123B (zh) 2016-09-29 2016-09-29 日志收集方法、客户端、服务器和电子设备

Publications (2)

Publication Number Publication Date
CN106470123A true CN106470123A (zh) 2017-03-01
CN106470123B CN106470123B (zh) 2019-07-05

Family

ID=58230805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610867937.8A Active CN106470123B (zh) 2016-09-29 2016-09-29 日志收集方法、客户端、服务器和电子设备

Country Status (1)

Country Link
CN (1) CN106470123B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197015A (zh) * 2017-12-29 2018-06-22 天脉聚源(北京)科技有限公司 以消息的方式写入日志数据的方法及装置
CN108574605A (zh) * 2017-03-07 2018-09-25 中国移动通信有限公司研究院 一种用户行为数据的采集方法及装置
CN108880920A (zh) * 2017-05-08 2018-11-23 阿里巴巴集团控股有限公司 云服务管理方法、装置以及电子设备
CN109547234A (zh) * 2018-10-18 2019-03-29 广州市百果园信息技术有限公司 一种数据处理、上报方法、装置、设备和存储介质
CN111478789A (zh) * 2020-03-02 2020-07-31 深圳市创维群欣安防科技股份有限公司 一种日志采集方法、系统、终端、服务器及存储介质
CN111865674A (zh) * 2020-07-09 2020-10-30 腾讯科技(深圳)有限公司 一种日志处理方法、装置及介质
CN112256659A (zh) * 2020-10-19 2021-01-22 北京达佳互联信息技术有限公司 日志上报方法、接收方法、装置、电子设备及存储介质
CN112988679A (zh) * 2021-03-18 2021-06-18 北京大米科技有限公司 日志采集控制方法、装置、存储介质及服务器
CN115296973A (zh) * 2022-05-06 2022-11-04 北京数联众创科技有限公司 一种前端日志批量收集发送的方法、装置及应用

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101849384A (zh) * 2007-11-06 2010-09-29 朗讯科技公司 用于控制网络系统负载均衡的方法、客户机、服务器以及网络系统
CN103401937A (zh) * 2013-08-07 2013-11-20 中国科学院信息工程研究所 日志数据处理方法及系统
CN104125115A (zh) * 2014-08-01 2014-10-29 浪潮(北京)电子信息产业有限公司 一种日志信息传送方法及装置
CN104168274A (zh) * 2014-08-05 2014-11-26 广州华多网络科技有限公司 数据获取请求的处理方法、客户端及服务器
CN105630650A (zh) * 2015-12-25 2016-06-01 北京奇虎科技有限公司 一种日志处理方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101849384A (zh) * 2007-11-06 2010-09-29 朗讯科技公司 用于控制网络系统负载均衡的方法、客户机、服务器以及网络系统
CN103401937A (zh) * 2013-08-07 2013-11-20 中国科学院信息工程研究所 日志数据处理方法及系统
CN104125115A (zh) * 2014-08-01 2014-10-29 浪潮(北京)电子信息产业有限公司 一种日志信息传送方法及装置
CN104168274A (zh) * 2014-08-05 2014-11-26 广州华多网络科技有限公司 数据获取请求的处理方法、客户端及服务器
CN105630650A (zh) * 2015-12-25 2016-06-01 北京奇虎科技有限公司 一种日志处理方法、装置及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108574605A (zh) * 2017-03-07 2018-09-25 中国移动通信有限公司研究院 一种用户行为数据的采集方法及装置
CN108880920A (zh) * 2017-05-08 2018-11-23 阿里巴巴集团控股有限公司 云服务管理方法、装置以及电子设备
CN108880920B (zh) * 2017-05-08 2022-01-25 阿里巴巴集团控股有限公司 云服务管理方法、装置以及电子设备
CN108197015A (zh) * 2017-12-29 2018-06-22 天脉聚源(北京)科技有限公司 以消息的方式写入日志数据的方法及装置
CN109547234A (zh) * 2018-10-18 2019-03-29 广州市百果园信息技术有限公司 一种数据处理、上报方法、装置、设备和存储介质
CN111478789A (zh) * 2020-03-02 2020-07-31 深圳市创维群欣安防科技股份有限公司 一种日志采集方法、系统、终端、服务器及存储介质
CN111865674A (zh) * 2020-07-09 2020-10-30 腾讯科技(深圳)有限公司 一种日志处理方法、装置及介质
CN111865674B (zh) * 2020-07-09 2024-01-09 腾讯科技(深圳)有限公司 一种日志处理方法、装置及介质
CN112256659A (zh) * 2020-10-19 2021-01-22 北京达佳互联信息技术有限公司 日志上报方法、接收方法、装置、电子设备及存储介质
CN112988679A (zh) * 2021-03-18 2021-06-18 北京大米科技有限公司 日志采集控制方法、装置、存储介质及服务器
CN112988679B (zh) * 2021-03-18 2024-04-12 北京大米科技有限公司 日志采集控制方法、装置、存储介质及服务器
CN115296973A (zh) * 2022-05-06 2022-11-04 北京数联众创科技有限公司 一种前端日志批量收集发送的方法、装置及应用

Also Published As

Publication number Publication date
CN106470123B (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CN106470123A (zh) 日志收集方法、客户端、服务器和电子设备
US9894021B2 (en) Cloud messaging services optimization through adaptive message compression
US10560465B2 (en) Real time anomaly detection for data streams
US8135979B2 (en) Collecting network-level packets into a data structure in response to an abnormal condition
CN103853627B (zh) 由与物理机器相关地分析虚拟机器性能问题原因的方法和系统
CN105338061A (zh) 一种轻量级消息中间件的实现方法与系统
CN111966289B (zh) 基于Kafka集群的分区优化方法和系统
CN111913818A (zh) 一种确定服务间依赖关系的方法及相关装置
CN108880934B (zh) 一种基于区块链的数据流量统计方法和装置
CN108718347A (zh) 一种域名解析方法、系统、装置及存储介质
CN109039787A (zh) 日志处理方法、装置及大数据集群
WO2019152021A1 (en) Monitoring web applications including microservices
CN108197008A (zh) 一种日志收集方法、系统、装置及计算机可读存储介质
CN114706675A (zh) 基于云边协同系统的任务部署方法及装置
CN106789853A (zh) 一种转码器的动态调度方法及装置
CN111694721A (zh) 一种微服务的故障监测方法和装置
CN110502495A (zh) 一种应用服务器的日志收集方法及装置
CN109302723A (zh) 一种基于互联网的多节点实时无线电监测控制系统及控制方法
CN112054926B (zh) 集群管理方法、装置、电子设备及存储介质
CN111901174B (zh) 一种服务状态通知的方法、相关装置及存储介质
CN111813621A (zh) 基于Flume数据中台的数据处理方法、装置、设备及介质
KR102448702B1 (ko) 엣지 서비스 증설 제어 시스템 및 그 제어방법
KR102639786B1 (ko) 메시지큐를 이용한 무중단 로그 전송 시스템 및 방법
CN116743589B (zh) 云主机迁移方法、装置及电子设备
US11526784B2 (en) Real-time server capacity optimization tool using maximum predicted value of resource utilization determined based on historica data and confidence interval

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