CN108121637B - 一种用于记录应用日志的方法与装置 - Google Patents

一种用于记录应用日志的方法与装置 Download PDF

Info

Publication number
CN108121637B
CN108121637B CN201711376584.2A CN201711376584A CN108121637B CN 108121637 B CN108121637 B CN 108121637B CN 201711376584 A CN201711376584 A CN 201711376584A CN 108121637 B CN108121637 B CN 108121637B
Authority
CN
China
Prior art keywords
application
data
protocol
traffic
traffic data
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
Application number
CN201711376584.2A
Other languages
English (en)
Other versions
CN108121637A (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.)
Gaeamobile Co ltd
Original Assignee
Gaeamobile 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 Gaeamobile Co ltd filed Critical Gaeamobile Co ltd
Priority to CN201711376584.2A priority Critical patent/CN108121637B/zh
Publication of CN108121637A publication Critical patent/CN108121637A/zh
Application granted granted Critical
Publication of CN108121637B publication Critical patent/CN108121637B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的目的是提供一种用于记录应用日志的方法与设备。与现有技术相比,本发明获取应用服务器的出入流量数据,并对所述出入流量数据进行解析,以生成应用的应用数据以及与所述应用数据相对应的应用协议,然后,根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志;从而,本发明解决了当前对在线应用服务的日志记录的不全面、不便捷、更新慢的问题,节省了开发人员手工埋点以记录日志的工作量。进一步地,本发明还基于流量识别来生成应用日志,并解析应用协议的频次或时间变化,然后根据上述信息实现服务异常的监控;从而帮助工程师在问题发生后快速地定位到具体被攻击的服务内容,实现了高效、快速的监控。

Description

