CN109739687A - 一种基于Elasticsearch的快照管理系统及方法 - Google Patents
一种基于Elasticsearch的快照管理系统及方法 Download PDFInfo
- Publication number
- CN109739687A CN109739687A CN201811466067.9A CN201811466067A CN109739687A CN 109739687 A CN109739687 A CN 109739687A CN 201811466067 A CN201811466067 A CN 201811466067A CN 109739687 A CN109739687 A CN 109739687A
- Authority
- CN
- China
- Prior art keywords
- snapshot
- api
- user
- elasticsearch
- module
- 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.)
- Withdrawn
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于Elasticsearch的快照管理系统及方法。本发明系统包括用户管理模块、定时任务模块、API管理模块及操作日志记录与容错模块;用户管理模块对访问Elasticsearch快照API进行访问控制管理;定时任务模块提供周期性执行创建、删除、恢复快照的功能;API管理模块实现:对Elasticsearch的快照API进行重新封装,本地数据库与Elasticsearch快照信息实时同步;操作日志记录与容错模块实现:在本地数据库中记录所有用户调用API的执行信息,提供API操作失败容错能力;溯源用户操作。本发明解决了原生Elasticsearch存在的无法对创建快照的用户进行统一管理、无容错能力、无定时任务功能、快照API直接暴露等问题。
Description
技术领域
本发明涉及大数据处理技术领域,特别是一种基于Elasticsearch的快照管理系统及方法。
背景技术
Elasticsearch作用大数据分析工具,具备全文检索、分布式存储特性;使得其在日志分析领域使用十分普遍。但是因为Elasticsearch使用的是本地文件系统存储,本地容量十分有限,不易扩展。其次,由于Elasticsearch的开源版本不存在任何的用户管理功能,直接将快照API直接暴露出来,这种操作形式存在很大的安全隐患。
因此,用户若直接使用Elasticsearch的快照API会面临着许多的管理、安全、性能问题;具体如下:
Elasticsearch的社区版本不提供用户管理功能,所以根本不存在用户访问控制操作,所有用户都可以对快照仓库中所用的操作执行增、删、改、查操作;且操作无法追踪、溯源。这种情形就算是在内网也是非常危险的行为;用户的所有操作行为根本不受约束,风险极大。
Elasticsearch快照API直接访问后端Elasticsearch快照仓库,当用户并发量大时,很容易导致服务请求超时、服务不可达的情形发生。这部分存在明显的优化空间以应付高并发情形。
调用恢复快照API极易出现操作失败情形。若是本地原始数据未删除而直接进行快照恢复,将导致数据起冲突,引发快照恢复失败。因此用户在进行快照恢复操作时,还需不断检查本地是否还存有原始数据,若存在则删除;才能保证快照恢复成功。若是碰到日志量十分庞大场景,这类型操作的工作量也十分“可观”,影响用户体验。
原始快照出现操作失败情形时,定位错误流程十分麻烦,需人工查看Elasticsearch的服务日志,找到对应的快照操作日志的方式进行问题定位,且由于java程序的错误日志量十分庞大,因此就定位快照错误这一操作将是十分耗时、耗力的工作。
Elasticsearch原始日志存放在本地日志文件中,还存在严重的安全问题是用户能够删除日志文件中的记录,从而导致根本无法追踪用户的操作。
发明内容
本发明解决的技术问题在于一种基于Elasticsearch的快照管理系统及方法,解决原生Elasticsearch存在的无法对创建快照的用户进行统一管理、快照创建及恢复过程由于异常导致的成功或失败无容错能力、无定时任务功能,以及Elasticsearch快照API直接暴露给用户所带来的安全、性能问题。
本发明解决上述技术问题的技术方案是:
所述的系统包括用户管理模块、定时任务模块、API管理模块及操作日志记录与容错模块;
所述的用户管理模块对访问Elasticsearch快照API进行访问控制管理;
所述的定时任务模块提供周期性执行创建、删除、恢复快照的功能;
所述的API管理模块实现两个功能:一、对Elasticsearch的快照API进行重新封装;二、实现本地数据库与Elasticsearch快照信息实时同步;
所述的操作日志记录与容错模块实现三个功能:一、在本地数据库中记录所有用户调用API的执行信息;二、提供API操作失败一定程度的容错能力;三、溯源用户操作,审计用户行为。
所述的API管理模块实现Elasticsearch快照的读写分离,快照的查询与创建、恢复、删除操作实现分库操作。
所述的用户调用API的执行信息,包括用户、执行时间、操作类型、执行结果。
所述的用户调用API的执行信息,包括用户、执行时间、操作类型、执行结果。
所述的方法包括如下步骤:
步骤1:用户首先向用户管理模块发起调用Elasticsearch快照API的请求,用户管理模块验证用户是否具有调用对应API的权限,通过验证后则执行下一步,否则返回权限验证失败;
步骤2:用户选择在定时任务模块中创建定时任务,周期性调用API管理模块中的API执行快照创建、删除、恢复操作;
步骤3:API管理模块对Elasticsearch提供的API进行封装,同时本地数据库实现近实时同步Elasticsearch的快照仓库信息,对Elasticsearch的快照查询操作全部拆分到本地数据库进行,实现查询与创建、删除、恢复的分库操作;
步骤4:操作日志记录模块及容错处理模块提供对所有用户调用快照API的操作进行记录,为用户提供API调用的精细记录;同时,支持审计用户操作行为。
所述的操作日志记录模块及容错处理模块还提供创建、删除、恢复API的容错能力,通过对快照API的操作进行记录,并将执行失败的记录进行标记,使用定时器重新定时执行操作失败操作,直至操作成功取消标记。
所述的方法中本地使用MYSQL数据库,同时设置定时器定时调用Elasticsearch快照信息查询接口,不断更新本地数据库,实现快照读写分离。
所述的操作日志记录与容错模块中的操作记录存放在MYSQL数据库中,用户所有操作全部存在MYSQL中。
所述的容错能力是指当用户调用快照API操作时,能够对错误进行捕获并进行重试,重试时间间隔按指数规律递增,直至达到一定次数才取消重试,以应对网络不稳定或服务短时不可达场景。
本发明对Elasticsearch的快照功能进行了深层次的封装,在简单易用性、安全性、可靠性方面进行了扩展。在安全性方面,提供用户管理功能,实现对用户基于角色的精细化访问控制,对所用用户的操作进行精细化记录、异地存储实现对用户的误操作、恶意操作进行追踪、溯源、审计。简单易用性方面,提供原始API的封装、对快照恢复操作进行逻辑处理、提供定时任务模块周期性运行快照任务。在可靠性方面,提供快照操作的读写分离与失败自动重试功能。本发明在简单易用性、安全性、可靠性方面对Elasticsearch的快照功能进行了有效补充。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法模块构成图;
图2为本发明方法流程图。
具体实施方式
见图1、2所示,本发明的系统包括用户管理模块、定时任务模块、API管理模块及操作日志记录与容错模块。用户管理模块可根据需求灵活实现快照用户管理功能,为用户直接调用Elasticsearch增加一层用户访问控制,确保具有特定权限的用户角色才具有相应的执行操作的能力。该模块不仅为Elasticsearch的快照管理功能提供安全保护,而且还提供用户的权限进行精细化控制。
定时任务模块提供了周期性执行创建、删除、恢复快照的功能。用户仅需在该模块中创建定时任务,即可实现Elasticsearch本地存储的数据周期性的备份到快照仓库中,并可设置快照仓库中的快照保存时长,超时则快照自动删除,整个过程无需人工干预。
API管理模块实现两个功能:一、对Elasticsearch的快照API进行重新封装,简化用户调用快照接口的流程;二、实现Elasticsearch快照的读写分离,快照的查询与创建、恢复、删除操作实现分库操作。本地数据库与Elasticsearch快照信息近实时同步,用户查询Elasticsearch快照信息,访问本地数据库,避免所有操作全部访问后台Elasticsearch情形,提升用户的读写性能。
操作日志记录与容错模块实现三个功能:一、在本地数据库中记录所有用户调用API的执行信息,包括用户、执行时间、操作类型、执行结果,简化用户定位快照API操作失败的流程;二、提供API操作失败一定程度的容错能力。当由于网络错误或者服务宕机导致Elasticsearch服务不可达时,通过将用户操作失败的记录进行标记,使用定时器设置开始重试时间,若执行成功则记录取消执行失败标记,若重试继续失败则重试时间间隔按指数规律递增,直到达到一定的重试次数;三、溯源用户操作,审计用户行为。
API管理模块中,存在调用快照恢复API时,若本地的索引与快照恢复的索引重名,则该操作将会失败的问题。因此,本发明在此过程中增加应对该情形的处理逻辑,避免发生类似错误。
本地数据库与Elasticsearch的快照信息进行近实时同步实现方案,本地使用MYSQL数据库,同时设置定时器定时调用Elasticsearch快照信息查询接口,不断更新本地数据库,实现快照读写分离。缓解后台Elasticsearch的访问压力,提高读写性能。
操作日志记录与容错模块中的操作记录存放在MYSQL数据库中,用户所有操作全部存在MYSQL中,保证操作记录的真实性,以便于对用户操作行为进行追踪、溯源、审计。
见图2所示,本发明的实现方法包括如下步骤:
步骤1:用户首先向用户管理模块发起调用Elasticsearch快照API的请求,用户请求模块验证用户是否具有调用对应API的权限,通过验证后到步骤2,否则返回权限验证失败。
步骤2:用户可选择在定时任务模块中创建定时任务,周期性调用API管理模块中的API执行快照创建、删除、恢复操作。
步骤3:API管理模块对Elasticsearch提供的API进行封装,简化用户调用API的操作。同时本地数据库实现近实时同步Elasticsearch的快照仓库信息,对Elasticsearch的快照查询操作全部拆分到本地数据库进行,实现查询与创建、删除、恢复的分库操作,缓解多用户执行查询时快照仓库的查询压力。
步骤4:操作记录模块提供对所有用户调用快照API的操作进行记录,为用户提供API调用的精细记录,使用户无需通过分析Elasticsearch的日志来定位快照日志记录,简化错误排查过程。同时,支持审计用户操作行为。
步骤5:快照操作记录模块还提供创建、删除、恢复API的容错能力。通过对快照API的操作进行记录,并将执行失败的记录进行标记,使用定时器重新定时执行操作失败操作,直至操作成功取消标记。这种容错方式提供了一种处理应对网络错误、服务宕机导致的服务短时间不可达情形的方法。
所述的一种基于Elasticsearch的快照管理方法,其特征在于:Elasticsearch开源版并未提供用户管理功能,相应地也就没有快照管理功能,因此本发明提供的快照用户管理功能能够弥补这一缺陷,实现对用户调用快照API的权限精细化控制。
前述的容错能力是指当用户调用快照API操作时,能够对错误进行捕获并进行重试,重试时间间隔按指数规律递增,直至达到一定次数才取消重试,以应对网络不稳定或服务短时不可达场景。
下面结合程序对本发明的实施方法进一步说明:
首先用户发起调用快照API请求。
用户管理模块进行权限验证,该部分验证主要实现基于角色的访问控制,检查用户执行增、删、改、查对应的角色权限。该部分既可以依托已有的用户管理功能,仅需额外增加对快照API的管理支持,也可独立开发一个仅针对Elasticsearch快照功能的用户管理模块。验证若是失败,返回用户权限不足消息。
权限验证通过后,用户选择是否创建定时任务,以便于周期性的执行创建、删除快照操作。由于快照周期性的快照操作对于时间粒度要求不是很高,通常是以天为单位,所以通过在MYSQL数据库创建一个规则表,对每条规则的快照执行周期、删除周期进行配置。最后通过一个定时器ArchiveTimer使用cron方式每天定时检查规则,若触发则执行对应操作。
ArchiveTimer代码逻辑结构如下:
对用户调用快照API进行路由判断,若是读操作,即查询快照API,则访问本地同步的MYSQL数据库。若是写操作,即创建、删除、恢复快照API,则访问后端Elasticsearch快照仓库。代码逻辑如下:
MYSQL使用定时器SynchronousSnapshotTimer定时同步快照仓库中的快照信息。
SynchronousSnapshotTimer代码逻辑结构如下:
恢复快照API调用处理逻辑。代码逻辑如下:
操作日志记录将每次所用用户的操作记录到MYSQL数据库中。记录包括但不限于时间、用户、操作、结果。这种操作记录方式可以防止用户篡改本地日志并且使用结构化存储日志方便用户操作行为分析、审计。
Claims (9)
1.一种基于Elasticsearch的快照管理系统,其特征在于:所述的系统包括用户管理模块、定时任务模块、API管理模块及操作日志记录与容错模块;
所述的用户管理模块对访问Elasticsearch快照API进行访问控制管理;
所述的定时任务模块提供周期性执行创建、删除、恢复快照的功能;
所述的API管理模块实现两个功能:一、对Elasticsearch的快照API进行重新封装;二、实现本地数据库与Elasticsearch快照信息实时同步;
所述的操作日志记录与容错模块实现三个功能:一、在本地数据库中记录所有用户调用API的执行信息;二、提供API操作失败一定程度的容错能力;三、溯源用户操作,审计用户行为。
2.根据权利要求1所述的系统,其特征在于:所述的API管理模块实现Elasticsearch快照的读写分离,快照的查询与创建、恢复、删除操作实现分库操作。
3.根据权利要求1所述的系统,其特征在于:所述的用户调用API的执行信息,包括用户、执行时间、操作类型、执行结果。
4.根据权利要求2所述的系统,其特征在于:所述的用户调用API的执行信息,包括用户、执行时间、操作类型、执行结果。
5.根据权利要求1至4任一项所述系统的实现方法,其特征在于:所述的方法包括如下步骤:
步骤1:用户首先向用户管理模块发起调用Elasticsearch快照API的请求,用户管理模块验证用户是否具有调用对应API的权限,通过验证后则执行下一步,否则返回权限验证失败;
步骤2:用户选择在定时任务模块中创建定时任务,周期性调用API管理模块中的API执行快照创建、删除、恢复操作;
步骤3:API管理模块对Elasticsearch提供的API进行封装,同时本地数据库实现近实时同步Elasticsearch的快照仓库信息,对Elasticsearch的快照查询操作全部拆分到本地数据库进行,实现查询与创建、删除、恢复的分库操作;
步骤4:操作日志记录模块及容错处理模块提供对所有用户调用快照API的操作进行记录,为用户提供API调用的精细记录;同时,支持审计用户操作行为。
6.根据权利要求5所述的实现方法,其特征在于:所述的操作日志记录模块及容错处理模块还提供创建、删除、恢复API的容错能力,通过对快照API的操作进行记录,并将执行失败的记录进行标记,使用定时器重新定时执行操作失败操作,直至操作成功取消标记。
7.根据权利要求5所述的实现方法,其特征在于:所述的方法中本地使用MYSQL数据库,同时设置定时器定时调用Elasticsearch快照信息查询接口,不断更新本地数据库,实现快照读写分离。
8.根据权利要求5所述的实现方法,其特征在于:所述的操作日志记录与容错模块中的操作记录存放在MYSQL数据库中,用户所有操作全部存在MYSQL中。
9.根据权利要求5所述的实现方法,其特征在于:所述的容错能力是指当用户调用快照API操作时,能够对错误进行捕获并进行重试,重试时间间隔按指数规律递增,直至达到一定次数才取消重试,以应对网络不稳定或服务短时不可达场景。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811466067.9A CN109739687A (zh) | 2018-12-03 | 2018-12-03 | 一种基于Elasticsearch的快照管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811466067.9A CN109739687A (zh) | 2018-12-03 | 2018-12-03 | 一种基于Elasticsearch的快照管理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109739687A true CN109739687A (zh) | 2019-05-10 |
Family
ID=66358410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811466067.9A Withdrawn CN109739687A (zh) | 2018-12-03 | 2018-12-03 | 一种基于Elasticsearch的快照管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739687A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527911A (zh) * | 2020-12-29 | 2021-03-19 | 上海销氪信息科技有限公司 | 一种数据存储方法、装置、设备及介质 |
CN113434359A (zh) * | 2021-06-22 | 2021-09-24 | 平安国际智慧城市科技股份有限公司 | 数据溯源系统构建方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050027749A1 (en) * | 2003-07-29 | 2005-02-03 | Hiroshi Ohno | Apparatus and storage system for controlling acquisition of snapshot |
CN101247419A (zh) * | 2008-03-26 | 2008-08-20 | 北京航空航天大学 | 一种基于xesb的服务中介层容错方法 |
CN102520881A (zh) * | 2011-12-02 | 2012-06-27 | 中标软件有限公司 | 一种云计算平台的虚拟机快照管理方法和系统 |
CN102891873A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 一种存储日志数据的方法及日志数据存储系统 |
US20160147609A1 (en) * | 2014-11-26 | 2016-05-26 | Charles Michael Wallace | Snapshot management |
-
2018
- 2018-12-03 CN CN201811466067.9A patent/CN109739687A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050027749A1 (en) * | 2003-07-29 | 2005-02-03 | Hiroshi Ohno | Apparatus and storage system for controlling acquisition of snapshot |
CN101247419A (zh) * | 2008-03-26 | 2008-08-20 | 北京航空航天大学 | 一种基于xesb的服务中介层容错方法 |
CN102891873A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 一种存储日志数据的方法及日志数据存储系统 |
CN102520881A (zh) * | 2011-12-02 | 2012-06-27 | 中标软件有限公司 | 一种云计算平台的虚拟机快照管理方法和系统 |
US20160147609A1 (en) * | 2014-11-26 | 2016-05-26 | Charles Michael Wallace | Snapshot management |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527911A (zh) * | 2020-12-29 | 2021-03-19 | 上海销氪信息科技有限公司 | 一种数据存储方法、装置、设备及介质 |
CN113434359A (zh) * | 2021-06-22 | 2021-09-24 | 平安国际智慧城市科技股份有限公司 | 数据溯源系统构建方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220142B (zh) | 执行数据恢复操作的方法及装置 | |
CN105159818B (zh) | 内存数据管理中日志恢复方法及其仿真系统 | |
US8245192B1 (en) | Independent software development zones | |
CN107391758B (zh) | 数据库切换方法、装置及设备 | |
US7770057B1 (en) | System and method for customized disaster recovery reports | |
CN106156289A (zh) | 一种读写对象存储系统中的数据的方法以及装置 | |
CN105930228A (zh) | 数据备份方法及系统 | |
CN112099989A (zh) | 一种Kubernetes云原生应用灾备、迁移与恢复的方法 | |
CN112306743A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN101201768A (zh) | 数据保存的方法和模块、数据恢复的方法和模块 | |
US20080208958A1 (en) | Risk assessment program for a directory service | |
CN112612775B (zh) | 一种数据存储方法、装置、计算机设备及存储介质 | |
CN109739687A (zh) | 一种基于Elasticsearch的快照管理系统及方法 | |
CN110737504B (zh) | 一种深度学习模型训练容错方法、系统、终端及存储介质 | |
CN109446262A (zh) | 一种数据汇聚方法及装置 | |
CN109947592A (zh) | 一种数据同步方法、装置以及相关设备 | |
WO2023240995A1 (zh) | 一种双机热备系统的数据恢复方法、装置及介质 | |
CN105988885B (zh) | 基于补偿回滚的操作系统故障自恢复方法 | |
CN108804239A (zh) | 平台整合的方法、装置、计算机设备和存储介质 | |
CN105045728B (zh) | 一种本地缓存方法 | |
Cisco | CiscoWorks User Guide Software Release 1.0 | |
CN113867628A (zh) | 数据删除方法、装置、存储介质和计算设备 | |
CN107194247B (zh) | 一种针对虚拟机回滚的软件补偿方法及系统 | |
CN109684158A (zh) | 分布式协调系统的状态监控方法、装置、设备及存储介质 | |
CN107707402B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190510 |