CN105701122A - 一种日志收集方法、装置及*** - Google Patents

一种日志收集方法、装置及*** Download PDF

Info

Publication number
CN105701122A
CN105701122A CN201410709931.9A CN201410709931A CN105701122A CN 105701122 A CN105701122 A CN 105701122A CN 201410709931 A CN201410709931 A CN 201410709931A CN 105701122 A CN105701122 A CN 105701122A
Authority
CN
China
Prior art keywords
journal file
server
daily record
data form
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.)
Granted
Application number
CN201410709931.9A
Other languages
English (en)
Other versions
CN105701122B (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.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems 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 Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201410709931.9A priority Critical patent/CN105701122B/zh
Publication of CN105701122A publication Critical patent/CN105701122A/zh
Application granted granted Critical
Publication of CN105701122B publication Critical patent/CN105701122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种日志收集方法,包括:终端设备通过预置的客户端获取日志文件,根据预设的上报策略将该日志文件转换为JSON数据格式的文件,并上报给服务器;该服务器接收该终端设备上报的JSON数据格式的该日志文件,并将该JSON数据格式的该日志文件中的日志数据直接存储在文档型数据库中。此外,本发明还提供一种日志收集装置及***。上述日志收集方法、装置及***可提高日志收集的效率。

Description

一种日志收集方法、装置及***
技术领域
本发明涉及通信技术领域,尤其涉及一种日志收集方法、装置及***。
背景技术
为了研究用户的操作行为,或者是发现客户端存在的问题,客户端通常都具有日志上报的功能,该功能用于将客户端的一些操作行为上报到后台服务器,便于后台服务器进行入库分析。
在现有的日志收集***中,后台服务器与各客户端建立连接,收集各客户端上报的日志数据,并经过日志数据清洗过滤,日志结构化分析解析等多道处理程序后,将处理后的日志数据存储在关系型数据库(如:MYSQL)相应的表中,便于后续的分析。
随着计算机软件技术的发展,客户端的版本更新很快。为了能更好的收集用户的行为和***的行为,每发布一次新的客户端,需要收集的日志的数据格式就会需要更新。此时,客户端的开发者往往需要修改前一个版本的客户端的日志的数据格式,如:增加信息字段,修改原有字段,删除没有用的字段等。而同一时期各种不同版本的客户端往往是并存的,这些不同版本的客户端都会向后台服务器上报日志数据。这就导致后台服务器时常需要根据客户端的版本进行适配,客户端每修改一次日志的数据格式,后台服务器就需要配合进行日志解析程序的修改,否则就没有办法正确读取日志各个字段的信息,也就无法做到结构化的存储。
发明内容
有鉴于此,本发明提供一种日志收集方法、装置及***,可提高日志收集的效率。
本发明实施例提供的一种日志收集方法,包括:终端设备通过预置的客户端获取日志文件,根据预设的上报策略将所述日志文件转换为JSON数据格式的文件,并上报给服务器;所述服务器接收所述终端设备上报的JSON数据格式的所述日志文件,并将所述JSON数据格式的所述日志文件中的日志数据直接存储在文档型数据库中。
本发明实施例提供的另一种日志收集方法,应用于终端设备,包括:通过预置的客户端获取日志文件;根据预设的上报策略将所述日志文件转换为JSON数据格式的文件;将转换后的JSON数据格式的所述日志文件上报给服务器。
本发明实施例提供的又一种日志收集方法,应用于服务器,包括:接收终端设备上报的JSON数据格式的日志文件;将所述JSON数据格式的日志文件中的日志数据直接存储在文档型数据库中。
本发明实施例提供的一种日志收集装置,运行于终端设备,包括:获取模块,用于通过预置的客户端获取日志文件;转换模块,用于根据预设的上报策略将所述获取模块获取的所述日志文件转换为JSON数据格式的文件;上报模块,用于将所述转换模块转换后的JSON数据格式的所述日志文件上报给服务器。
本发明实施例提供的另一种日志收集装置,运行于服务器,包括:接收模块,用于接收终端设备上报的JSON数据格式的日志文件;存储模块,用于将所述接收模块接收的所述JSON数据格式的日志文件中的日志数据直接存储在文档型数据库中。
本发明实施例提供的一种日志收集***,包括:终端设备与服务器;其中所述终端设备,用于通过预置的客户端获取日志文件,根据预设的上报策略将所述日志文件转换为JSON数据格式的文件,并上报给服务器;所述服务器,用于接收所述终端设备上报的JSON数据格式的所述日志文件,并将所述JSON数据格式的所述日志文件中的日志数据直接存储在文档型数据库中。
本发明实施例提供的日志收集方法、装置及***,通过在终端设备一侧通过客户端统一在上报前将日志文件转换为JSON数据格式的文件后再上报给服务器,并通过在服务器一侧将该客户端上报的JSON数据格式的文件中的日志数据直接存储在文档型数据库中,可省去服务器一侧日志数据清洗过滤与日志结构化分析解析的程序,并可有效解决现有技术中存在的客户端每修改一次日志文件的数据格式,服务器就需要配合进行日志解析程序的修改,否则就无法正确读取日志文件中各个字段的信息,也就无法做到结构化的存储的问题,从而可解放服务器一侧的日志解析开发工作,并进一步实现与业务无关的通用存储,提高日志收集的效率。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为本发明实施例提供的日志收集***的示意图;
图2示出了一种终端设备的结构示意图;
图3示出了一种服务器的结构示意图;
图4为本发明第一实施例提供的日志收集方法的流程示意图;
图5为本发明第二实施例提供的日志收集方法的流程示意图;
图6为本发明第三实施例提供的日志收集方法的流程示意图;
图7为本发明第四实施例提供的日志收集方法的流程示意图;
图8为本发明第五与第六实施例提供的日志收集装置的结构示意图;
图9为本发明第七实施例提供的日志收集装置的结构示意图;
图10为本发明第八实施例提供的日志收集装置的结构示意图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
图1为本发明实施例提供的日志收集方法及装置的应用环境图。如图1所示,终端设备100与服务器200位于有线或无线网络中,通过该有线网络或无线网络,终端设备100与服务器200进行数据交互。
其中,终端设备100,用于通过预置的客户端获取日志文件,根据预设的上报策略将该日志文件转换为JSON数据格式的文件,并上报给服务器;服务器200,用于接收终端设备100上报的JSON数据格式的该日志文件,并将该JSON数据格式的该日志文件中的日志数据直接存储在文档型数据库中。
请参阅图2,图2为一种终端设备的结构示意图。本发明中的终端设备可以包括:支持日志上报及网络数据传输的智能手机、平板电脑、笔记本、POS机、电子书阅读器、MP3播放器(MovingPictureExpertsGroupAudioLayerIII,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExpertsGroupAudioLayerIV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机、车载电脑、可穿戴设备、一体机、台式计算机等等。
终端设备100包括:存储器102、存储控制器104、一个或多个(图中仅示出一个)处理器106、外设接口108、射频模块110、音频模块112、显示模块114以及按键模块116。这些组件通过一条或多条通讯总线/信号线118相互通讯。
可以理解,图2所示的结构仅为示意,终端设备100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
存储器102可用于存储软件程序以及模块,如本发明实施例中的日志收集方法、装置及***对应的程序指令/模块,处理器106通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的日志收集方法。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器106远程设置的存储器,这些远程存储器可以通过网络连接至终端设备100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。
处理器106运行存储器102内的各种软件、指令以执行终端设备100的各种功能以及进行数据处理。
外设接口108用于将各种外部设备耦合至CPU以及存储器102。
在一些实施例中,存储控制器104、处理器106以及外设接口108可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频模块110用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通信网络或者其他设备进行通讯。射频模块110可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。射频模块110可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信***(GlobalSystemforMobileCommunication,GSM)、增强型移动通信技术(EnhancedDataGSMEnvironment,EDGE),宽带码分多址技术(widebandcodedivisionmultipleaccess,W-CDMA),码分多址技术(Codedivisionaccess,CDMA)、时分多址技术(timedivisionmultipleaccess,TDMA),蓝牙,无线保真技术(Wireless,Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE802.11a,IEEE802.11b,IEEE802.11g和/或IEEE802.11n)、网络电话(Voiceoverinternetprotocol,VoIP)、全球微波互联接入(WorldwideInteroperabilityforMicrowaveAccess,Wi-Max)、其他用于邮件、即时通信及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
音频模块112向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。音频电路从外设接口108处接收声音数据,将声音数据转换为电信息,将电信息传输至扬声器。扬声器将电信息转换为人耳能听到的声波。音频电路还从麦克风处接收电信息,将电信号转换为声音数据,并将声音数据传输至外设接口108中以进行进一步的处理。音频数据可以从存储器102处或者通过射频模块110获取。此外,音频数据也可以存储至存储器102中或者通过射频模块110进行发送。在一些实例中,音频模块112还可包括一个耳机播孔,用于向耳机或者其他设备提供音频接口。
显示模块114在终端设备100与用户之间提供一个输出界面,向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。可以理解的,显示模块114还可以在终端设备100与用户之间同时提供一个输出及输入界面。具体地,除了向用户显示视频输出之外,显示模块114还接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。显示模块114显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。
按键模块116同样提供用户向终端设备100进行输入的接口,用户可以通过按下不同的按键以使终端设备100执行不同的功能。
图3为一种服务器的结构框图。如图3所示,服务器200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(centralprocessingunits,CPU)222(例如,一个或一个以上处理器)和存储器232,一个或一个以上存储应用程序242或数据244的存储介质230(例如一个或一个以上海量存储设备)。其中,存储器232和存储介质230可以是短暂存储或持久存储。存储在存储介质230的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器222可以设置为与存储介质230通信,在服务器200上执行存储介质230中的一系列指令操作。服务器200还可以包括一个或一个以上电源226,一个或一个以上有线或无线网络接口250,一个或一个以上输入输出接口258,和/或,一个或一个以上操作***241,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM等等。以下各图所示实施例中的由各服务器所执行的步骤可以基于该图3所示的服务器结构。
第一实施例
请参阅图4,图4为本发明第一实施例提供的日志收集方法。本实施例提供的日志收集方法可通过图1所示的终端设备100与服务器200,实现高效地日志收集。如图4所示,该方法包括:
步骤S11,终端设备通过预置的客户端获取日志文件,根据预设的上报策略将该日志文件转换为JSON数据格式的文件,并上报给服务器;
终端设备100中预置有具有日志上报功能的客户端,该客户端可根据预设的上报策略收集终端设备100中与该客户端有关的日志文件并上报给服务器200。该日志文件中记录有该客户端的各种行为数据,例如:因下载行为而产生的诸如下载时间、下载文件的标识等数据,因调用其他应用程序而产生的诸如调用时间、被调用应用程序的标识等数据,因执行某个操作而导致终端设备100的***崩溃时产生的诸如***崩溃时间、***崩溃时执行的操作的标识等数据。该上报策略可以包括:将该日志文件上报给服务器的上报时间,以及上报的该日志文件的数据格式。
当日志文件上报任务被触发时,终端设备100通过该客户端获取***中的日志文件,并根据上报策略,将该日志文件转换为JSON数据格式的文件,然后将转换后的JSON数据格式的该日志文件上报给服务器200。具体地,该日志文件上报任务可因该客户端接收到服务器200发送的日志文件上报指令,或者因终端设备100中的***时间到达该上报策略规定的上报时间被触发。
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON数据的格式为名称/值对,其中名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开。JSON的数据结构可以由对象和数组构成。其中对象在JSON中表示为“{}”括起来的内容,数据结构为{key:value,key:value,……}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,取值方法为对象key获取属性值,这个属性值的类型可以是数字、字符串、数组、对象等等。数组在JSON中是中括号“[]”括起来的内容,数据结构为[“”,“”,“”,……]。
假定客户端获取的原始的日志文件的日志数据的数据格式为:
时间|版本号|记录1|记录1信息1|记录1信息2|记录2|记录2信息1|记录2信息2
200140404|0.11|szx|szx:22|szx:175|s|s:23|s:176
则当该客户端将该日志文件转换为JSON数据格式的文件后,转换后的该日志文件中的日志数据的数据格式可如下所示:
{
“Time”:“200140404”
“Version”:“0.11”
“People”[
{“name”:“szx”,“age”:“22”,“height”:“175”},
{“name”:“s”,“age”:“23”,“height”:“176”},
]
}
通过数据格式的转换,如果日后原始的日志文件的数据格式有了修改,则修改的内容直接就会在客户端上报的JSON数据格式的文件中体现,这样一来,服务器即便不知道原始的该日志文件的数据格式,也能通过该JSON数据格式的日志文件完整而准确地获得原始的该日志文件中的日志数据,从而可省去现有技术中服务器为配合日志文件的数据格式的修改而修改日志解析程序的流程。举例来说,假设上述该客户端获取的该原始的该日志文件中增加了教育水平(edu)这一字段,则转换后的日志文件的日志数据可表现为:
{
“Time”:“200140404”
“Version”:“0.11”
“Status”:“ok”
“People”[
{“name”:“szx”,“age”:“22”,“height”:“175”,“edu”:“master”},
{“name”:“s”,“age”:“23”,“height”:“176”,“edu”:“phd”},
]
}
步骤S12,该服务器接收该终端设备上报的JSON数据格式的该日志文件,并将该JSON数据格式的该日志文件中的日志数据直接存储在文档型数据库中。
文档型数据库属于非关系型数据库(NoSQL),主要用来存储、索引并管理面向文档的数据或者类似的半结构化数据。
具体地,服务器200调用预置的导入程序将终端设备100通过客户端上报的JSON数据格式的日志文件中的日志数据直接导入预设的文档型数据库中,使得日后用户可通过该文档型数据库的操作语法,对该文档型数据库中存储的日志数据进行分析操作。
本发明实施例提供的日志收集方法,通过在终端设备一侧通过客户端统一在上报前将日志文件转换为JSON数据格式的文件后再上报给服务器,并通过在服务器一侧将该客户端上报的JSON数据格式的文件中的日志数据直接存储在文档型数据库中,可省去服务器一侧日志数据清洗过滤与日志结构化分析解析的程序,并可有效解决现有技术中存在的客户端每修改一次日志文件的数据格式,服务器就需要配合进行日志解析程序的修改,否则就无法正确读取日志文件中各个字段的信息,也就无法做到结构化的存储的问题,从而可解放服务器一侧的日志解析开发工作,并进一步实现与业务无关的通用存储,提高日志收集的效率。
第二实施例
请参阅图5,图5为本发明第二实施例提供的日志收集方法。本实施例提供的日志收集方法可通过图1所示的终端设备100与服务器200,实现高效地日志收集。如图5所示,该方法包括:
步骤S21,终端设备从服务器获取上报策略;
终端设备100中预置有具有日志上报功能的客户端,该客户端可根据预设的上报策略收集终端设备100中与该客户端有关的日志文件并上报给服务器200。该日志文件中记录有客户端的各种行为数据,例如:因下载行为而产生的诸如下载时间、下载文件的标识等数据,因调用其他应用程序而产生的诸如调用时间、被调用应用程序的标识等数据,因执行某个操作而导致终端设备100的***崩溃时产生的诸如***崩溃时间、***崩溃时执行的操作的标识等数据。
该上报策略可以包括上报的该日志文件的数据格式。终端设备100可通过该客户端在每次上报该日志文件前从该服务器获取该上报策略;或者,通过接收服务器200下发的该上报策略,或服务器200发送的包含该上报策略的日志文件上报指令,获取该上报策略。
于其他实施例中,该上报策略还可包括将该日志文件上报给服务器的上报时间。此时,终端设备100可通过该客户端每天定时或定期从服务器200获取该上报策略,以根据该上报策略在该上报时间到来时,将符合该数据格式的日志文件上报给该服务器。
步骤S22,该终端设备通过预置的客户端获取日志文件,根据该上报策略将该日志文件转换为JSON数据格式的文件,并上报给该服务器;
本步骤具体可参考第一实施例中的步骤S11,此处不再赘述。
步骤S23,该服务器接收该终端设备上报的JSON数据格式的该日志文件,调用预置的导入程序将该JSON数据格式的该日志文件中的日志数据直接导入该Mongo数据库中,并在该Mongo数据库为导入的该日志数据添加基本信息。
Mongo数据库中的数据以集合的方式进行分组,每个集合都有单独的名称并可以包含无限数量的文档。这里的集合同关系型数据库中的表(table)类似。Mongo数据库以一系列键值对集合的方式存储数据,其中键(Key)是字符串,值(Value)是任何一种数据类型的集合,包括数组和文档。Mongo数据库原生的存储格式为BSON(BinarySerializedDocumentFormat),这是一个类JSON的二进制存储格式,简称BinaryJSON。Mongo数据库支持JSON数据格式与BSON数据格式的转化。
具体地,服务器200调用预置的导入程序将终端设备100通过客户端上报的JSON数据格式的文件中的日志数据直接导入Mongo数据库,然后在数据库中为导入的日志数据添加相关基本信息。该基本信息包括但不限于:导入时间、上报时间以及客户端的标识信息。该客户端的标识信息包括但不限于:对应的终端设备的IP地址(InternetProtocolAddress,网络协议地址)或版本号。由于日志文件中的日志数据被原封不动地直接导入Mongo数据库中,因此可免去为保证服务器正常解析日志数据并正常存储而带来的开发维护工作。
进一步地,服务器200可根据用户通过Mongo数据库的操作语法(javascript语言)发送的日志分析指令,对该Mongo数据库中存储的日志数据进行分析操作。
本发明实施例提供的日志收集方法,通过终端设备通过客户端统一在上报前将日志文件转换为JSON数据格式的文件后再上报给服务器,并通过该服务器将该客户端上报的JSON数据格式的文件中的日志数据直接存储在文档型数据库中,可省去服务器一侧日志数据清洗过滤与日志结构化分析解析的程序,并可有效解决现有技术中存在的客户端每修改一次日志文件的数据格式,服务器就需要配合进行日志解析程序的修改,否则就无法正确读取日志文件中各个字段的信息,也就无法做到结构化的存储的问题,从而可解放服务器一侧的日志解析开发工作,并进一步实现与业务无关的通用存储,提高日志收集的效率。
第三实施例
请参阅图6,图6为本发明第三实施例提供的日志收集方法。本实施例提供的日志收集方法可通过图1所示的终端设备100,实现高效地日志收集。如图6所示,该方法包括:
步骤S31,通过预置的客户端获取日志文件;
终端设备100中预置有具有日志上报功能的客户端,该客户端可根据预设的上报策略收集终端设备100中与该客户端有关的日志文件并上报给服务器200。该日志文件中记录有该客户端的各种行为数据,例如:因下载行为而产生的诸如下载时间、下载文件的标识等数据,因调用其他应用程序而产生的诸如调用时间、被调用应用程序的标识等数据,因执行某个操作而导致终端设备100的***崩溃时产生的诸如***崩溃时间、***崩溃时执行的操作的标识等数据。该上报策略可以包括:将该日志文件上报给服务器的上报时间,以及上报的该日志文件的数据格式。
当日志文件上报任务被触发时,终端设备100通过该客户端获取***中的日志文件。具体地,该日志文件上报任务可因该客户端接收到服务器200发送的日志文件上报指令,或者因终端设备100中的***时间到达该上报策略规定的上报时间被触发。
进一步地,该上报策略可在获取日志文件之前,由终端设备100通过该客户端从服务器200获取。可以理解地,当上报策略只包括上报的该日志文件的数据格式时,终端设备100可通过该客户端在每次上报该日志文件前从该服务器获取该上报策略;或者,通过接收服务器200下发的该上报策略,或服务器200发送的包含该上报策略的日志文件上报指令,获取该上报策略。
当该上报策略包括上报的该日志文件的数据格式以及将该日志文件上报给服务器的上报时间时,终端设备100可通过该客户端每天定时或定期从服务器200获取该上报策略,以根据该上报策略在该上报时间到来时,获取日志文件,并将该日志文件转换为符合该数据格式的日志文件后上报给服务器200。
步骤S32,根据预设的上报策略将该日志文件转换为JSON数据格式的文件;
JSON是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON数据的格式为名称/值对,其中名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开。JSON的数据结构可以由对象和数组构成。其中对象在JSON中表示为“{}”括起来的内容,数据结构为{key:value,key:value,……}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,取值方法为对象key获取属性值,这个属性值的类型可以是数字、字符串、数组、对象等等。数组在JSON中是中括号“[]”括起来的内容,数据结构为[“”,“”,“”,……]。
假定客户端获取的原始的日志文件的日志数据的数据格式为:
时间|版本号|记录1|记录1信息1|记录1信息2|记录2|记录2信息1|记录2信息2
200140404|0.11|szx|szx:22|szx:175|s|s:23|s:176
则当该客户端将该日志文件转换为JSON数据格式的文件后,转换后的该日志文件中的日志数据的数据格式可如下所示:
{
“Time”:“200140404”
“Version”:“0.11”
“People”[
{“name”:“szx”,“age”:“22”,“height”:“175”},
{“name”:“s”,“age”:“23”,“height”:“176”},
]
}
通过数据格式的转换,如果日后原始的日志文件的数据格式有了修改,则修改的内容直接就会在客户端上报的JSON数据格式的文件中体现,这样一来,服务器即便不知道原始的该日志文件的数据格式,也能通过该JSON数据格式的日志文件完整而准确地获得原始的该日志文件中的日志数据,从而可省去现有技术中服务器为配合日志文件的数据格式的修改而修改日志解析程序的流程。举例来说,假设上述该客户端获取的该原始的该日志文件中增加了教育水平(edu)这一字段,则转换后的日志文件的日志数据可表现为:
{
“Time”:“200140404”
“Version”:“0.11”
“Status”:“ok”
“People”[
{“name”:“szx”,“age”:“22”,“height”:“175”,“edu”:“master”},
{“name”:“s”,“age”:“23”,“height”:“176”,“edu”:“phd”},
]
}
步骤S33,将转换后的JSON数据格式的该日志文件上报给服务器。
终端设备100将转换后的JSON数据格式的该日志文件上报给服务器200,使得服务器200将该日志文件中的日志数据直接存储在文档型数据库中,从而完成日志收集的工作。
本发明实施例提供的日志收集方法,由于终端设备通过客户端统一在上报前将日志文件转换为JSON数据格式的文件后再上报给服务器,使得该服务器只需要将该客户端上报的JSON数据格式的文件中的日志数据直接存储在文档型数据库中即可完成日志收集的工作,省去了服务器一侧日志数据清洗过滤与日志结构化分析解析的程序,并可有效解决现有技术中存在的客户端每修改一次日志文件的数据格式,服务器就需要配合进行日志解析程序的修改,否则就无法正确读取日志文件中各个字段的信息,也就无法做到结构化的存储的问题,从而可解放服务器一侧的日志解析开发工作,并进一步实现与业务无关的通用存储,提高日志收集的效率。
第四实施例
请参阅图7,图7为本发明第四实施例提供的日志收集方法。本实施例提供的日志收集方法可通过图1所示的服务器200,实现高效地日志收集。如图7所示,该方法包括:
步骤S41,接收终端设备上报的JSON数据格式的日志文件;
该日志文件由终端设备100根据预设的上报策略上报。JSON是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON数据的格式为名称/值对,其中名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开。JSON的数据结构可以由对象和数组构成。其中对象在JSON中表示为“{}”括起来的内容,数据结构为{key:value,key:value,……}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,取值方法为对象key获取属性值,这个属性值的类型可以是数字、字符串、数组、对象等等。数组在JSON中是中括号“[]”括起来的内容,数据结构为[“”,“”,“”,……]。
步骤S42,将该JSON数据格式的日志文件中的日志数据直接存储在文档型数据库中。
文档型数据库属于非关系型数据库(NoSQL),主要用来存储、索引并管理面向文档的数据或者类似的半结构化数据。
进一步地,该文档型数据库可以包括Mongo数据库。Mongo数据库中的数据以集合的方式进行分组,每个集合都有单独的名称并可以包含无限数量的文档。这里的集合同关系型数据库中的表(table)类似。Mongo数据库以一系列键值对集合的方式存储数据,其中键(Key)是字符串,值(Value)是任何一种数据类型的集合,包括数组和文档。Mongo数据库原生的存储格式为BSON,这是一个类JSON的二进制存储格式,简称BinaryJSON。Mongo数据库支持JSON数据格式与BSON数据格式的转化。
本步骤进一步可包括以下步骤:
第一步,调用预置的导入程序将所述JSON数据格式的日志文件中的日志数据直接导入所述Mongo数据库中;
第二步骤,在所述Mongo数据库为导入的所述日志数据添加基本信息,所述基本信息包括:导入时间、上报时间以及所述客户端的标识信息。
其中该客户端的标识信息包括但不限于:对应的终端设备的IP地址或版本号。由于日志文件中的日志数据被原封不动地直接导入Mongo数据库中,因此可免去为保证服务器正常解析日志数据并正常存储而带来的开发维护工作。
进一步地,服务器200可根据用户通过Mongo数据库的操作语法(javascript语言)发送的日志分析指令,对该Mongo数据库中存储的日志数据进行分析操作。
本发明实施例提供的日志收集方法,由于服务器只需要将终端设备通过客户端上报的JSON数据格式的文件中的日志数据直接存储在文档型数据库中即可完成日志收集的工作,省去了服务器一侧日志数据清洗过滤与日志结构化分析解析的程序,并可有效解决现有技术中存在的客户端每修改一次日志文件的数据格式,服务器就需要配合进行日志解析程序的修改,否则就无法正确读取日志文件中各个字段的信息,也就无法做到结构化的存储的问题,从而可解放服务器一侧的日志解析开发工作,并进一步实现与业务无关的通用存储,提高日志收集的效率。
第五实施例
请参阅图8,图8为本发明第五实施例与第六实施例提供的日志收集装置50的结构示意图,日志收集装置50可应用于图1所示终端设备100中,以实现上述实施例提供的日志收集方法。如图8所示,日志收集装置50包括:
获取模块51,用于通过预置的客户端获取日志文件;
转换模块52,用于根据预设的上报策略将获取模块51获取的该日志文件转换为JSON数据格式的文件;
上报模块53,用于将转换模块52转换后的JSON数据格式的该日志文件上报给服务器。
第六实施例
与第五实施例不同的是:获取模块51,还用于从该服务器获取该上报策略。
本发明第五实施例与第六实施例中的日志收集装置50中的各模块执行各自功能的过程,参见上述图1至图7中各实施例的描述,此处不再赘述。
本发明第五实施例与第六实施例提供的日志收集装置,通过在终端设备一侧通过客户端统一在上报前将日志文件转换为JSON数据格式的文件后再上报给服务器,使得该服务器只需要将该客户端上报的JSON数据格式的文件中的日志数据直接存储在文档型数据库中即可完成日志收集的工作,省去了服务器一侧日志数据清洗过滤与日志结构化分析解析的程序,并可有效解决现有技术中存在的客户端每修改一次日志文件的数据格式,服务器就需要配合进行日志解析程序的修改,否则就无法正确读取日志文件中各个字段的信息,也就无法做到结构化的存储的问题,从而可解放服务器一侧的日志解析开发工作,并进一步实现与业务无关的通用存储,提高日志收集的效率。
第七实施例
请参阅图9,图9为本发明第七实施例提供的日志收集装置70的结构示意图,日志收集装置70可应用于图1所示服务器200中,以实现上述实施例提供的日志收集方法。如图9所示,日志收集装置70包括:
接收模块71,用于接收终端设备上报的JSON数据格式的日志文件;
存储模块72,用于将接收模块71接收的该JSON数据格式的日志文件中的日志数据直接存储在文档型数据库中。
本发明第七实施例中的日志收集装置70中的各模块执行各自功能的过程,参见上述图1至图7中各实施例的描述,此处不再赘述。
第八实施例
请参阅图10,图10为本发明第八实施例提供的日志收集装置80的结构示意图,日志收集装置80可应用于图1所示服务器200中,以实现上述实施例提供的日志收集方法。如图10所示,日志收集装置80与第七实施例不同的是:
优选地,该文档型数据库包括Mongo数据库;
优选地,存储模块72包括:
导入单元721,用于调用预置的导入程序将该JSON数据格式的日志文件中的日志数据直接导入该Mongo数据库中;
添加单元722,用于在该Mongo数据库为导入的该日志数据添加基本信息,该基本信息包括:导入时间、上报时间以及该客户端的标识信息。
本发明第八实施例中的日志收集装置80中的各模块执行各自功能的过程,参见上述图1至图7中各实施例的描述,此处不再赘述。
本发明第七实施例与第八实施例提供的日志收集装置,由于在服务器一侧只需要将终端设备通过客户端上报的JSON数据格式的文件中的日志数据直接存储在文档型数据库中即可完成日志收集的工作,省去了服务器一侧日志数据清洗过滤与日志结构化分析解析的程序,并可有效解决现有技术中存在的客户端每修改一次日志文件的数据格式,服务器就需要配合进行日志解析程序的修改,否则就无法正确读取日志文件中各个字段的信息,也就无法做到结构化的存储的问题,从而可解放服务器一侧的日志解析开发工作,并进一步实现与业务无关的通用存储,提高日志收集的效率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (14)

1.一种日志收集方法,其特征在于,包括:
终端设备通过预置的客户端获取日志文件,根据预设的上报策略将所述日志文件转换为JSON数据格式的文件,并上报给服务器;
所述服务器接收所述终端设备上报的JSON数据格式的所述日志文件,并将所述JSON数据格式的所述日志文件中的日志数据直接存储在文档型数据库中。
2.根据权利要求1所述的方法,其特征在于,所述文档型数据库包括Mongo数据库。
3.根据权利要求2所述的方法,其特征在于,所述将所述JSON数据格式的所述日志文件中的日志数据直接存储在文档型数据库中包括:
所述服务器调用预置的导入程序将所述JSON数据格式的所述日志文件中的日志数据直接导入所述Mongo数据库中;
在所述Mongo数据库为导入的所述日志数据添加基本信息,所述基本信息包括:导入时间、上报时间以及所述客户端的标识信息。
4.根据权利要求1所述的方法,其特征在于,所述终端设备通过预置的客户端获取日志文件之前包括:
所述终端设备从所述服务器获取所述上报策略。
5.一种日志收集方法,应用于终端设备,其特征在于,包括:
通过预置的客户端获取日志文件;
根据预设的上报策略将所述日志文件转换为JSON数据格式的文件;
将转换后的JSON数据格式的所述日志文件上报给服务器。
6.根据权利要求1所述的方法,其特征在于,所述通过预置的客户端获取日志文件之前包括:
从所述服务器获取所述上报策略。
7.一种日志收集方法,应用于服务器,其特征在于,包括:
接收终端设备上报的JSON数据格式的日志文件;
将所述JSON数据格式的日志文件中的日志数据直接存储在文档型数据库中。
8.根据权利要求7所述的方法,其特征在于,所述文档型数据库包括Mongo数据库。
9.根据权利要求8所述的方法,其特征在于,所述将所述JSON数据格式的日志文件中的日志数据直接存储在文档型数据库中包括:
调用预置的导入程序将所述JSON数据格式的日志文件中的日志数据直接导入所述Mongo数据库中;
在所述Mongo数据库为导入的所述日志数据添加基本信息,所述基本信息包括:导入时间、上报时间以及所述客户端的标识信息。
10.一种日志收集装置,运行于终端设备,其特征在于,包括:
获取模块,用于通过预置的客户端获取日志文件;
转换模块,用于根据预设的上报策略将所述获取模块获取的所述日志文件转换为JSON数据格式的文件;
上报模块,用于将所述转换模块转换后的JSON数据格式的所述日志文件上报给服务器。
11.根据权利要求10所述的装置,其特征在于,
所述获取模块,还用于从所述服务器获取所述上报策略。
12.一种日志收集装置,运行于服务器,其特征在于,包括:
接收模块,用于接收终端设备上报的JSON数据格式的日志文件;
存储模块,用于将所述接收模块接收的所述JSON数据格式的日志文件中的日志数据直接存储在文档型数据库中。
13.根据权利要求12所述的装置,其特征在于,所述文档型数据库包括Mongo数据库;
所述存储模块包括:
导入单元,用于调用预置的导入程序将所述JSON数据格式的日志文件中的日志数据直接导入所述Mongo数据库中;
添加单元,用于在所述Mongo数据库为导入的所述日志数据添加基本信息,所述基本信息包括:导入时间、上报时间以及所述客户端的标识信息。
14.一种日志收集***,其特征在于,包括:终端设备与服务器;
其中所述终端设备,用于通过预置的客户端获取日志文件,根据预设的上报策略将所述日志文件转换为JSON数据格式的文件,并上报给服务器;
所述服务器,用于接收所述终端设备上报的JSON数据格式的所述日志文件,并将所述JSON数据格式的所述日志文件中的日志数据直接存储在文档型数据库中。
CN201410709931.9A 2014-11-28 2014-11-28 一种日志收集方法、装置及*** Active CN105701122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410709931.9A CN105701122B (zh) 2014-11-28 2014-11-28 一种日志收集方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410709931.9A CN105701122B (zh) 2014-11-28 2014-11-28 一种日志收集方法、装置及***

Publications (2)

Publication Number Publication Date
CN105701122A true CN105701122A (zh) 2016-06-22
CN105701122B CN105701122B (zh) 2020-06-16

Family

ID=56230652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410709931.9A Active CN105701122B (zh) 2014-11-28 2014-11-28 一种日志收集方法、装置及***

Country Status (1)

Country Link
CN (1) CN105701122B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107347062A (zh) * 2017-06-19 2017-11-14 北京开数科技有限公司 一种日志数据处理的方法、电子设备和可读存储介质
CN107483649A (zh) * 2017-10-12 2017-12-15 福建富士通信息软件有限公司 一种基于Kaa服务的跨平台日志采集方法
CN107566525A (zh) * 2017-10-12 2018-01-09 福建富士通信息软件有限公司 一种基于Kaa服务的跨平台数据上传、通知、配置方法
CN107622068A (zh) * 2016-07-14 2018-01-23 深圳联友科技有限公司 一种基于json格式的日志管理方法及装置
CN107636602A (zh) * 2017-07-14 2018-01-26 深圳市元征科技股份有限公司 一种数据处理方法及数据处理设备
CN107632896A (zh) * 2017-10-20 2018-01-26 广东欧珀移动通信有限公司 一种数据处理方法、数据处理装置及通讯设备
CN107729507A (zh) * 2017-10-23 2018-02-23 广州慧睿思通信息科技有限公司 一种基于终端存储、就近计算的数据清洗方法
CN108038198A (zh) * 2017-12-12 2018-05-15 泰康保险集团股份有限公司 日志处理方法、装置和电子设备
CN108304729A (zh) * 2017-12-08 2018-07-20 深圳市丰巢科技有限公司 一种客户端上报日志的方法以及电子设备
CN108306771A (zh) * 2018-02-09 2018-07-20 腾讯科技(深圳)有限公司 日志上报方法、装置及***
CN110399350A (zh) * 2018-04-19 2019-11-01 沪江教育科技(上海)股份有限公司 日志信息的处理方法、装置、存储介质及电子设备
CN112286674A (zh) * 2019-07-24 2021-01-29 广东知业科技有限公司 一种基于边缘计算的行转列方法及***
CN112564959A (zh) * 2020-12-01 2021-03-26 上海恒生聚源数据服务有限公司 一种日志采集方法、装置、设备及可读存储介质
CN113703665A (zh) * 2021-07-12 2021-11-26 深圳市有为信息技术发展有限公司 控制终端数据在网关崩溃后减少丢失的方法、装置及电子设备
CN110865973B (zh) * 2018-08-08 2021-12-07 马上消费金融股份有限公司 一种数据处理方法及设备和相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312544A (zh) * 2013-06-14 2013-09-18 青岛海信传媒网络技术有限公司 一种控制终端上报日志文件的方法、设备和***
CN103559118A (zh) * 2013-10-12 2014-02-05 福建亿榕信息技术有限公司 一种基于aop与注解信息***的安全审计方法
CN103593440A (zh) * 2013-11-15 2014-02-19 北京国双科技有限公司 日志文件的读写方法及装置
CN104077224A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 软件功能分析***与方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312544A (zh) * 2013-06-14 2013-09-18 青岛海信传媒网络技术有限公司 一种控制终端上报日志文件的方法、设备和***
CN103559118A (zh) * 2013-10-12 2014-02-05 福建亿榕信息技术有限公司 一种基于aop与注解信息***的安全审计方法
CN103593440A (zh) * 2013-11-15 2014-02-19 北京国双科技有限公司 日志文件的读写方法及装置
CN104077224A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 软件功能分析***与方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周昕毅: "Linux集群运维平台用户权限管理及日志审计***实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107622068A (zh) * 2016-07-14 2018-01-23 深圳联友科技有限公司 一种基于json格式的日志管理方法及装置
CN107347062A (zh) * 2017-06-19 2017-11-14 北京开数科技有限公司 一种日志数据处理的方法、电子设备和可读存储介质
CN107636602A (zh) * 2017-07-14 2018-01-26 深圳市元征科技股份有限公司 一种数据处理方法及数据处理设备
CN107483649A (zh) * 2017-10-12 2017-12-15 福建富士通信息软件有限公司 一种基于Kaa服务的跨平台日志采集方法
CN107566525A (zh) * 2017-10-12 2018-01-09 福建富士通信息软件有限公司 一种基于Kaa服务的跨平台数据上传、通知、配置方法
CN107632896A (zh) * 2017-10-20 2018-01-26 广东欧珀移动通信有限公司 一种数据处理方法、数据处理装置及通讯设备
CN107729507A (zh) * 2017-10-23 2018-02-23 广州慧睿思通信息科技有限公司 一种基于终端存储、就近计算的数据清洗方法
CN107729507B (zh) * 2017-10-23 2020-06-05 广州慧睿思通信息科技有限公司 一种基于终端存储、就近计算的数据清洗方法
CN108304729A (zh) * 2017-12-08 2018-07-20 深圳市丰巢科技有限公司 一种客户端上报日志的方法以及电子设备
CN108304729B (zh) * 2017-12-08 2021-10-29 深圳市丰巢科技有限公司 一种客户端上报日志的方法以及电子设备
CN108038198A (zh) * 2017-12-12 2018-05-15 泰康保险集团股份有限公司 日志处理方法、装置和电子设备
CN108038198B (zh) * 2017-12-12 2022-01-04 泰康保险集团股份有限公司 日志处理方法、装置和电子设备
CN108306771A (zh) * 2018-02-09 2018-07-20 腾讯科技(深圳)有限公司 日志上报方法、装置及***
CN110399350A (zh) * 2018-04-19 2019-11-01 沪江教育科技(上海)股份有限公司 日志信息的处理方法、装置、存储介质及电子设备
CN110865973B (zh) * 2018-08-08 2021-12-07 马上消费金融股份有限公司 一种数据处理方法及设备和相关装置
CN112286674A (zh) * 2019-07-24 2021-01-29 广东知业科技有限公司 一种基于边缘计算的行转列方法及***
CN112286674B (zh) * 2019-07-24 2023-12-19 广东知业科技有限公司 一种基于边缘计算的行转列方法及***
CN112564959A (zh) * 2020-12-01 2021-03-26 上海恒生聚源数据服务有限公司 一种日志采集方法、装置、设备及可读存储介质
CN113703665A (zh) * 2021-07-12 2021-11-26 深圳市有为信息技术发展有限公司 控制终端数据在网关崩溃后减少丢失的方法、装置及电子设备

Also Published As

Publication number Publication date
CN105701122B (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
CN105701122A (zh) 一种日志收集方法、装置及***
CN105898794B (zh) 数据传输装置及方法
CN102460462B (zh) 用于隐私设置的直观管理的方法和装置
CN104798082A (zh) 用于提供用于数据流的隐私策略的方法和装置
CN109656980A (zh) 数据处理方法、电子设备、装置及可读存储介质
CN104935744A (zh) 一种验证码显示方法、验证码显示装置及移动终端
CN102713904A (zh) 利用可缩放的数据结构的方法和装置
JP2019533915A (ja) 着呼管理方法及び装置
CN104881408A (zh) 页面点击次数统计及结果展示方法、装置和***
CN106101169A (zh) 一种终端及数据上报方法
CN106453512A (zh) 一种Redis集群信息监控装置及方法
CN111241559A (zh) 训练模型保护方法、装置、***、设备和计算机存储介质
CN104239317A (zh) 在浏览器中实现图片编辑的方法及装置
CN105657479A (zh) 一种视频处理方法及装置
CN113392158A (zh) 业务数据处理方法、装置及数据中台
CN103053157A (zh) 用于确定和均衡媒体轨道的一个或多个段的方法和装置
WO2014049462A1 (en) Method and apparatus for tagged deletion of user online history
CN104717131A (zh) 信息交互方法及服务器
CN104426685A (zh) 信息管理方法及装置
CN106060138A (zh) 更新数据的方法及装置
CN105224870A (zh) 可疑病毒应用上传的方法和装置
CN104639973A (zh) 一种信息推送方法及装置
CN106470215B (zh) 用户终端、服务器、未关注场景的消息推送***及方法
CN111443903A (zh) 软件开发文件获取方法及装置、电子设备、存储介质
US10503742B2 (en) Electronic device and method of searching data records

Legal Events

Date Code Title Description
C06 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