一种用于记录应用日志的方法与装置
技术领域
本发明涉及网络技术领域,尤其涉及一种用于记录应用日志的技术。
背景技术
在在线应用服务的开发与上线服务过程中,工程师一般通过记录日志的方式来记录下关键事件的发生情况和具体内容,例如在用户登录服务器的时候,可以记录下用户的IP信息、用户名、设备信息、登录时间等,以作为日志信息。也就是说,在用户使用了某个服务的时候,可以通过日志信息来记录下用户当时的状态信息。
但是这类日志的记录,一般要求工程师按照某个特定的规范来进行记录,以记录特定的字段;同时也需要配合后续的日志收集和存储工具来将单个服务器或者手机端的日志收集汇总存储在一起。这种需求导致了在日志记录的实现与维护过程中,需要多名工程师进行开发维护,甚至需要多个部门之间的配合和协调,以确保日志记录的格式与流程。
此外,由于每添加一个新的日志类别都需要新的开发工作,因此一般情况下,这类日志信息记录的范围或类别是有限的,日志的更新效率也较低,从而当在线应用服务上线以后,会频繁地出现日志记录信息类别或条目的遗漏问题。然而,此时,由于记录的时间已经结束,所丢失的信息无法找回,从而使得有些信息永久丢失。
从另一方面来看,当前对于在线应用服务的监控,一般采用的是监控服务器的一些基础指标,例如CPU使用情况、内存使用情况、磁盘使用情况、以及一些服务相关的统计信息(如同时在线人数、平均响应速度)等。这些指标一方面需要较高的开发成本,另外一方面对于服务的监控却只能起到非常基础的监控作用,很难用来识别服务器正在遭受的特定攻击。例如,服务器目前CPU和内存的使用上升到了很高的程度,但是这种非正常的状态是因为用户操作触发了服务器的某些逻辑漏洞,还是因为服务器正在遭受外部攻击,则无法通过对上述指标的监控来发掘原因。
发明内容
本发明的目的是提供一种用于记录应用日志的方法与设备。
根据本发明的一个实施例,提供了一种用于记录应用日志的方法,其中,该方法包括以下步骤:
获取应用服务器的出入流量数据;
解析所述出入流量数据,以生成应用的应用数据以及与所述应用数据相对应的应用协议,其中,所述应用对应于所述应用服务器;
根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
可选地,该方法还包括:
监控所述应用协议所对应的一个或多个监控参数;
若至少一条所述应用协议的至少一个所述监控参数超过阈值,则触发警报。
可选地,所述监控参数包括以下至少任一项:
所述应用协议所对应的频次;
所述应用协议所对应的随时间变化的状态。
可选地,获取应用服务器的出入流量数据的步骤包括:
将应用服务器的出入流量数据镜像并存储至镜像存储设备中;
从所述镜像存储设备中读取所述出入流量数据。
可选地,生成应用的应用数据以及与所述应用数据相对应的应用协议的步骤包括:
基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;
基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;
根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
可选地,将所述流量数据包进行分组的步骤包括:
基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组。
可选地,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话的步骤包括:
根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;
基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
可选地,该方法还包括:
根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;
其中,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议的步骤包括:
根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
根据本发明的另一个实施例,还提供了一种用于记录应用日志的生成设备,其中,该设备包括:
第一装置,用于获取应用服务器的出入流量数据;
第二装置,用于解析所述出入流量数据,以生成应用的应用数据以及与所述应用数据相对应的应用协议,其中,所述应用对应于所述应用服务器;
第三装置,用于根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
可选地,该设备还包括:
第四装置,用于监控所述应用协议所对应的一个或多个监控参数;
第五装置,用于若至少一条所述应用协议的至少一个所述监控参数超过阈值,则触发警报。
可选地,所述监控参数包括以下至少任一项:
所述应用协议所对应的频次;
所述应用协议所对应的随时间变化的状态。
可选地,所述第一装置用于:
将应用服务器的出入流量数据镜像并存储至镜像存储设备中;
从所述镜像存储设备中读取所述出入流量数据。
可选地,所述第二装置包括:
二一单元,用于基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;
二二单元,用于基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;
二三单元,用于根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
可选地,所述二二单元用于:
基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
可选地,所述二二单元用于:
基于所述数据传输相关信息,将所述流量数据包进行分组;
根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;
基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
可选地,该设备还包括:
第六装置,用于根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;
其中,所述二三单元用于:
根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
根据本发明的另一个实施例,还提供了一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机可读指令,当所述计算机可读指令被一个或多个设备执行时,使得所述设备执行如上述任一项所述的方法。
根据本发明的另一个实施例,还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述任一项所述的方法。
与现有技术相比,本发明获取应用服务器的出入流量数据,并对所述出入流量数据进行解析,以生成应用的应用数据以及与所述应用数据相对应的应用协议,然后,根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。从而,本发明解决了当前对在线应用服务的日志记录的不全面、不便捷、更新慢的问题,节省了开发人员手工埋点以记录日志的工作量。
而且,本发明还可以监控所述应用协议所对应的一个或多个监控参数,若至少一条所述应用协议的至少一个所述监控参数超过阈值,则触发警报。从而,本发明基于流量识别来生成应用日志,并解析应用协议的频次或时间变化,然后根据上述信息实现服务异常的监控;这种方法能够记录所有日志信息并且监控在线服务状况,例如监控应用服务器遭受的攻击,并将攻击细化到单个或者多个应用协议的程度,帮助工程师在问题发生后快速地定位到具体被攻击的服务内容,甚至在问题正在发生、还没有造成严重影响时候就监控到问题,解决了日志记录困难、记录信息不全的问题,实现了高效、快速的监控。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明的一个优选实施例的一种用于记录应用日志的系统架构图;
图2示出根据本发明一个方面的一种用于记录应用日志的生成设备示意图;
图3示出根据本发明的一个优选实施例的一种用于记录应用日志的生成设备示意图;
图4示出根据本发明另一个方面的一种用于记录应用日志的方法流程图;
图5示出根据本发明的一个优选实施例的一种用于记录应用日志的方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称的“生成设备”,即为“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。
所述计算机设备包括用户设备和/或网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
本领域技术人员应能理解,一般情况下,本发明中所述的“生成设备”可以仅是网络设备,即由网络设备来执行相应的操作;在特殊情况下,也可以是由用户设备与网络设备或服务器相集成来组成,即由用户设备与网络设备相配合来执行相应的操作,例如,由用户设备向网络设备发送指令,以指示网络设备开始执行“记录应用日志”的相应操作。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
本领域技术人员应能理解,本发明可应用于任意应用的应用日志记录,也就是说,所有涉及网络交互的应用服务的场景,均可利用本发明来记录BI日志(BusinessIntelligence Log)。在此,所述应用包括移动应用以及非移动应用。
优选地,本发明适用于游戏应用的日志记录。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明的一个优选实施例的一种用于记录应用日志的系统架构图。
用户与应用服务器通过网络进行交互,以获取所述应用服务器所提供的应用服务。在上述交互过程中,用户的客户端与所述应用服务器之间产生了大量的出入流量数据,镜像存储设备通过在网络中的任一点上,对所述出入流量数据进行镜像,以获取所述出入流量数据。优选地,所述镜像存储设备可以根据指令,与需要获取的特定的一个或多个应用服务器相交互,以获取该应用服务器与用户之间的出入流量数据。
生成设备通过与所述镜像存储设备相交互,以获取所述出入流量数据并进行解析,以生成应用的应用数据以及与所述应用数据相对应的应用协议,进一步地,基于所述应用数据以及所述应用协议,生成与所述应用相对应的应用日志。从而,所述生成设备无需与所述应用服务器相交互,整个解析与生成过程对于所述应用服务器是透明的,不会对所述应用服务器产生任何影响,从而也就不会影响到正常的应用服务。
图2示出根据本发明一个方面的一种用于记录应用日志的生成设备示意图;其中,所述生成设备包括第一装置1、第二装置2以及第三装置3。
具体地,所述第一装置1获取应用服务器的出入流量数据;所述第二装置2解析所述出入流量数据,以生成应用的应用数据以及与所述应用数据相对应的应用协议,其中,所述应用对应于所述应用服务器;所述第三装置3根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
所述第一装置1获取应用服务器的出入流量数据。
具体地,所述第一装置1通过直接与所述应用服务器进行交互,以获取所述应用服务器与用户间的出入流量数据,或者,所述第一装置1通过与其他能够提供所述出入流量数据的设备相交互,以获取所述其他设备所提供的、所述应用服务器的出入流量数据。
优选地,所述第一装置1将应用服务器的出入流量数据镜像并存储至镜像存储设备中,然后,从所述镜像存储设备中读取所述出入流量数据。
具体地,所述第一装置1在网络中的任一点上,对所述应用服务器的出入流量数据进行镜像,以获取所述出入流量数据并将其存储之镜像存储设备中;然后,所述第一装置1从所述镜像存储设备中读取所述出入流量数据。
优选地,所述第一装置1可以是多个装置的集合,以分别执行镜像出入流量数据以及读取所述出入流量数据;其中,用于执行镜像的装置可以是分光装置,也可以是其他可以执行镜像操作的装置。优选地,所述镜像存储设备的存储方式包括但不限于分布式文件系统或者消息队列,所述第一装置1可以基于对所述出入流量数据的处理需求,以选择具有特定存储方式的镜像存储设备,以执行对出入流量数据的存储。
所述第二装置2解析所述出入流量数据,以生成应用的应用数据以及与所述应用数据相对应的应用协议,其中,所述应用对应于所述应用服务器。
具体地,所述第二装置2基于数据传输相关协议以及所述应用的应用协议通过对所述出入流量数据的每个流量数据包进行解析,以确定每个流量数据包所对应的应用协议,然后,将相同协议的流量数据包进行解析,以获取该应用的应用数据。
或者,所述第二装置2基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;然后,基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;最后,根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
在此,所述应用协议即为该应用所特有的协议,如游戏应用的游戏协议,购物应用的购物应用协议等。一个应用可以对应一种或多种应用协议,以一个游戏应用为例,可以包含“玩家送花给别人”的应用协议、“执行交互任务”的应用协议、“购买道具”的应用协议等。
本领域技术人员应能理解,一个应用协议可以对应于多条应用数据,以“玩家送花给别人”的应用协议(以下简称“送花协议”)为例,在这个送花协议中,可以包含“时间、服务器IP、玩家IP、网络会话的编号、收花人ID、鲜花物品ID、鲜花数量、留言”等多项内容。
当对所述出入流量数据进行解析时,通过对每个流量数据包或每个会话进行解析,以生成每个流量数据包或会话所对应的应用数据以及应用协议,例如“收花人ID——送花协议”、“鲜花数量——送花协议”、“留言——送花协议”等。
本领域技术人员应能理解,所述第二装置2可以对应于多个装置,这些装置形成分布式集群,以通过分布式的方式对所述出入流量数据进行解析。
所述第三装置3根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
具体地,所述第三装置3根据所述应用数据以及所述应用数据相对应的应用协议,通过直接将所述应用数据以及相对应的应用协议进行存储,或者通过对所述应用协议以及对应的应用数据进行统计并整合等方式,以生成与所述应用相对应的应用日志。
例如,将对应于同一应用协议的应用数据进行整合,将对应于同一时间的应用数据以及其对应的应用协议进行整合,将对应于其他参数的应用数据以及应用协议进行整合等,从而生成包含应用数据以及应用协议之间的对应关系的应用日志。
在此,所生成的应用日志可以是BI日志(Business Intelligence log),所生成的应用日志可以采用多种格式,例如JSON格式进行储存;此外,所生成的应用日志可以存储在分布式或非分布式的文件系统中。
一般地,一个应用协议中可以包含“用户ID、报文发生时间、服务器IP、用户IP、会话编号”等信息,进一步地,基于具体协议的不同,还会包含有其他的应用数据内容。
继上述的“送花协议”为例,其需要包含“收花人id”、“鲜花的物品id”、“鲜花数量”、“留言”等内容,从而,在应用日志中,“送花协议”就会额外包括“收花人id”、“鲜花的物品id”、“鲜花数量”、“留言”等应用数据的信息。
从而,通过对应用协议进行解析,应用工程师不需要记录任何服务日志,因为,所需要的所有信息均可以通过对应用协议进行解析来获得。解析后的内容中包含了每个行为中所有的信息,每个新更新功能中的所有信息,从而不会出现新版本更新后缺少相应的日志,或者运行一段时间后发现某个日志少记录了一些信息的情况。
进一步地,通过对出入流量数据的分析,还能够实现任意时刻均可以还原相应的信息,不会数据丢失,不存在当日志未记录就无法再得知相应信息的情况。
以游戏为例,通过本发明所述的方法,玩家之间的聊天信息、活动信息(如玩家在移动过程中的所有位置信息)、交互信息(如交互对象、交互数量等)等均可以通过对出入流量数据的分析进行获取。而通过对上述内容的监控,可以得知玩家之间是否存在线下交易、是否利用漏洞位置进行作弊、是否通过脚本注册新账户以频繁给主账号互动以获取系统奖励等。
优选地,所述生成设备还包括第四装置(未示出)以及第五装置(未示出),其中,所述第四装置监控所述应用协议所对应的一个或多个监控参数;若至少一条所述应用协议的至少一个所述监控参数超过阈值,则所述第五装置触发警报。
具体地,所述第四装置实时或基于其他预设的方式,对所述应用协议所对应的一个或多个监控参数进行监控,其中,所述监控参数可以基于所述应用协议所对应的整体数据中的一种或多种(如监控该应用协议所对应的全部应用数据的传输数量)进行确定,也可以是基于所述应用协议中所包含的一个或多个应用内容所对应的参数(如前述“送花协议”中的送花数量、送花id等)进行确定。
本领域技术人员应能理解,所述监控参数可以直接基于所述应用内容或应用协议所对应的参数进行确定,如直接将“送花数量”作为监控参数之一;也可以是在上述参数的基础上,通过监控这类参数的变化,以生成新的监控参数。
更优选地,所述监控参数包括以下至少任一项:
所述应用协议所对应的频次:即在某一时间段范围内,所述应用协议整体或者所述应用协议中所包含的一个或多个应用内容所被调用的次数;
所述应用协议所对应的随时间变化的状态:即在多个时间范围内,所述应用协议中的一个或多个应用数据随着时间变化的情况,如送花数量的突然增长或暴跌,或者送花数量的频繁变化等。
然后,若至少一条所述应用协议的至少一个所述监控参数超过阈值,则所述第五装置触发警报。例如,若某个应用协议的所对应的调用数量出现了异常的增长或下降,则所述第五装置触发警报。
从而,本发明可以实时监控应用情况,例如,通过对警报的分析,得知是否是对服务器的攻击以及是否是程序出现了漏洞等。
图3示出根据本发明的一个优选实施例的一种用于记录应用日志的生成设备示意图;所述生成设备包括第一装置1、第二装置2、第三装置3,其中,所述第二装置2包括二一单元21、二二单元22以及二三单元23。
具体地,所述第一装置1获取应用服务器的出入流量数据;所述第二装置2的二一单元21基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;所述二二单元22基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;所述二三单元23根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议;所述第三装置3根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
其中,所述第一装置1与所述第三装置3与图2所述的对应装置相同或相似,故在此不再赘述,并通过引用的方式包含于此。
所述二一单元21基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息。
具体地,所述二一单元21通过与所述第一装置1或是直接与所述镜像存储设备相交互,以读取所述第一装置1或是所述镜像存储设备中的出入流量数据;然后,所述二一单元21根据所述应用服务器所采用的数据传输协议,对所述出入流量数据中的每个流量数据包进行解析,以获取数据传输相关信息。
当所述二一单元21读取每条出入流量数据时,每条出入流量数据都是二进制的数据数组;然后,所述二一单元21解析这些二进制的数组,首先根据数据传输协议还原出,例如Ethernet头、IP头、TCP/UDP头以及在上述头之后的、所传输的数据部分。然后,所述二一单元21对上述信息进行进一步分析,以得到数据传输相关信息。
其中,所述数据传输相关信息包括但不限于每个流量数据包所对应的发送IP与端口、接收IP与端口、SEQ、ACK、数据包大小、flags、断偏移、所传输的数据部分(即需要后续分析的具体应用内容)等。在此,本领域技术人员应能理解,根据流量数据包所对应的不同类型,如TCP包或UDP包,其所对应的数据传输相关信息不同。例如,TCP流量数据包的数据传输相关信息可以包括发送IP与端口、接收IP与端口、SEQ、ACK、数据包大小、所传输的数据部分等;UDP流量数据包的数据传输相关信息可以包括发送IP与端口、接收IP与端口、flags、段偏移、所传输的数据部分等。
所述二二单元22基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
具体地,所述二二单元22基于所述数据传输相关信息中的一种或多种,对所述流量数据包进行分组;在此,所述分组方法包括但不限于:
方式1.基于所述流量数据包所对应的发送IP与接收IP进行分组。例如,若两个流量数据包的发送IP与接收IP相一致,则将这两个流量数据包划分为一组;或者,若第一流量数据包的发送IP与第二流量数据包的接收IP一致且第二流量数据包的发送IP与第一流量数据包的接收IP一致,则将所述第一流量数据包与所述第二流量数据包划分为一组。上述操作可以循环进行,例如,若第二流量数据包的发送IP与第三流量数据包的接收IP一致且第三流量数据包的发送IP与第二流量数据包的接收IP一致,则将所述第三流量数据包划分至所述第一数据包与所述第二数据包所对应的分组中,从而,直至将具有对应IP的多个流量数据包划分完成为止。
方式2.优选地,基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组,即若两个流量数据包的发送/接收的IP与端口信息对应,则将这两个流量数据包划分为一组。例如,若两个流量数据包的发送IP/发送端口与接收IP/接收端口相一致,则将这两个流量数据包划分为一组;或者,若第一流量数据包的发送IP/发送端口与第二流量数据包的接收IP/接收端口一致且第二流量数据包的发送IP/发送端口与第一流量数据包的接收IP/接收端口一致,则将所述第一流量数据包与所述第二流量数据包划分为一组。同样地,上述操作可以循环执行。
方式3.基于所述流量数据包所对应的连续性进行分组。例如,若两个TCP流量数据包,可以基于流量数据包的SEQ、ACK以及数据包大小的连续性进行分组,即发送方的SEQ+数据包大小等于接收方的ACK且发送方的ACK等于接收方的SEQ,则证明上述两个流量数据包满足连续性,可以将这两个流量数据包划分为一组;类似地,若是两个UDP流量数据包,则可以基于默认排序或基于流量数据包的包头(header)中的flags和段偏移(fragmentoffset)等进行分组。
本领域技术人员应能理解,上述分组方法可以单独执行,也可以将上述三种方式结合起来执行,以进一步优化分组的效率与效果。例如,可以仅单独执行方式1、方式2或方式3,从而仅执行分组;或者,可以将方式1与方式3进行结合,或是将方式1与方式2进行结合,以优化分组效率,同时完成分组+连续性确定,从而进一步完成排序。
当对所述流量数据包的分组完成后,所述二二单元22对每个分组中的所有流量数据包按照时间顺序进行排序,从而根据排序后的流量数据包,生成一个或多个会话。其中,所述会话可以是短会话,也可以是长回话,例如,若是游戏应用,则所述会话多为长回话,即一个报文会话流中包含大量的来回报文,能够持续十几分钟甚至几十分钟;若是一般应用,如购物应用,则所述会话多为短会话,即报文会话流中所包含的来回报文数量较少。
在此,若所述流量数据包中包含有时间信息,则根据所述时间信息依次排序即可。
若所述流量数据包中不含有时间信息,则可以根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
例如,若所述流量数据包为TCP包,则可以根据流量数据包的SEQ、ACK以及数据包大小来判断连续关系,即发送方的SEQ+数据包大小等于接收方的ACK且发送方的ACK等于接收方的SEQ,则证明上述两个流量数据包满足连续性;若所述流量数据包为UDP包,则可以根据流量数据包的包头(header)中的flags和段偏移(fragment offset)关系进行直接解析。
本领域技术人员应能理解,即使所述流量数据包中含有时间信息,也可以基于上述方法进行排序,从而无需使用流量数据包中的时间信息。
以下示出一段连续的流量数据包示例:
发送方IP:端口 接收方IP:端口 SEQ ACK Size
116.62.173.112:23 210.12.118.194:2648 -1401430175 -660031943 28
210.12.118.194:2648 116.62.173.112:23 -660031943 -1401430147 11
116.62.173.112:23 210.12.118.194:2648 -1401430147 -660031943 13
116.62.173.112:23 210.12.118.194:2648 -1401430134 -660031932 8
表1:连续流量数据包的数据传输相关信息
注:Size即表示数据包大小
所述二三单元23根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
具体地,所述二三单元23根据所述应用所对应的应用协议,对于所生成的会话进行解析,其中,所述应用协议即为该应用所特有的协议,如游戏应用的游戏协议,购物应用的购物应用协议等。
根据所述应用协议,将所述会话的会话内容进行解析还原,从而生成该会话所对应的应用内容,以作为所述应用的应用数据,其中,所述应用数据即为应用意义上的数据还原,例如,游戏中的游戏操作数据,购物中的购物数据等;同时,所述二三单元23将所述应用协议作为与所述应用数据对应的应用协议。
本领域技术人员应能理解,若所述流量数据包并未加密,则可直接对所述会话进行解析,以生成所述应用数据;若所述流量数据包已加密,则可对所述会话中的流量数据包进行解密后,再执行普通的解析操作,以生成所述应用数据。
在此,一个应用中可以对应一种或多种应用协议。
以一个游戏应用为例,可以包含“玩家送花给别人”的应用协议、“执行交互任务”的应用协议、“购买道具”的应用协议等。以“玩家送花给别人”的应用协议(以下简称“送花协议”)为例,当生成该应用的会话以后,若该会话是对应于这一应用协议,则所解析出的应用数据需要包含“送花协议”中所规定的“receiverroleid”、“itemid”、“itemnum”、“message”这些几个信息,从而,所生成的应用数据的示例如下:
<message name="CGiveFlower"type="8534"maxsize="65535"cpri="1">
<property name="receiverroleid"type="long"/>收花人id
<property name="itemid"type="int"/>鲜花的物品id
<property name="itemnum"type="int"/>鲜花数量
<property name="message"type="string"/>留言
</message>
该示例表示出,“送花协议”CGiveFlower中包含了“收花人ID、鲜花物品ID、鲜花数量、留言”等多项内容,此外,与该协议相对应的应用数据中还可以包含“时间、服务器IP、玩家IP、网络会话的编号”等内容。
优选地,所述生成设备还包括第六装置(未示出),其中,所述第六装置根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;所述二三单元23根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
具体地,所述第六装置根据所述应用的加密方式,确定所述密钥以及解密方法;在此,所述密钥可以是固定密钥或是动态密钥,所述密钥的获取方法包括但不限于直接获取所述应用所对应的密钥,或是通过对所述会话或者是所述应用服务器的出入流量数据的前几帧数据进行分析,以确定所述密钥和/或加密方式。
本领域技术人员应能理解,任意能够解密所述流量数据包的方法均适用于本发明。
当所述第六装置基于所述密钥对所述流量数据包进行解密之后,所述二三单元23获取到所述解密后的会话,并基于所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用数据并确定与所述应用数据相对应的应用协议。在此,基于应用所对应的编译信息的不同,所对应的解析方法也不同。
例如,若游戏应用的应用协议(或称游戏协议)为Protobuf,且加密方式为使用一个固定的密钥来进行加密,则所述第六装置先基于相应的密钥对流量数据包进行解密,然后基于Protobuf的格式对会话进行解析。
图4示出根据本发明另一个方面的一种用于记录应用日志的方法流程图。
具体地,在步骤S1中,所述生成设备获取应用服务器的出入流量数据;在步骤S2中,所述生成设备解析所述出入流量数据,以生成应用的应用数据以及与所述应用数据相对应的应用协议,其中,所述应用对应于所述应用服务器;在步骤S3中,所述生成设备根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
在步骤S1中,所述生成设备获取应用服务器的出入流量数据。
具体地,在步骤S1中,所述生成设备通过直接与所述应用服务器进行交互,以获取所述应用服务器与用户间的出入流量数据,或者,在步骤S1中,所述生成设备通过与其他能够提供所述出入流量数据的设备相交互,以获取所述其他设备所提供的、所述应用服务器的出入流量数据。
优选地,在步骤S1中,所述生成设备将应用服务器的出入流量数据镜像并存储至镜像存储设备中,然后,从所述镜像存储设备中读取所述出入流量数据。
具体地,所述生成设备在网络中的任一点上,对所述应用服务器的出入流量数据进行镜像,以获取所述出入流量数据并将其存储之镜像存储设备中;然后,所述生成设备从所述镜像存储设备中读取所述出入流量数据。
优选地,所述镜像存储设备的存储方式包括但不限于分布式文件系统或者消息队列,所述生成设备可以基于对所述出入流量数据的处理需求,以选择具有特定存储方式的镜像存储设备,以执行对出入流量数据的存储。
在步骤S2中,所述生成设备解析所述出入流量数据,以生成应用的应用数据以及与所述应用数据相对应的应用协议,其中,所述应用对应于所述应用服务器。
具体地,在步骤S2中,所述生成设备基于数据传输相关协议以及所述应用的应用协议通过对所述出入流量数据的每个流量数据包进行解析,以确定每个流量数据包所对应的应用协议,然后,将相同协议的流量数据包进行解析,以获取该应用的应用数据。
或者,在步骤S2中,所述生成设备基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;然后,基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;最后,根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
在此,所述应用协议即为该应用所特有的协议,如游戏应用的游戏协议,购物应用的购物应用协议等。一个应用可以对应一种或多种应用协议,以一个游戏应用为例,可以包含“玩家送花给别人”的应用协议、“执行交互任务”的应用协议、“购买道具”的应用协议等。
本领域技术人员应能理解,一个应用协议可以对应于多条应用数据,以“玩家送花给别人”的应用协议(以下简称“送花协议”)为例,在这个送花协议中,可以包含“时间、服务器IP、玩家IP、网络会话的编号、收花人ID、鲜花物品ID、鲜花数量、留言”等多项内容。
当对所述出入流量数据进行解析时,通过对每个流量数据包或每个会话进行解析,以生成每个流量数据包或会话所对应的应用数据以及应用协议,例如“收花人ID——送花协议”、“鲜花数量——送花协议”、“留言——送花协议”等。
在步骤S3中,所述生成设备根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
具体地,在步骤S3中,所述生成设备根据所述应用数据以及所述应用数据相对应的应用协议,通过直接将所述应用数据以及相对应的应用协议进行存储,或者通过对所述应用协议以及对应的应用数据进行统计并整合等方式,以生成与所述应用相对应的应用日志。
例如,将对应于同一应用协议的应用数据进行整合,将对应于同一时间的应用数据以及其对应的应用协议进行整合,将对应于其他参数的应用数据以及应用协议进行整合等,从而生成包含应用数据以及应用协议之间的对应关系的应用日志。
在此,所生成的应用日志可以是BI日志(Business Intelligence log),所生成的应用日志可以采用多种格式,例如JSON格式进行储存;此外,所生成的应用日志可以存储在分布式或非分布式的文件系统中。
一般地,一个应用协议中可以包含“用户ID、报文发生时间、服务器IP、用户IP、会话编号”等信息,进一步地,基于具体协议的不同,还会包含有其他的应用数据内容。
继上述的“送花协议”为例,其需要包含“收花人id”、“鲜花的物品id”、“鲜花数量”、“留言”等内容,从而,在应用日志中,“送花协议”就会额外包括“收花人id”、“鲜花的物品id”、“鲜花数量”、“留言”等应用数据的信息。
从而,通过对应用协议进行解析,应用工程师不需要记录任何服务日志,因为,所需要的所有信息均可以通过对应用协议进行解析来获得。解析后的内容中包含了每个行为中所有的信息,每个新更新功能中的所有信息,从而不会出现新版本更新后缺少相应的日志,或者运行一段时间后发现某个日志少记录了一些信息的情况。
进一步地,通过对出入流量数据的分析,还能够实现任意时刻均可以还原相应的信息,不会数据丢失,不存在当日志未记录就无法再得知相应信息的情况。
以游戏为例,通过本发明所述的方法,玩家之间的聊天信息、活动信息(如玩家在移动过程中的所有位置信息)、交互信息(如交互对象、交互数量等)等均可以通过对出入流量数据的分析进行获取。而通过对上述内容的监控,可以得知玩家之间是否存在线下交易、是否利用漏洞位置进行作弊、是否通过脚本注册新账户以频繁给主账号互动以获取系统奖励等。
优选地,所述方法还包括步骤S4(未示出)以及步骤S5(未示出),其中,在步骤S4中,所述生成设备监控所述应用协议所对应的一个或多个监控参数;在步骤S5中,若至少一条所述应用协议的至少一个所述监控参数超过阈值,则所述生成设备触发警报。
具体地,在步骤S4中,所述生成设备实时或基于其他预设的方式,对所述应用协议所对应的一个或多个监控参数进行监控,其中,所述监控参数可以基于所述应用协议所对应的整体数据中的一种或多种(如监控该应用协议所对应的全部应用数据的传输数量)进行确定,也可以是基于所述应用协议中所包含的一个或多个应用内容所对应的参数(如前述“送花协议”中的送花数量、送花id等)进行确定。
本领域技术人员应能理解,所述监控参数可以直接基于所述应用内容或应用协议所对应的参数进行确定,如直接将“送花数量”作为监控参数之一;也可以是在上述参数的基础上,通过监控这类参数的变化,以生成新的监控参数。
更优选地,所述监控参数包括以下至少任一项:
所述应用协议所对应的频次:即在某一时间段范围内,所述应用协议整体或者所述应用协议中所包含的一个或多个应用内容所被调用的次数;
所述应用协议所对应的随时间变化的状态:即在多个时间范围内,所述应用协议中的一个或多个应用数据随着时间变化的情况,如送花数量的突然增长或暴跌,或者送花数量的频繁变化等。
然后,在步骤S5中,若至少一条所述应用协议的至少一个所述监控参数超过阈值,则所述生成设备触发警报。例如,若某个应用协议的所对应的调用数量出现了异常的增长或下降,则所述生成设备触发警报。
从而,本发明可以实时监控应用情况,例如,通过对警报的分析,得知是否是对服务器的攻击以及是否是程序出现了漏洞等。
图5示出根据本发明的一个优选实施例的一种用于记录应用日志的方法流程图。
具体地,在步骤S1中,所述生成设备获取应用服务器的出入流量数据;在步骤S21中,所述生成设备基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;在步骤S22中,所述生成设备基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;在步骤S23中,所述生成设备根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议;在步骤S3中,所述生成设备根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
其中,所述步骤S1与步骤S3与图4所述的对应步骤相同或相似,故在此不再赘述,并通过引用的方式包含于此。
在步骤S21中,所述生成设备基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息。
具体地,在步骤S21中,所述生成设备通过基于步骤S1中所获取的出入流量数据,或是直接与所述镜像存储设备相交互,以读取所述镜像存储设备中的出入流量数据;然后,所述生成设备根据所述应用服务器所采用的数据传输协议,对所述出入流量数据中的每个流量数据包进行解析,以获取数据传输相关信息。
当所述生成设备读取每条出入流量数据时,每条出入流量数据都是二进制的数据数组;然后,所述生成设备解析这些二进制的数组,首先根据数据传输协议还原出,例如Ethernet头、IP头、TCP/UDP头以及在上述头之后的、所传输的数据部分。然后,所述生成设备对上述信息进行进一步分析,以得到数据传输相关信息。
其中,所述数据传输相关信息包括但不限于每个流量数据包所对应的发送IP与端口、接收IP与端口、SEQ、ACK、数据包大小、flags、断偏移、所传输的数据部分(即需要后续分析的具体应用内容)等。在此,本领域技术人员应能理解,根据流量数据包所对应的不同类型,如TCP包或UDP包,其所对应的数据传输相关信息不同。例如,TCP流量数据包的数据传输相关信息可以包括发送IP与端口、接收IP与端口、SEQ、ACK、数据包大小、所传输的数据部分等;UDP流量数据包的数据传输相关信息可以包括发送IP与端口、接收IP与端口、flags、段偏移、所传输的数据部分等。
在步骤S22中,所述生成设备基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
具体地,在步骤S22中,所述生成设备基于所述数据传输相关信息中的一种或多种,对所述流量数据包进行分组;在此,所述分组方法包括但不限于:
方式1.基于所述流量数据包所对应的发送IP与接收IP进行分组。例如,若两个流量数据包的发送IP与接收IP相一致,则将这两个流量数据包划分为一组;或者,若第一流量数据包的发送IP与第二流量数据包的接收IP一致且第二流量数据包的发送IP与第一流量数据包的接收IP一致,则将所述第一流量数据包与所述第二流量数据包划分为一组。上述操作可以循环进行,例如,若第二流量数据包的发送IP与第三流量数据包的接收IP一致且第三流量数据包的发送IP与第二流量数据包的接收IP一致,则将所述第三流量数据包划分至所述第一数据包与所述第二数据包所对应的分组中,从而,直至将具有对应IP的多个流量数据包划分完成为止。
方式2.优选地,基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组,即若两个流量数据包的发送/接收的IP与端口信息对应,则将这两个流量数据包划分为一组。例如,若两个流量数据包的发送IP/发送端口与接收IP/接收端口相一致,则将这两个流量数据包划分为一组;或者,若第一流量数据包的发送IP/发送端口与第二流量数据包的接收IP/接收端口一致且第二流量数据包的发送IP/发送端口与第一流量数据包的接收IP/接收端口一致,则将所述第一流量数据包与所述第二流量数据包划分为一组。同样地,上述操作可以循环执行。
方式3.基于所述流量数据包所对应的连续性进行分组。例如,若两个TCP流量数据包,可以基于流量数据包的SEQ、ACK以及数据包大小的连续性进行分组,即发送方的SEQ+数据包大小等于接收方的ACK且发送方的ACK等于接收方的SEQ,则证明上述两个流量数据包满足连续性,可以将这两个流量数据包划分为一组;类似地,若是两个UDP流量数据包,则可以基于默认排序或基于流量数据包的包头(header)中的flags和段偏移(fragmentoffset)等进行分组。
本领域技术人员应能理解,上述分组方法可以单独执行,也可以将上述三种方式结合起来执行,以进一步优化分组的效率与效果。例如,可以仅单独执行方式1、方式2或方式3,从而仅执行分组;或者,可以将方式1与方式3进行结合,或是将方式1与方式2进行结合,以优化分组效率,同时完成分组+连续性确定,从而进一步完成排序。
当对所述流量数据包的分组完成后,在步骤S22中,所述生成设备对每个分组中的所有流量数据包按照时间顺序进行排序,从而根据排序后的流量数据包,生成一个或多个会话。其中,所述会话可以是短会话,也可以是长回话,例如,若是游戏应用,则所述会话多为长回话,即一个报文会话流中包含大量的来回报文,能够持续十几分钟甚至几十分钟;若是一般应用,如购物应用,则所述会话多为短会话,即报文会话流中所包含的来回报文数量较少。
在此,若所述流量数据包中包含有时间信息,则根据所述时间信息依次排序即可。
若所述流量数据包中不含有时间信息,则可以根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
例如,若所述流量数据包为TCP包,则可以根据流量数据包的SEQ、ACK以及数据包大小来判断连续关系,即发送方的SEQ+数据包大小等于接收方的ACK且发送方的ACK等于接收方的SEQ,则证明上述两个流量数据包满足连续性;若所述流量数据包为UDP包,则可以根据流量数据包的包头(header)中的flags和段偏移(fragment offset)关系进行直接解析。
本领域技术人员应能理解,即使所述流量数据包中含有时间信息,也可以基于上述方法进行排序,从而无需使用流量数据包中的时间信息。
以下示出一段连续的流量数据包示例:
发送方IP:端口 接收方IP:端口 SEQ ACK Size
116.62.173.112:23 210.12.118.194:2648 -1401430175 -660031943 28
210.12.118.194:2648 116.62.173.112:23 -660031943 -1401430147 11
116.62.173.112:23 210.12.118.194:2648 -1401430147 -660031943 13
116.62.173.112:23 210.12.118.194:2648 -1401430134 -660031932 8
表1:连续流量数据包的数据传输相关信息
注:Size即表示数据包大小
在步骤S23中,所述生成设备根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
具体地,在步骤S23中,所述生成设备根据所述应用所对应的应用协议,对于所生成的会话进行解析,其中,所述应用协议即为该应用所特有的协议,如游戏应用的游戏协议,购物应用的购物应用协议等。
根据所述应用协议,将所述会话的会话内容进行解析还原,从而生成该会话所对应的应用内容,以作为所述应用的应用数据,其中,所述应用数据即为应用意义上的数据还原,例如,游戏中的游戏操作数据,购物中的购物数据等;同时,所述生成设备将所述应用协议作为与所述应用数据对应的应用协议。
本领域技术人员应能理解,若所述流量数据包并未加密,则可直接对所述会话进行解析,以生成所述应用数据;若所述流量数据包已加密,则可对所述会话中的流量数据包进行解密后,再执行普通的解析操作,以生成所述应用数据。
在此,一个应用中可以对应一种或多种应用协议。
以一个游戏应用为例,可以包含“玩家送花给别人”的应用协议、“执行交互任务”的应用协议、“购买道具”的应用协议等。以“玩家送花给别人”的应用协议(以下简称“送花协议”)为例,当生成该应用的会话以后,若该会话是对应于这一应用协议,则所解析出的应用数据需要包含“送花协议”中所规定的“receiverroleid”、“itemid”、“itemnum”、“message”这些几个信息,从而,所生成的应用数据的示例如下:
<message name="CGiveFlower"type="8534"maxsize="65535"cpri="1">
<property name="receiverroleid"type="long"/>收花人id
<property name="itemid"type="int"/>鲜花的物品id
<property name="itemnum"type="int"/>鲜花数量
<property name="message"type="string"/>留言
</message>
该示例表示出,“送花协议”CGiveFlower中包含了“收花人ID、鲜花物品ID、鲜花数量、留言”等多项内容,此外,与该协议相对应的应用数据中还可以包含“时间、服务器IP、玩家IP、网络会话的编号”等内容。
优选地,所述方法还包括步骤S6(未示出),其中,在步骤S6中,所述生成设备根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;在步骤S23中,所述生成设备根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
具体地,在步骤S6中,所述生成设备根据所述应用的加密方式,确定所述密钥以及解密方法;在此,所述密钥可以是固定密钥或是动态密钥,所述密钥的获取方法包括但不限于直接获取所述应用所对应的密钥,或是通过对所述会话或者是所述应用服务器的出入流量数据的前几帧数据进行分析,以确定所述密钥和/或加密方式。
本领域技术人员应能理解,任意能够解密所述流量数据包的方法均适用于本发明。
当所述生成设备基于所述密钥对所述流量数据包进行解密之后,在步骤S23中,所述生成设备获取到所述解密后的会话,并基于所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用数据并确定与所述应用数据相对应的应用协议。在此,基于应用所对应的编译信息的不同,所对应的解析方法也不同。
例如,若游戏应用的应用协议(或称游戏协议)为Protobuf,且加密方式为使用一个固定的密钥来进行加密,则生成设备先基于相应的密钥对流量数据包进行解密,然后基于Protobuf的格式对会话进行解析。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (16)

