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 | |
CN102946440B (zh) | 一种基于云存储技术的自动云同步与恢复*** | |
CN104735021B (zh) | 一种帐号登录方法、装置和*** | |
CN104820701A (zh) | 数据记录和同步方法及*** | |
CN104603740A (zh) | 归档数据识别 | |
CN106303428A (zh) | 一种安防云平台 | |
CN109639819B (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) | 一种多云全托管容器集群方法 | |
Bolton et al. | ESCAPE prototypes a data infrastructure for open science | |
CN102932443A (zh) | 基于hdfs集群的分布式云存储*** | |
CN109005167B (zh) | 一种认证数据的处理方法、装置、服务器与存储介质 | |
US20110093524A1 (en) | Access log management method | |
CN109213741A (zh) | 高性能日志存储方法及装置 | |
CN114357252A (zh) | 跨源多域分布式数据的储存方法、***及存储介质 | |
CN110034979A (zh) | 一种代理资源监测方法、装置、电子设备及存储介质 | |
CN103856504A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190115 |
|
RJ01 | Rejection of invention patent application after publication |