CN109189658A - 一种日志存储方法、控制节点及计算机可读存储介质 - Google Patents
一种日志存储方法、控制节点及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109189658A CN109189658A CN201810949068.2A CN201810949068A CN109189658A CN 109189658 A CN109189658 A CN 109189658A CN 201810949068 A CN201810949068 A CN 201810949068A CN 109189658 A CN109189658 A CN 109189658A
- Authority
- CN
- China
- Prior art keywords
- log
- control node
- block
- cloud
- current
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种日志存储方法、控制节点及计算机可读存储介质,所述方法包括:控制节点接收云管理平台上报的日志及至少一个云主机上报的日志;控制节点创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志。本申请通过将云管理平台上报的日志和云主机上报的日志存储于日志侧链中,并在区块头中包括上一区块的哈希值,为云平台提供可靠准确无法篡改的操作日志服务,为云平台的后续功能提供进一步的可靠服务,并利用链的数据查询优势,提高了数据查询效率。
Description
技术领域
本发明涉及但不限于云服务技术领域,尤其涉及一种日志存储方法、控制节点及计算机可读存储介质。
背景技术
传统的云平台的操作日志主要存放于关系型数据库或非关系型数据库中,随着数据量的增大,数据库的查询效率逐渐降低,对云平台的整体效率造成极大影响。同时,传统的关系型数据库或非关系型数据库都容易遭到攻击,引起数据被窃取、篡改、增加或删除,造成数据破坏。
发明内容
本发明实施例提供了一种日志存储方法、控制节点及计算机可读存储介质,能够为云平台提供可靠准确无法篡改的操作日志服务并能提高数据查询效率。
为了达到本发明目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种日志存储方法,包括:
控制节点接收云管理平台上报的日志及至少一个云主机上报的日志;
控制节点创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志。
进一步地,所述日志侧链为以所述区块头或所述区块头指向的头结点为链头和链尾的闭合环链。
进一步地,所述控制节点使用令牌公钥创建所述当前区块,除所述控制节点以外的节点通过令牌私钥获取所述当前区块的内容。
进一步地,所述控制节点为所述云管理平台或所述云主机。
进一步地,在所述控制节点接收云管理平台上报的日志及至少一个云主机上报的日志之后,所述方法还包括以下至少之一:
所述控制节点按照预先定义的第一规则,对所述接收的日志进行筛选;
所述控制节点按照预先定义的第二规则,将所述接收的日志中的动作流日志转化为事务日志;
所述控制节点对所述接收的日志进行格式转化。
本发明实施例还提供了一种日志存储方法,包括:
在多个控制节点中竞争选出一当前控制节点;
当前控制节点接收云管理平台上报的日志及至少一个云主机上报的日志;
当前控制节点创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志;
当前控制节点将创建的所述当前区块的内容同步至除所述当前控制节点以外的其它控制节点。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的日志存储方法的步骤。
本发明实施例还提供了一种控制节点,包括处理器及存储器,其中:
所述处理器用于执行存储器中存储的日志存储程序,以实现如以上任一项所述的日志存储方法的步骤。
本发明实施例还提供了一种控制节点,包括第一日志接收模块和第一日志存储模块,其中:
第一日志接收模块,用于接收云管理平台上报的日志及至少一个云主机上报的日志;
第一日志存储模块,用于创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志。
本发明实施例还提供了一种控制节点,包括第二日志接收模块、第二日志存储模块、竞争模块和日志同步模块,其中:
竞争模块,用于与除所述控制节点自身以外的其它控制节点进行竞争,选出一当前控制节点,当所述控制节点自身为当前控制节点时,通知第二日志接收模块;当所述控制节点自身不是当前控制节点时,通知日志同步模块;
第二日志接收模块,用于接收到竞争模块的通知,接收云管理平台上报的日志及至少一个云主机上报的日志,通知第二日志存储模块;
第二日志存储模块,用于接收到第二日志接收模块的通知,创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志,通知日志同步模块;
日志同步模块,用于接收到第二日志存储模块的通知,将所述创建的当前区块的内容同步至除所述控制节点自身以外的其它控制节点;接收竞争模块的通知,与所述当前控制节点创建的所述当前区块的内容进行同步。
本发明实施例的技术方案,具有如下有益效果:
本发明实施例提供的日志存储方法、控制节点及计算机可读存储介质,通过将云管理平台上报的日志和云主机上报的日志存储于日志侧链中,并在区块头中包括上一区块的哈希值,为云平台提供可靠准确无法篡改的操作日志服务,为云平台的后续功能提供进一步的可靠服务,并利用链的数据查询优势,提高了数据查询效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明第一实施例的一种日志存储方法的流程示意图;
图2为本发明第一实施例的一种日志侧链的结构示意图;
图3为本发明第一实施例的一种区块结构示意图;
图4为本发明第一实施例的一种控制节点的结构示意图;
图5为本发明第一实施例的另一种控制节点的结构示意图;
图6为本发明第二实施例的一种日志存储方法的流程示意图;
图7为本发明第二实施例的一种控制节点的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例一
如图1所示,根据本发明实施例的一种日志存储方法,包括如下步骤:
步骤101:控制节点接收云管理平台上报的日志及至少一个云主机上报的日志;
需要说明的是,传统云平台的操作日志主要记录云管理平台相关的操作日志,不涉及云主机内部的相关操作日志,缺乏对平台整体日志的完整记录。单方面提供云管理平台的操作日志,不足够为重大事故以及云主机内部故障等事务提供有效完整的依据,本申请通过记录云主机内部的重要操作和系统错误日志,在所记录的日志种类上进行了扩展,为对应的审计和故障定位提供的有效的补充手段。
本实施例中,所述控制节点可以为所述云管理平台或任一所述云主机。
本实施例中,在所述控制节点接收云管理平台上报的日志及至少一个云主机上报的日志之后,所述方法还包括以下至少之一:
所述控制节点按照预先定义的第一规则,对所述接收的日志进行筛选;
所述控制节点按照预先定义的第二规则,将所述接收的日志中的动作流日志转化为事务日志;
所述控制节点对所述接收的日志进行格式转化。
需要说明的是,所述预先定义的第一规则,用于去除所述云管理平台上报的日志和各个云主机上报的日志中的非重要日志。至于哪些日志属于重要日志,哪些日志属于非重要日志,可以由系统管理员预先进行定义。
传统云平台的操作日志大多属于动作流日志;所谓的动作流日志,记录一个从开始到结束的整个过程,主要在各个操作动作的不同应用程序编程接口(API,ApplicationProgramming Interface)请求节点,通过调用消息队列(Message Queue,MQ),将对应的日志固化到底层存储。动作流日志区别于事务日志,其无法为后续的日志审计和依赖日志的云平台计费提供有效的依据,限制了平台整体的扩展性;同时动作流日志无法有效准确地提供失败和未完成的事务日志,给云平台的操作日志平添不少遗憾。本申请通过将动作流日志解析合并生成事务日志,唯一标识平台操作。
此处预先定义的第二规则,由系统管理员生成,例如,可以预先指定某一事务日志为一系列数据更新操作的动作有序记录集合,具体地,一组创建实例的动作流如下:
instance create start->image get–>sys volume create end->sys volumecreate end–>network create start–>network create end–>instance create end
在该示例中,转化后的事务日志仅为:instance create。
所述控制节点在对所述接收的日志进行格式转化时,将所有接收的日志(无论接收的日志的格式是何种格式)转化为一种统一的日志格式。在本实施例的一示例中,一种统一的日志格式如下:{“Time”:“2018:07:26 11:00”,“OP_User”:“admin”,“Instance_Owner”:“instance-01112”:“OP_type”:“云盘挂载”,“OP_status”:“成功”},其中,Time为操作时间,OP_User为操作者,Instance_Owner为动作所属云主机,OP_type为动作类型,OP_status为操作结果。
步骤102:控制节点创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志。
本实施例中,如图2所示,所述预先定义的顺序可以为云管理平台、云主机1至云主机n,n为所述云平台中云主机的台数。
本实施例中,所述日志侧链可以为以所述区块头或所述区块头指向的头结点为链头和链尾的闭合环链。如图3所示,所述闭合环链中的头结点可以为一空的头结点,也可以不为空(例如,其中可以包含链表中的结点数等信息),所述闭合环链也可以直接以所述区块头为链头和链尾。第一个被最早构建的区块称为创世区块。区块头m和日志侧链共同构成了区块m,m为大于或等于1的自然数。
与传统的数据存储方式相比,闭合环链的数据存储方式实现了数据的透明以及请求和查询速度的提升,同时也降低了整体云平台消息队列的占用情况,缓解了高峰情况下平台的负载压力。
本实施例中,所述控制节点使用令牌公钥创建所述当前区块,除所述控制节点以外的节点通过令牌私钥获取所述当前区块的内容。
需要说明的是,所述除所述控制节点以外的节点包括非控制节点以及除所述控制节点以外的控制节点。本申请中存储的日志采用令牌控制访问,令牌以令牌公钥和令牌私钥的形式成对呈现,令牌可以在云管理平台产生阶段生成或者云主机产生阶段生成,其中令牌公钥用于将接收的日志记录到闭合环链,令牌私钥则用于对存储的日志进行访问权限控制。现有的云平台中云主机内部日志上报,多数通过运维人员手动获取,无法形成自动化和规模化的要求。本申请通过在云主机内部设置代理,实现云主机内部向控制节点定期上报日志消息,需要额外打通云主机和控制节点的连接网络。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的日志存储方法的步骤。
如图4所示,本发明实施例还提供了一种控制节点,包括处理器401及存储器402,其中:
所述处理器401用于执行存储器402中存储的日志存储程序,以实现如以上任一项所述的日志存储方法的步骤。
如图5所示,根据本发明实施例的一种控制节点,包括第一日志接收模块501和第一日志存储模块502,其中:
第一日志接收模块501,用于接收云管理平台上报的日志及至少一个云主机上报的日志;
第一日志存储模块502,用于创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志。
本申请通过记录云主机内部的重要操作和系统错误日志,在所记录的日志种类上进行了扩展,为对应的审计和故障定位提供的有效的补充手段。
本实施例中,所述控制节点可以为所述云管理平台或任一所述云主机。
本实施例中,所述第一日志接收模块501还用于以下至少之一:
按照预先定义的第一规则,对所述接收的日志进行筛选;
按照预先定义的第二规则,将所述接收的日志中的动作流日志转化为事务日志;
对所述接收的日志进行格式转化。
需要说明的是,所述预先定义的第一规则,用于去除所述云管理平台上报的日志和各个云主机上报的日志中的非重要日志。哪些日志属于重要日志,哪些日志属于非重要日志,由系统管理员预先进行定义。
传统云平台的操作日志大多属于动作流日志;所谓的动作流日志,记录一个从开始到结束的整个过程,无法为后续的日志审计和依赖日志的云平台计费提供有效的依据,限制了平台整体的扩展性;同时动作流日志无法有效准确地提供失败和未完成的事务日志,给云平台的操作日志平添不少遗憾。本申请通过将动作流日志解析合并生成事务型日志,唯一标识平台操作。
此处预先定义的第二规则,由系统管理员生成,例如,可以预先指定某一事务日志为一系列数据更新操作的动作有序记录集合。
在所述第一日志接收模块501对所述接收的日志进行格式转化时,将所有接收的日志(无论接收的日志的格式是何种格式)转化为一种统一的日志格式。在本发明实施例的一示例中,一种统一的日志格式如下:{“Time”:“2018:07:26 11:00”,“OP_User”:“admin”,“Instance_Owner”:“instance-01112”:“OP_type”:“云盘挂载”,“OP_status”:“成功”},其中,Time为操作时间,OP_User为操作者,Instance_Owner为动作所属云主机,OP_type为动作类型,OP_status为操作结果。
本实施例中,如图2所示,所述预先定义的顺序可以为云管理平台、云主机1至云主机n,n为所述云平台中云主机的台数。
本实施例中,所述日志侧链可以为以所述区块头或所述区块头指向的头结点为链头和链尾的闭合环链。如图3所示,所述闭合环链中的头结点可以为一空的头结点,也可以不为空(例如可以包含链表中的结点数等信息),所述闭合环链也可以直接以所述区块头为链头和链尾。第一个被最早构建的区块称为创世区块。区块头m和日志侧链共同构成了区块m,m为大于或等于1的自然数。
与传统的数据存储方式相比,闭合环链的数据存储方式实现了数据的透明以及请求和查询速度的提升,同时也降低了整体云平台消息队列的占用情况,缓解了高峰情况下平台的负载压力。
本实施例中,所述第一日志存储模块502使用令牌公钥创建所述当前区块,网络中的其它节点通过令牌私钥获取所述当前区块的内容。
本申请中第一日志存储模块502存储的日志采用令牌控制访问,令牌以令牌公钥和令牌私钥的形式成对呈现,令牌可以在云管理平台产生阶段生成或者云主机产生阶段生成,其中令牌公钥用于将接收的日志记录到闭合环链,令牌私钥则用于对存储的日志进行访问权限控制。
现有的云平台中云主机内部日志上报,多数通过运维人员手动获取,无法形成自动化和规模化的要求。本申请通过在云主机内部设置代理,实现云主机内部向控制节点定期上报日志消息。
实施例二
本实施例通过设置多个控制节点,解决传统数据库中的单点故障问题,即使某一控制节点的日志记录进程出现意外时,其它控制节点仍可以正常记录整个云平台的日志。
如图6所示,根据本发明实施例的一种日志存储方法,包括如下步骤:
步骤601:在多个控制节点中竞争选出一当前控制节点;
本实施例中,所述控制节点可以为所述云管理平台和/或所述云主机。
需要说明的是,本申请并不限制如何在多个所述控制节点中竞争选出一当前控制节点的方法,例如,可以预先定义最先获取所有云管理平台和云主机日志的控制节点为当前控制节点;或者可以预先指定一个当前控制节点(通常为云管理平台所在的节点),当当前控制节点出现宕机或程序异常时,按照预先指定的顺序指定另一控制节点(例如,可能为某一云主机)为当前控制节点;或者也可以设置最先计算出满足预设条件的区块哈希值的控制节点为当前控制节点。
步骤602:当前控制节点接收云管理平台上报的日志及至少一个云主机上报的日志;
本实施例中,在所述当前控制节点接收云管理平台上报的日志及至少一个云主机上报的日志之后,所述方法还包括以下至少之一:
所述当前控制节点按照预先定义的第一规则,对所述接收的日志进行筛选;
所述当前控制节点按照预先定义的第二规则,将所述接收的日志中的动作流日志转化为事务日志;
所述当前控制节点对所述接收的日志进行格式转化。
需要说明的是,所述预先定义的第一规则,用于去除所述云管理平台上报的日志和各个云主机上报的日志中的非重要日志。至于哪些日志属于重要日志,哪些日志属于非重要日志,可以由系统管理员预先进行定义。
传统云平台的操作日志大多属于动作流日志;所谓的动作流日志,记录一个从开始到结束的整个过程,无法为后续的日志审计和依赖日志的云平台计费提供有效的依据,限制了平台整体的扩展性;同时,动作流日志无法有效准确地提供失败和未完成的事务日志,给云平台的操作日志平添不少遗憾。本申请通过将动作流日志解析合并生成事务日志,唯一标识平台操作。
此处预先定义的第二规则,由系统管理员生成,例如,可以预先指定某一事务日志为一系列数据更新操作的动作有序记录集合,具体地,一组创建实例的动作流如下:
instance create start->image get–>sys volume create end->sys volumecreate end–>network create start–>network create end–>instance create end
在该示例中,转化后的事务日志仅为:instance create。
所述当前控制节点在对所述接收的日志进行格式转化时,将所有接收的日志(无论接收的日志的格式是何种格式)转化为一种统一的日志格式。在本发明实施例的一示例中,一种统一的日志格式如下:{“Time”:“2018:07:2611:00”,“OP_User”:“admin”,“Instance_Owner”:“instance-01112”:“OP_type”:“云盘挂载”,“OP_status”:“成功”},其中,Time为操作时间,OP_User为操作者,Instance_Owner为动作所属云主机,OP_type为动作类型,OP_status为操作结果。
步骤603:当前控制节点创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志;
本实施例中,如图2所示,所述预先定义的顺序可以为云管理平台、云主机1至云主机n,n为所述云平台中云主机的台数。
本实施例中,所述日志侧链可以为以所述区块头或所述区块头指向的头结点为链头和链尾的闭合环链。如图3所示,所述闭合环链中的头结点可以为一空的头结点,也可以不为空(例如可以包含链表中的结点数等信息),所述闭合环链也可以直接以所述区块头为链头和链尾。第一个被最早构建的区块称为创世区块。区块头m和日志侧链共同构成了区块m,m为大于或等于1的自然数。
与传统的数据存储方式相比,闭合环链的数据存储方式实现了数据的透明以及请求和查询速度的提升,同时也降低了整体云平台消息队列的占用情况,缓解了高峰情况下平台的负载压力。
本实施例中,所述当前控制节点使用令牌公钥创建所述当前区块,除所述当前控制节点以外的节点通过令牌私钥获取所述当前区块的内容。
步骤604:当前控制节点将创建的所述当前区块的内容同步至除所述当前控制节点以外的其它控制节点。
现有技术方案一般通过数据库集群的方式避免日志数据中心化问题,但是通过数据库集群方式需要额外耗费新的资源,且庞大的集群无法保证数据的存取效率问题。本申请通过设置多个控制节点,可以在当前控制节点出现宕机或程序异常时,使用另一控制节点作为当前控制节点,继续记录整个云平台的日志,从而保证了整个云平台的日志能够持续正常记录,解决了传统数据库存在的单点故障问题;同时,本申请通过采用闭合环链的思想,将云管理平台和云主机形成半中心化的闭合环链,将日志数据以分散链的方式存储,改变了传统的云平台日志存储方式,利用链的数据查询优势,解决了传统云平台日志数据庞大引发的诸如查询慢、中心故障等问题。
本实施例中,在整个云平台系统中,云管理平台所在的节点为长久的控制节点,同时,不同的云主机也可以选择是否加入控制节点,如果整个系统中有多个云主机以及云管理平台为控制节点,则不同的节点竞争出一个当前控制节点,只有该当前控制节点获得创建当前区块的权利,该当前控制节点生成日志侧链后,需要通过点对点(P2P,Peer toPeer)网络,同步给整个平台中所有的其它控制节点,该次日志记录过程结束。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的日志存储方法的步骤。
本发明实施例还提供了一种控制节点,包括处理器及存储器,其中:
所述处理器用于执行存储器中存储的日志存储程序,以实现如以上任一项所述的日志存储方法的步骤。
如图7所示,根据本发明实施例的一种控制节点,包括第二日志接收模块701、第二日志存储模块702、竞争模块703和日志同步模块704,其中:
竞争模块703,用于与除所述控制节点自身以外的其它控制节点进行竞争,选出一当前控制节点,当所述控制节点自身为当前控制节点时,通知第二日志接收模块701;当所述控制节点自身不是当前控制节点时,通知日志同步模块704;
第二日志接收模块701,用于接收到竞争模块703的通知,接收云管理平台上报的日志及至少一个云主机上报的日志,通知第二日志存储模块702;
第二日志存储模块702,用于接收到第二日志接收模块701的通知,创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志,通知日志同步模块704;
日志同步模块704,用于接收到第二日志存储模块702的通知,将所述创建的当前区块的内容同步至除所述控制节点自身以外的其它控制节点;接收竞争模块703的通知,与所述当前控制节点创建的所述当前区块的内容进行同步。
本申请通过记录云主机内部的重要操作和系统错误日志,在所记录的日志种类上进行了扩展,为对应的审计和故障定位提供的有效的补充手段。
本实施例中,所述控制节点可以为所述云管理平台和/或任一所述云主机。通过设置多个控制节点,可以解决传统数据库中的单点故障问题,即使某一控制节点的日志记录进程出现意外时,其它控制节点仍可以正常记录整个云平台的日志。
本实施例中,在所述接收云管理平台上报的日志及至少一个云主机上报的日志之后,所述第二日志接收模块701还用于以下至少之一:
按照预先定义的第一规则,对所述接收的日志进行筛选;
按照预先定义的第二规则,将所述接收的日志中的动作流日志转化为事务日志;
对所述接收的日志进行格式转化。
需要说明的是,所述预先定义的第一规则,用于去除所述云管理平台上报的日志和各个云主机上报的日志中的非重要日志。哪些日志属于重要日志,哪些日志属于非重要日志,由系统管理员预先进行定义。
传统云平台的操作日志大多属于动作流日志;所谓的动作流日志,记录一个从开始到结束的整个过程,无法为后续的日志审计和依赖日志的云平台计费提供有效的依据,限制了平台整体的扩展性;同时动作流日志无法有效准确地提供失败和未完成的事务日志,给云平台的操作日志平添不少遗憾。本申请通过将动作流日志解析合并生成事务型日志,唯一标识平台操作。
此处预先定义的第二规则,由系统管理员生成,例如,可以预先指定某一事务日志为一系列数据更新操作的动作有序记录集合,具体地,一组创建实例的动作流如下:
instance create start->image get–>sys volume create end->sys volumecreate end–>network create start–>network create end–>instance create end
在该示例中,转化后的事务日志仅为:instance create。
在所述第二日志接收模块701对所述接收的日志进行格式转化时,将所有接收的日志(无论接收的日志的格式是何种格式)转化为一种统一的日志格式。在本发明实施例的一示例中,一种统一的日志格式如下:{“Time”:“2018:07:26 11:00”,“OP_User”:“admin”,“Instance_Owner”:“instance-01112”:“OP_type”:“云盘挂载”,“OP_status”:“成功”},其中,Time为操作时间,OP_User为操作者,Instance_Owner为动作所属云主机,OP_type为动作类型,OP_status为操作结果。
本实施例中,如图2所示,所述预先定义的顺序可以为云管理平台、云主机1至云主机n,n为所述云平台中云主机的台数。
本实施例中,所述日志侧链可以为以所述区块头或所述区块头指向的头结点为链头和链尾的闭合环链。如图3所示,所述闭合环链中的头结点可以为一空的头结点,也可以不为空(例如可以包含链表中的结点数等信息),所述闭合环链也可以直接以所述区块头为链头和链尾。第一个被最早构建的区块称为创世区块。区块头m和日志侧链共同构成了区块m,m为大于或等于1的自然数。
与传统的数据存储方式相比,闭合环链的数据存储方式实现了数据的透明以及请求和查询速度的提升,同时也降低了整体云平台消息队列的占用情况,缓解了高峰情况下平台的负载压力。
本申请的竞争模块703并不限制如何在多个所述控制节点中竞争选出一个当前控制节点的方法,例如,可以预先定义最先获取所有云管理平台和云主机日志的控制节点为当前控制节点;或者可以预先指定一个当前控制节点(通常为云管理平台所在的节点),当当前控制节点出现宕机或程序异常时,按照预先指定的顺序指定另一控制节点(例如,可能为某一云主机)为当前控制节点;或者也可以设置最先计算出满足预设条件的区块哈希值的控制节点为当前控制节点。
现有技术方案一般通过数据库集群的方式避免日志数据中心化问题,但是通过数据库集群方式需要额外耗费新的资源,且庞大的集群无法保证数据的存取效率问题。本申请通过设置多个控制节点,可以在当前控制节点出现宕机或程序异常时,使用另一控制节点作为当前控制节点,继续记录整个云平台的日志,从而保证了整个云平台的日志能够持续正常记录,解决了传统数据库存在的单点故障问题;同时,本申请通过采用闭合环链的思想,将云管理平台和云主机形成半中心化的闭合环链,将日志数据以分散链的方式存储,改变了传统的云平台日志存储方式,利用链的数据查询优势,解决了传统云平台日志数据庞大引发的诸如查询慢、中心故障等问题。
本实施例中,在整个云平台系统中,云管理平台所在的节点为长久的控制节点,同时,不同的云主机也可以选择是否加入控制节点,如果整个系统中有多个云主机以及云管理平台为控制节点,则不同的节点竞争出一个当前控制节点,只有该当前控制节点获得创建当前区块的权利,该当前控制节点生成日志侧链后,需要通过P2P网络,同步给整个平台中所有的其它控制节点,该次日志记录过程结束。
本实施例中,第二日志存储模块702使用令牌公钥创建所述当前区块,网络中的其它节点通过令牌私钥获取所述当前区块的内容。
本申请中第二日志存储模块702存储的日志采用令牌控制访问,令牌以令牌公钥和令牌私钥的形式成对呈现,令牌可以在云管理平台产生阶段生成或者云主机产生阶段生成,其中令牌公钥用于将接收的日志记录到闭合环链,令牌私钥则用于对存储的日志进行访问权限控制。
现有的云平台中云主机内部日志上报,多数通过运维人员手动获取,无法形成自动化和规模化的要求。本申请通过在云主机内部设置代理,实现云主机内部向控制节点定期上报日志消息。
本发明实施例提供的日志存储方法、控制节点及计算机可读存储介质,通过采用链的日志存储方式,以云管理平台所在的控制节点为起点,在平台不断创建生成云主机的过程中,不断的扩展,形成对应数据的备份,解决了数据中心化的问题;
通过采用闭合环链的数据存储方式,实现了数据的请求和查询速度的提升,同时也降低了整体云平台消息队列的占用情况,缓解了高峰情况下平台的负载压力。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种日志存储方法,其特征在于,包括:
控制节点接收云管理平台上报的日志及至少一个云主机上报的日志;
控制节点创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志。
2.根据权利要求1所述的方法,其特征在于,所述日志侧链为以所述区块头或所述区块头指向的头结点为链头和链尾的闭合环链。
3.根据权利要求1所述的方法,其特征在于,所述控制节点使用令牌公钥创建所述当前区块,除所述控制节点以外的节点通过令牌私钥获取所述当前区块的内容。
4.根据权利要求1所述的方法,其特征在于,所述控制节点为所述云管理平台或所述云主机。
5.根据权利要求1所述的方法,其特征在于,在所述控制节点接收云管理平台上报的日志及至少一个云主机上报的日志之后,所述方法还包括以下至少之一:
所述控制节点按照预先定义的第一规则,对所述接收的日志进行筛选;
所述控制节点按照预先定义的第二规则,将所述接收的日志中的动作流日志转化为事务日志;
所述控制节点对所述接收的日志进行格式转化。
6.一种日志存储方法,其特征在于,包括:
在多个控制节点中竞争选出一当前控制节点;
当前控制节点接收云管理平台上报的日志及至少一个云主机上报的日志;
当前控制节点创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志;
当前控制节点将创建的所述当前区块的内容同步至除所述当前控制节点以外的其它控制节点。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6中任一项所述的日志存储方法的步骤。
8.一种控制节点,其特征在于,包括处理器及存储器,其中:
所述处理器用于执行存储器中存储的日志存储程序,以实现如权利要求1至6中任一项所述的日志存储方法的步骤。
9.一种控制节点,其特征在于,包括第一日志接收模块和第一日志存储模块,其中:
第一日志接收模块,用于接收云管理平台上报的日志及至少一个云主机上报的日志;
第一日志存储模块,用于创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志。
10.一种控制节点,其特征在于,包括第二日志接收模块、第二日志存储模块、竞争模块和日志同步模块,其中:
竞争模块,用于与除所述控制节点自身以外的其它控制节点进行竞争,选出一当前控制节点,当所述控制节点自身为当前控制节点时,通知第二日志接收模块;当所述控制节点自身不是当前控制节点时,通知日志同步模块;
第二日志接收模块,用于接收到竞争模块的通知,接收云管理平台上报的日志及至少一个云主机上报的日志,通知第二日志存储模块;
第二日志存储模块,用于接收到第二日志接收模块的通知,创建当前区块,所述当前区块包括区块头和日志侧链,所述区块头包括上一区块的哈希值,所述日志侧链按照预先定义的顺序,存储接收的日志,通知日志同步模块;
日志同步模块,用于接收到第二日志存储模块的通知,将所述创建的当前区块的内容同步至除所述控制节点自身以外的其它控制节点;接收竞争模块的通知,与所述当前控制节点创建的所述当前区块的内容进行同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810949068.2A CN109189658B (zh) | 2018-08-20 | 2018-08-20 | 一种日志存储方法、控制节点及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810949068.2A CN109189658B (zh) | 2018-08-20 | 2018-08-20 | 一种日志存储方法、控制节点及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189658A true CN109189658A (zh) | 2019-01-11 |
CN109189658B CN109189658B (zh) | 2022-05-27 |
Family
ID=64919042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810949068.2A Active CN109189658B (zh) | 2018-08-20 | 2018-08-20 | 一种日志存储方法、控制节点及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189658B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885496A (zh) * | 2019-02-20 | 2019-06-14 | 北京百佑科技有限公司 | 测试日志管理方法及系统 |
CN109947641A (zh) * | 2019-02-20 | 2019-06-28 | 北京百佑科技有限公司 | 自动化测试方法及装置 |
CN111177096A (zh) * | 2019-12-11 | 2020-05-19 | 招银云创(深圳)信息技术有限公司 | 日志管理方法、装置、计算机设备和存储介质 |
CN114884976A (zh) * | 2022-03-21 | 2022-08-09 | 杭州锘崴信息科技有限公司 | 区块链结构生成方法、区块链结构、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714089A (zh) * | 2012-09-29 | 2014-04-09 | 上海盛大网络发展有限公司 | 一种实现云数据库回滚的方法及系统 |
CN106780032A (zh) * | 2016-12-16 | 2017-05-31 | 杭州云象网络技术有限公司 | 一种多链场景下的区块链链间资产转移方法 |
CN106843750A (zh) * | 2016-12-20 | 2017-06-13 | 中国科学院苏州生物医学工程技术研究所 | 分布式存储系统 |
CN108038389A (zh) * | 2017-12-08 | 2018-05-15 | 福建亿榕信息技术有限公司 | 基于区块链存储电子文件审计跟踪日志的方法以及装置 |
WO2018089843A1 (en) * | 2016-11-10 | 2018-05-17 | Saavha, Inc. | Secured auditing system based on verified hash algorithm |
CN108322306A (zh) * | 2018-03-17 | 2018-07-24 | 北京工业大学 | 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法 |
-
2018
- 2018-08-20 CN CN201810949068.2A patent/CN109189658B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714089A (zh) * | 2012-09-29 | 2014-04-09 | 上海盛大网络发展有限公司 | 一种实现云数据库回滚的方法及系统 |
WO2018089843A1 (en) * | 2016-11-10 | 2018-05-17 | Saavha, Inc. | Secured auditing system based on verified hash algorithm |
CN106780032A (zh) * | 2016-12-16 | 2017-05-31 | 杭州云象网络技术有限公司 | 一种多链场景下的区块链链间资产转移方法 |
CN106843750A (zh) * | 2016-12-20 | 2017-06-13 | 中国科学院苏州生物医学工程技术研究所 | 分布式存储系统 |
CN108038389A (zh) * | 2017-12-08 | 2018-05-15 | 福建亿榕信息技术有限公司 | 基于区块链存储电子文件审计跟踪日志的方法以及装置 |
CN108322306A (zh) * | 2018-03-17 | 2018-07-24 | 北京工业大学 | 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885496A (zh) * | 2019-02-20 | 2019-06-14 | 北京百佑科技有限公司 | 测试日志管理方法及系统 |
CN109947641A (zh) * | 2019-02-20 | 2019-06-28 | 北京百佑科技有限公司 | 自动化测试方法及装置 |
CN109947641B (zh) * | 2019-02-20 | 2022-07-19 | 北京百佑科技有限公司 | 自动化测试方法及装置 |
CN111177096A (zh) * | 2019-12-11 | 2020-05-19 | 招银云创(深圳)信息技术有限公司 | 日志管理方法、装置、计算机设备和存储介质 |
CN114884976A (zh) * | 2022-03-21 | 2022-08-09 | 杭州锘崴信息科技有限公司 | 区块链结构生成方法、区块链结构、电子设备和存储介质 |
CN114884976B (zh) * | 2022-03-21 | 2024-01-30 | 杭州锘崴信息科技有限公司 | 区块链结构生成方法、区块链结构、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109189658B (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189658A (zh) | 一种日志存储方法、控制节点及计算机可读存储介质 | |
US9965364B2 (en) | Fault tolerant listener registration in the presence of node crashes in a data grid | |
CN109445802B (zh) | 基于容器的私有化Paas平台及其发布应用的方法 | |
CN102682052B (zh) | 过滤数据存储上的查询数据 | |
US20160034205A1 (en) | Systems and/or methods for leveraging in-memory storage in connection with the shuffle phase of mapreduce | |
CN104391930A (zh) | 分布式文件存储装置和方法 | |
CN102214205A (zh) | 带有自适应克隆的经聚类的数据库系统中的逻辑复制 | |
CN110661812A (zh) | 一种基于区块链的级联认证系统 | |
CN106339475A (zh) | 一种海量数据的分布式存储系统 | |
CN104050276A (zh) | 一种分布式数据库的缓存处理方法及系统 | |
CN107800808A (zh) | 一种基于Hadoop架构的数据存储系统 | |
CN106101213A (zh) | 信息分布式存储方法 | |
CN102752387A (zh) | 数据存储处理系统和数据存储处理方法 | |
CN112131305A (zh) | 账户处理系统 | |
CN109639773A (zh) | 一种动态构建的分布式数据集群控制系统及其方法 | |
CN104881749A (zh) | 面向多租户的数据管理方法和数据存储系统 | |
CN113127462A (zh) | 一种基于生命周期管理的一体化大数据管理平台 | |
CN204926097U (zh) | 数据隔离存储系统 | |
CN114048186A (zh) | 一种基于海量数据的数据迁移方法及系统 | |
CN103647824A (zh) | 一种存储资源优化调度发现算法 | |
CN112800066A (zh) | 索引管理的方法、相关设备及存储介质 | |
CN114741367B (zh) | 数据同步方法、装置、电子设备、存储介质和程序产品 | |
CN104765748B (zh) | 一种将复制表转换为分片表的方法及装置 | |
CN115587147A (zh) | 一种数据处理方法及系统 | |
CN114238481A (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 |