1.一种用于记录应用日志的方法,其中,该方法包括以下步骤:
获取应用服务器的出入流量数据;
解析所述出入流量数据,以生成应用的应用数据以及与所述应用数据相对应的应用协议,其中,所述应用对应于所述应用服务器,所述应用协议为所述应用所特有的协议,所述生成应用的应用数据以及与所述应用数据相对应的应用协议的步骤包括:基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议;
根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
2.根据权利要求1的方法,其中,该方法还包括:
监控所述应用协议所对应的一个或多个监控参数;
若至少一条所述应用协议的至少一个所述监控参数超过阈值,则触发警报。
3.根据权利要求2所述的方法,其中,所述监控参数包括以下至少任一项:
所述应用协议所对应的频次;
所述应用协议所对应的随时间变化的状态。
4.根据权利要求1至3中任一项所述的方法,其中,获取应用服务器的出入流量数据的步骤包括:
将应用服务器的出入流量数据镜像并存储至镜像存储设备中;
从所述镜像存储设备中读取所述出入流量数据。
5.根据权利要求1所述的方法,其中,将所述流量数据包进行分组的步骤包括:
基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组。
6.根据权利要求1或5所述的方法,其中,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话的步骤包括:
根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;
基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
7.根据权利要求1、5、6中任一项所述的方法,其中,该方法还包括:
根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;
其中,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议的步骤包括:
根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
8.一种用于记录应用日志的生成设备,其中,该设备包括:
第一装置,用于获取应用服务器的出入流量数据;
第二装置,用于解析所述出入流量数据,以生成应用的应用数据以及与所述应用数据相对应的应用协议,其中,所述应用对应于所述应用服务器,所述应用协议为所述应用所特有的协议,所述第二装置包括:二一单元,用于基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;二二单元,用于基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;二三单元,用于根据应用所对应的应用协议,对所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议;
第三装置,用于根据所述应用数据以及与所述应用数据相对应的应用协议,生成与所述应用相对应的应用日志。
9.根据权利要求8的生成设备,其中,该设备还包括:
第四装置,用于监控所述应用协议所对应的一个或多个监控参数;
第五装置,用于若至少一条所述应用协议的至少一个所述监控参数超过阈值,则触发警报。
10.根据权利要求9所述的生成设备,其中,所述监控参数包括以下至少任一项:
所述应用协议所对应的频次;
所述应用协议所对应的随时间变化的状态。
11.根据权利要求8至10中任一项所述的生成设备,其中,所述第一装置用于:
将应用服务器的出入流量数据镜像并存储至镜像存储设备中;
从所述镜像存储设备中读取所述出入流量数据。
12.根据权利要求8所述的生成设备,其中,所述二二单元用于:
基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
13.根据权利要求8或12所述的生成设备,其中,所述二二单元用于:
基于所述数据传输相关信息,将所述流量数据包进行分组;
根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;
基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
14.根据权利要求8、12、13中任一项所述的生成设备,其中,该设备还包括:
第六装置,用于根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;
其中,所述二三单元用于:
根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的一个或多个应用数据并确定与所述应用数据相对应的应用协议。
15.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机可读指令,当所述计算机可读指令被一个或多个设备执行时,使得所述设备执行如权利要求1至7中任一项所述的方法。
16.一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的方法。
CN201711376584.2A 2017-12-19 2017-12-19 一种用于记录应用日志的方法与装置 Active CN108121637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711376584.2A CN108121637B (zh) 2017-12-19 2017-12-19 一种用于记录应用日志的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711376584.2A CN108121637B (zh) 2017-12-19 2017-12-19 一种用于记录应用日志的方法与装置

