CN109213741A - 高性能日志存储方法及装置 - Google Patents
高性能日志存储方法及装置 Download PDFInfo
- Publication number
- CN109213741A CN109213741A CN201810869562.8A CN201810869562A CN109213741A CN 109213741 A CN109213741 A CN 109213741A CN 201810869562 A CN201810869562 A CN 201810869562A CN 109213741 A CN109213741 A CN 109213741A
- Authority
- CN
- China
- Prior art keywords
- daily record
- record data
- log
- interface
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种高性能日志存储方法及装置。本发明为不同应用系统提供统一的数据存取接口,通过高性能的数据存储系统和同步分发技术,将数据存储在数据模块中,保障了数据的安全性何稳定性。所述方法步骤包括通过统一数据接口获取客户端发送的日志数据;所述日志数据存入日志存储系统的缓存队列中;从缓存队列中读取日志数据,将所述日志数据写入存储目标。所述装置包括日志接收模块、日志缓存模块、日志收集模块,用于实现上述方法。
Description
技术领域
本发明涉及计算机数据存储技术领域,尤其涉及日志存储方法及装置。
背景技术
现有技术中对日志数据存储一般有两种选择,一种是写入在本地文件、另一种是将数据保存在数据库中。存储在本地文件,不足之处在于可能存在共享冲突,不具备数据库操作的原子性。针对存储在数据库这种方案,不足之处在于,当日志数据量过大,会占用过多的资源并且在并发高的情况下,会对数据库读写能力造成巨大的影响。
针对当前多应用系统环境中,各系统自行收集、用户日志格式不统一,存储日志数据分散,无法集中管理、数据量过大高并发等问题而提出的解决方案。
发明内容
本发明是为了解决现有技术中日志存储技术的上述不足之处,提供为不同应用系统提供统一的数据存取接口,通过高性能的数据存储系统和同步分发技术,将数据存储在数据模块中,保障了数据的安全性何稳定性的高性能日志存储方法及装置。
为实现上述目的本发明采用以下技术方案:
本发明的一种高性能日志存储方法,所述方法包括以下步骤:
通过统一数据接口获取客户端发送的日志数据;
所述日志数据存入日志存储系统的缓存队列中;
从缓存队列中读取日志数据,将所述日志数据写入存储目标。
通过统一数据接口对接各客户端,所述的客户端还可以包括各种业务系统,日志数据通过统一数据接口接收,在存储在日志存储系统的缓存队列中,然后在通过在日志数据写入存储目标,即特定指向的文档和数据库等。本方案能够将日志数据从业务服务系统中分离出来,不再占用服务器资源,易于扩展。并且相比存储在本地文件,不会存在共享性问题。
作为优选,所述通过统一数据接口获取客户端发送的日志数据的步骤,进一步包括:
获取客户端调用所述统一数据接口的接口调用请求,所述接口调用请求携带加密的签名;
对所述接口调用请求进行签名验证;
若签名验证通过,则获取所述接口调用请求对应的日志数据。
作为优选,所述通过统一数据接口获取客户端发送的日志数据的步骤,还包括:
在客户端发送日志数据存在并发时,采用队列模式将并发访问转换为串行访问。
采用队列模式将并发访问变为串行访问,将所有的线程用一个队列管理起来,使之变成串行操作,从而避免高并发问题。
作为优选,所述接口调用请求携带加密的签名的步骤,进一步包括:
对接口调用请求参数(除去sign参数)拼装成字符串;
将所述字符串,采用utf-8编码,使用MD5算法对编码后的字节流进行摘要;
对摘要使用openssl公钥加密。
作为优选,所述的缓存队列为redis缓存队列。
作为优选,所述接口调用请求是基于HTTP的信息化接口服务,请求方式为post,采用curl方式传输数据,并且使用UTF-8编码。
作为优选,所述从缓存队列中读取日志数据,将所述日志数据写入存储目标的步骤,进一步包括:
定时读取缓存队列中的日志数据,发送至log4php日志收集器;
log4php日志收集器将所述日志数据写入文件、邮箱或数据库。
同时本发明还提供一种高性能日志存储装置,所述装置包括:
日志接收模块,用于通过统一数据接口获取客户端发送的日志数据;
日志缓存模块,用于将所述日志数据存入日志存储系统的缓存队列中;
日志收集模块,从缓存队列中读取日志数据,将所述日志数据写入存储目标。
作为优选,所述日志接收模块还包括:
接口单元,用于获取客户端调用所述统一数据接口的接口调用请求,所述接口调用请求携带加密的签名;
验证单元,用于对所述接口调用请求进行签名验证;
获取单元,用于若签名验证通过,则获取所述接口调用请求对应的日志数据。
作为优选,所述日志收集模块包括:
日志消息单元,用于定时读取缓存队列中的日志数据,发送至log4php日志收集单元;
日志收集单元,所述log4php日志收集器将所述日志数据写入文件、邮箱或数据库。
本发明提供的技术方案通过设计一个统一数据接口,各客户端或应用系统只要按照接口标准将要统计的日志数据推送到该日志系统存储即可,日志系统能够收集各系统中的数据,并将数据进行统一的存储和管理。通过提供标准统一的对外数据访问接口,各个系统要使用日志数据时,调用该访问接口即可获取存储的相关日志数据。收集用户请求信息作为日志数据的同时,使用redis存储系统存放日志数据,从而将日志数据从应用程序服务中分离开来。通过本技术方案,能够使日志数据队列不占用服务器资源,再扩展,日志也可以单独从应用服务剥离开来,做到服务器专用。
附图说明
图1为本发明的一种高性能日志存储方法的第一流程图。
图2为本发明的一种高性能日志存储方法的第二流程图。
图3为本发明的一种高性能日志存储方法的第三流程图。
图4为本发明的一种高性能日志存储方法的第四流程图。
图5为本发明的一种高性能日志存储装置的原理框图。
图6为本发明的另一种高性能日志存储装置的原理框图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步描述。
实施例一:
本发明实施例提供一种高性能日志存储方法,如图1为本方法的第一流程图,所述方法具体包括如下步骤:
S101通过统一数据接口获取客户端发送的日志数据。
S102所述日志数据存入日志存储系统的缓存队列中。
具体的,所述的缓存队列为redis缓存队列。(Redis不仅仅是来用于暂存日志数据空间,Redis除单纯缓存作用外,还可以处理一些简单的逻辑运算,Redis不仅可以缓存,而且还可以作为数据库用。Resdis消息队列,负责日志数据的接收,存储和转发。
S103从缓存队列中读取日志数据,将所述日志数据写入存储目标。
通过统一数据接口对接各客户端,所述的客户端还可以包括各种业务系统,日志数据通过统一数据接口接收,在存储在日志存储系统的缓存队列中,然后在通过在日志数据写入存储目标,即特定指向的文档和数据库等。本方案能够将日志数据从业务服务系统中分离出来,不再占用服务器资源,易于扩展。并且相比存储在本地文件,不会存在共享性问题。
实施例二:
本实施例是在实施例一的基础上的进一步优化,如图2为本发明提供的一种高性能日志存储方法的第二流程图,所述步骤S101进一步包括以下步骤:
S201获取客户端调用所述统一数据存取接口的接口调用请求,所述接口调用请求携带加密的签名;
S202对所述接口调用请求进行签名验证。
S203若签名验证通过,则获取所述接口调用请求对应的日志数据。
S204在客户端发送日志数据存在并发时,采用队列模式将并发访问转换为串行访问。
所述接口调用请求是基于HTTP的信息化接口服务,请求方式为post,采用curl方式传输数据,并且使用UTF-8编码。
采用队列模式将并发访问变为串行访问,将所有的线程用一个队列管理起来,使之变成串行操作,从而避免高并发问题。
为了防止接口调用的过程中被黑客恶意篡改,调用接口都需要携带签名。日志存储系统将根据请求参数,对签名进行验证,签名不符合的请求将会被拒绝。
实施例三:
本实施例是对实施例二的进一步优化,如图3为本发明提供的一种高性能日志存储方法的第三流程图,所述步骤S201具体包括以下步骤:
S301对接口调用请求参数,除去sign参数拼装成字符串。
S302将所述字符串,采用utf-8编码,使用MD5算法对编码后的字节流进行摘要。
S303对摘要使用openssl公钥加密。
采用MD5和openssl公钥加密的方式,保证统一的数据接口的安全性。为了防止接口调用的过程中被黑客恶意篡改,调用接口都需要携带签名。日志存储系统将根据请求参数,对签名进行验证,签名不符合的请求将会被拒绝。
实施例四:
本实施例是对实施例三的进一步优化,如图4为本发明提供的一种高性能日志存储方法的第四流程图,所述步骤S103具体包括以下步骤
S401定时读取缓存队列中的日志数据,发送至log4php日志收集器。
S402log4php日志收集器将所述日志数据写入文件、邮箱或数据库。
在网站正常使用中,redis服务器一般是跟应用服务器分离开的,这样队列就不占用应用服务器的资源了,并且定时读取缓存队列中的日志数据,通过log4php日志收集器转发,能够在将日志数据写入存储目标的同时,进一步降低应用服务器资源占用,也不会影响数据库读写。
实施例五:
本发明实施例提供一种高性能日志存储装置,如图5是本装置的原理框图。所述装置包括:
日志接收模块501,用于通过统一数据存取接口获取客户端发送的日志数据。
日志缓存模块502,用于将所述日志数据存入日志存储系统的缓存队列中。
具体的,所述的缓存队列为redis缓存队列。(Redis不仅仅是来用于暂存日志数据空间,Redis除单纯缓存作用外,还可以处理一些简单的逻辑运算,Redis不仅可以缓存,而且还可以作为数据库用。Resdis消息队列,负责日志数据的接收,存储和转发。
日志收集模块503,从缓存队列中读取日志数据,将所述日志数据写入存储目标。
通过统一数据接口对接各客户端,所述的客户端还可以包括各种业务系统,日志数据通过统一数据接口接收,在存储在日志存储系统的缓存队列中,然后在通过在日志数据写入存储目标,即特定指向的文档和数据库等。本方案能够将日志数据从业务服务系统中分离出来,不再占用服务器资源,易于扩展。并且相比存储在本地文件,不会存在共享性问题。
实施例六:
本实施例是对实施例五的进一步优化,图6是本发明实施例提供另一种高性能日志存储装置的原理框图。
所述日志接收模块501具体包括
接口单元601,用于获取客户端调用所述统一数据存取接口的接口调用请求,所述接口调用请求携带加密的签名;
验证单元602,用于对所述接口调用请求进行签名验证;
获取单元603,用于若签名验证通过,则获取所述接口调用请求对应的日志数据。
所述日志收集模块503具体包括:
日志消息单元604,用于定时读取缓存队列中的日志数据,发送至log4php日志收集单元;
日志收集单元605,所述log4php日志收集器将所述日志数据写入文件、邮箱或数据库。
所述接口调用请求是基于HTTP的信息化接口服务,请求方式为post,采用curl方式传输数据,并且使用UTF-8编码。
采用队列模式将并发访问变为串行访问,将所有的线程用一个队列管理起来,使之变成串行操作,从而避免高并发问题。
为了防止接口调用的过程中被黑客恶意篡改,调用接口都需要携带签名。日志存储系统将根据请求参数,对签名进行验证,签名不符合的请求将会被拒绝。
在网站正常使用中,redis服务器一般是跟应用服务器分离开的,这样队列就不占用应用服务器的资源了,并且定时读取缓存队列中的日志数据,通过log4php日志收集器转发,能够在将日志数据写入存储目标的同时,进一步降低应用服务器资源占用,也不会影响数据库读写。
Claims (10)
1.一种高性能日志存储方法,其特征是,所述方法包括以下步骤:
通过统一数据存取接口获取客户端发送的日志数据;
所述日志数据存入日志存储系统的缓存队列中;
从缓存队列中读取日志数据,将所述日志数据写入存储目标。
2.根据权利要求1所述的高性能日志存储方法,其特征是,所述通过统一数据存取接口获取客户端发送的日志数据的步骤,进一步包括:
获取客户端调用所述统一数据存取接口的接口调用请求,所述接口调用请求携带加密的签名;
对所述接口调用请求进行签名验证;
若签名验证通过,则获取所述接口调用请求对应的日志数据。
3.根据权利要求2所述的高性能日志存储方法,其特征是,所述通过统一数据存取接口获取客户端发送的日志数据的步骤,还包括:
在客户端发送日志数据存在并发时,采用队列模式将并发访问转换为串行访问。
4.根据权利要求1所述的高性能日志存储方法,其特征是,所述接口调用请求携带加密的签名的步骤,进一步包括:
对接口调用请求参数,除去sign参数拼装成字符串;
将所述字符串,采用utf-8编码,使用MD5算法对编码后的字节流进行摘要;
对摘要使用openssl公钥加密。
5.根据权利要求1所述的高性能日志存储方法,其特征是,所述的缓存队列为redis缓存队列。
6.根据权利要求1所述的高性能日志存储方法,其特征是,所述接口调用请求是基于HTTP的信息化接口服务,请求方式为post,采用curl方式传输数据,并且使用UTF-8编码。
7.根据权利要求1所述的高性能日志存储方法,其特征是,所述从缓存队列中读取日志数据,将所述日志数据写入存储目标的步骤,进一步包括:
定时读取缓存队列中的日志数据,发送至log4php日志收集器;
log4php日志收集器将所述日志数据写入文件、邮箱或数据库。
8.一种高性能日志存储装置,其特征是,所述装置包括:
日志接收模块,用于通过统一数据存取接口获取客户端发送的日志数据;
日志缓存模块,用于将所述日志数据存入日志存储系统的缓存队列中;
日志收集模块,从缓存队列中读取日志数据,将所述日志数据写入存储目标。
9.根据权利要求8所述的高性能日志存储方法,其特征是,所述日志接收模块还包括:
接口单元,用于获取客户端调用所述统一数据存取接口的接口调用请求,所述接口调用请求携带加密的签名;
验证单元,用于对所述接口调用请求进行签名验证;
获取单元,用于若签名验证通过,则获取所述接口调用请求对应的日志数据。
10.根据权利要求8所述的高性能日志存储方法,其特征是,所述日志收集模块包括:
日志消息单元,用于定时读取缓存队列中的日志数据,发送至log4php日志收集单元;
日志收集单元,所述log4php日志收集器将所述日志数据写入文件、邮箱或数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810869562.8A CN109213741A (zh) | 2018-11-22 | 2018-11-22 | 高性能日志存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810869562.8A CN109213741A (zh) | 2018-11-22 | 2018-11-22 | 高性能日志存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109213741A true CN109213741A (zh) | 2019-01-15 |
Family
ID=64988586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810869562.8A Pending CN109213741A (zh) | 2018-11-22 | 2018-11-22 | 高性能日志存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213741A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111741360A (zh) * | 2020-06-19 | 2020-10-02 | 深圳市酷开网络科技有限公司 | 基于开源列式数据库的画像应用方法、装置及存储介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103804A1 (en) * | 2001-01-16 | 2002-08-01 | Newframe Corporation Ltd. | Sharing live data with a non cooperative DBMS |
CN101039186A (zh) * | 2007-05-08 | 2007-09-19 | 中国科学院软件研究所 | 系统日志的安全审计方法 |
CN101043338A (zh) * | 2007-04-27 | 2007-09-26 | 中国科学院软件研究所 | 基于安全需求的远程证明方法及其系统 |
CN101043335A (zh) * | 2007-03-12 | 2007-09-26 | 中国建设银行股份有限公司 | 一种信息安全控制系统 |
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
CN102456108A (zh) * | 2011-06-22 | 2012-05-16 | 中标软件有限公司 | 一种ibus拼音码表的加密方法 |
US20120251993A1 (en) * | 2011-03-28 | 2012-10-04 | iHealthEngines | Method and system for promoting health education |
CN102820983A (zh) * | 2011-11-18 | 2012-12-12 | 金蝶软件(中国)有限公司 | 系统异常信息采集方法及管理器 |
CN102868726A (zh) * | 2012-08-23 | 2013-01-09 | 北京神鹰城讯科技有限公司 | 一种互联网信息发布方法及系统 |
CN102891873A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 一种存储日志数据的方法及日志数据存储系统 |
CN104618455A (zh) * | 2015-01-12 | 2015-05-13 | 北京中交兴路车联网科技有限公司 | 一种通用缓存系统及其方法 |
CN105159818A (zh) * | 2015-08-28 | 2015-12-16 | 东北大学 | 内存数据管理中日志恢复方法及其仿真系统 |
CN105205167A (zh) * | 2015-10-10 | 2015-12-30 | 国网信息通信产业集团有限公司 | 一种日志数据系统 |
CN106649810A (zh) * | 2016-12-29 | 2017-05-10 | 山东舜网传媒股份有限公司 | 基于Ajax的新闻网页动态数据的抓取方法及系统 |
CN108446340A (zh) * | 2018-03-02 | 2018-08-24 | 哈尔滨工业大学(威海) | 一种面向海量小文件的用户热点数据访问预测方法 |
CN108512666A (zh) * | 2018-04-08 | 2018-09-07 | 苏州犀牛网络科技有限公司 | Api请求的加密方法、数据交互方法及系统 |
-
2018
- 2018-11-22 CN CN201810869562.8A patent/CN109213741A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103804A1 (en) * | 2001-01-16 | 2002-08-01 | Newframe Corporation Ltd. | Sharing live data with a non cooperative DBMS |
CN101043335A (zh) * | 2007-03-12 | 2007-09-26 | 中国建设银行股份有限公司 | 一种信息安全控制系统 |
CN101043338A (zh) * | 2007-04-27 | 2007-09-26 | 中国科学院软件研究所 | 基于安全需求的远程证明方法及其系统 |
CN101039186A (zh) * | 2007-05-08 | 2007-09-19 | 中国科学院软件研究所 | 系统日志的安全审计方法 |
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
US20120251993A1 (en) * | 2011-03-28 | 2012-10-04 | iHealthEngines | Method and system for promoting health education |
CN102456108A (zh) * | 2011-06-22 | 2012-05-16 | 中标软件有限公司 | 一种ibus拼音码表的加密方法 |
CN102891873A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 一种存储日志数据的方法及日志数据存储系统 |
CN102820983A (zh) * | 2011-11-18 | 2012-12-12 | 金蝶软件(中国)有限公司 | 系统异常信息采集方法及管理器 |
CN102868726A (zh) * | 2012-08-23 | 2013-01-09 | 北京神鹰城讯科技有限公司 | 一种互联网信息发布方法及系统 |
CN104618455A (zh) * | 2015-01-12 | 2015-05-13 | 北京中交兴路车联网科技有限公司 | 一种通用缓存系统及其方法 |
CN105159818A (zh) * | 2015-08-28 | 2015-12-16 | 东北大学 | 内存数据管理中日志恢复方法及其仿真系统 |
CN105205167A (zh) * | 2015-10-10 | 2015-12-30 | 国网信息通信产业集团有限公司 | 一种日志数据系统 |
CN106649810A (zh) * | 2016-12-29 | 2017-05-10 | 山东舜网传媒股份有限公司 | 基于Ajax的新闻网页动态数据的抓取方法及系统 |
CN108446340A (zh) * | 2018-03-02 | 2018-08-24 | 哈尔滨工业大学(威海) | 一种面向海量小文件的用户热点数据访问预测方法 |
CN108512666A (zh) * | 2018-04-08 | 2018-09-07 | 苏州犀牛网络科技有限公司 | Api请求的加密方法、数据交互方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111741360A (zh) * | 2020-06-19 | 2020-10-02 | 深圳市酷开网络科技有限公司 | 基于开源列式数据库的画像应用方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106506668B (zh) | 一种基于分布式存储实现对象存储的方法 | |
US20220156706A1 (en) | File vault and cloud based document notary service | |
US20130111550A1 (en) | Service broker systems, methods, and apparatus | |
CN104735021B (zh) | 一种帐号登录方法、装置和系统 | |
CN104820701A (zh) | 数据记录和同步方法及系统 | |
CN104603740A (zh) | 归档数据识别 | |
CN106303428A (zh) | 一种安防云平台 | |
CN110457258A (zh) | 一种日志管理方法、装置、设备及介质 | |
US20140020079A1 (en) | Method for providing network service and apparatus thereof | |
CN111815454B (zh) | 数据上链方法及装置、电子设备、存储介质 | |
CN104063958A (zh) | 一种无卡公共自行车系统及其借还车方法 | |
CN109068326B (zh) | 一种认证方法、装置、终端、存储介质以及系统 | |
CN103067479A (zh) | 一种基于文件冷热的网盘同步方法及系统 | |
CN112468409A (zh) | 访问控制方法、装置、计算机设备及存储介质 | |
CN103428700A (zh) | 业务鉴权方法及装置 | |
CN109743354A (zh) | 一种多云全托管容器集群方法 | |
CN102932443A (zh) | 基于hdfs集群的分布式云存储系统 | |
CN109005167B (zh) | 一种认证数据的处理方法、装置、服务器与存储介质 | |
US20110093524A1 (en) | Access log management method | |
CN109213741A (zh) | 高性能日志存储方法及装置 | |
CN114357252A (zh) | 跨源多域分布式数据的储存方法、系统及存储介质 | |
CN110034979A (zh) | 一种代理资源监测方法、装置、电子设备及存储介质 | |
CN103856504A (zh) | 分析存取路径以存取映像文件中目标文件的系统及其方法 | |
CN204557485U (zh) | 一种可通过指纹认证达成终端设备还原的私有云端设备 | |
JP4937021B2 (ja) | コンテンツ配信方法及び通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190115 |
|
RJ01 | Rejection of invention patent application after publication |