Publications (2)

Publication Number Publication Date
CN108121637A CN108121637A (zh) 2018-06-05
CN108121637B true CN108121637B (zh) 2022-01-04

Family

ID=62229511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711376584.2A Active CN108121637B (zh) 2017-12-19 2017-12-19 一种用于记录应用日志的方法与装置

Country Status (1)

Country Link
CN (1) CN108121637B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109460307B (zh) * 2018-10-15 2021-03-12 厦门商集网络科技有限责任公司 基于日志埋点的微服务调用跟踪方法及其系统
CN109547291A (zh) * 2018-12-06 2019-03-29 珠海西山居移动游戏科技有限公司 一种快速定位高频带宽消耗的方法及装置
CN115277365A (zh) * 2022-07-27 2022-11-01 时趣互动(北京)科技有限公司 一种基于web的网络设备日志流量分析方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107171876A (zh) * 2017-07-26 2017-09-15 成都科来软件有限公司 一种基于流量统计数据的访问告警方法
CN107302534A (zh) * 2017-06-21 2017-10-27 广东工业大学 一种基于大数据平台的DDoS网络攻击检测方法及装置
CN107454109A (zh) * 2017-09-22 2017-12-08 杭州安恒信息技术有限公司 一种基于http流量分析的网络窃密行为检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107302534A (zh) * 2017-06-21 2017-10-27 广东工业大学 一种基于大数据平台的DDoS网络攻击检测方法及装置
CN107171876A (zh) * 2017-07-26 2017-09-15 成都科来软件有限公司 一种基于流量统计数据的访问告警方法
CN107454109A (zh) * 2017-09-22 2017-12-08 杭州安恒信息技术有限公司 一种基于http流量分析的网络窃密行为检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
网络流量数据的分析与管理系统研究;韦建文;《中国优秀硕士学位论文全文数据库信息科技辑》;20110715;I139-54 *

Also Published As

Publication number Publication date
CN108121637A (zh) 2018-06-05

Similar Documents

Publication Publication Date Title
CN108156006B (zh) 一种埋点数据上报方法、装置及电子设备
WO2018200757A1 (en) Systems and methods for networked microservice modeling
US7523198B2 (en) Integrated testing approach for publish/subscribe network systems
CN108156146B (zh) 一种用于识别异常用户操作的方法与装置
CN108121637B (zh) 一种用于记录应用日志的方法与装置
CN106815254B (zh) 一种数据处理方法和装置
WO2015090241A1 (zh) 监控业务运行数据入库的方法和相关设备及系统
CN111181799B (zh) 一种网络流量监控方法及设备
CN112256542B (zh) 基于eBPF的微服务系统性能检测方法、装置和系统
CN112506743A (zh) 一种日志监控方法、装置和服务器
US9935853B2 (en) Application centric network experience monitoring
WO2013033863A1 (en) Performance monitoring of a media player launched by a web browser
CN108093048B (zh) 一种用于获取应用交互数据的方法与装置
CN107168844B (zh) 一种性能监控的方法及装置
US10775751B2 (en) Automatic generation of regular expression based on log line data
CN109409948B (zh) 交易异常检测方法、装置、设备及计算机可读存储介质
CN111130944A (zh) 系统监控方法及系统
CN117176802B (zh) 一种业务请求的全链路监控方法、装置、电子设备及介质
CN111741007B (zh) 一种基于网络层报文解析的金融业务实时监控系统及方法
CN110245120B (zh) 流式计算系统及流式计算系统的日志数据处理方法
US10616081B2 (en) Application aware cluster monitoring
US10812355B2 (en) Record compression for a message system
CN112579833B (zh) 基于用户操作数据的业务关联关系获取方法及装置
US20170222904A1 (en) Distributed Business Transaction Specific Network Data Capture
CN108449252B (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