将Elasticsearch快照与Minio存储库一起使用

将Elasticsearch快照与Minio存储库一起使用

本文向您展示如何配置Elasticsearch在[Minio](http://www.minio.org.cn/)中存储快照和元数据Minio是为云应用程序开发人员和开发人员构建的对象存储服务器,并与Amazon S3对象存储兼容。

当前的Elasticsearch aws云插件已使用较旧版本的Amazon SDK构建,从而导致了多个问题。我们创建了一个pull请求,以在此处更改Elasticsearch 5的aws sdk 

可以在此处找到用于将aws sdk更新为较旧版本的补丁文件

可以在此存储库中找到Elasticsearch 2.3.4和2.4的已编译插件它们包含aws sdk的颠簸版本以及针对双哈希的修复程序。

要构建Elasticsearch的更新的AWS云插件:

定制建筑

Elasticsearch 2.x

git clone https://github.com/elastic/elasticsearch/
git reset — hard v2.3.4

将pom.xml参考更新到您的Elasticsearch版本。这是因为否则在安装过程中,插件将抱怨版本不兼容。

sed -i”.bak” s/”2.3.4-SNAPSHOT”/”2.3.4"/g **pom.xml

应用包含较新的SDK版本的补丁,并解决双重哈希问题。

curl https://gist.githubusercontent.com/nl5887/95352af849089e69150bdf7129a83c92/raw/c36b172ea2c69a3e566194af59c9c3c8ff104010/aws-sdk-upgrade.patch|git apply -

编译云AWS插件。

mvn package -pl plugins/cloud-aws

Elasticsearch 5.x

Elasticsearch 5正在使用gradle。您可以使用以下命令编译更新的插件:

gradle build -p plugins/repository-s3

插件安装

我们必须安装插件,以便Elasticsearch可以使用它。

在Elasticsearch 2.x(2.3.4)上安装插件

sudo bin/plugin remove cloud-awssudo bin/plugin install file:/{path to elasticsearch}/plugins/cloud-
aws/target/releases/cloud-aws-2.3.4.zip

在Elasticsearch 5.x上安装插件

sudo bin/elasticsearch-plugin remove repository-s3sudo bin/elasticsearch-plugin install file:/plugins/repository-s3/build/distributions/repository-s3–5.0.0-alpha5-SNAPSHOT.zip

组态

通过将以下内容添加到elasticsearch.yml,将Elasticsearch配置为对S3使用V4签名

cloud:    
    aws:        
        s3:            
            signer: "AWS4SignerType"

现在,您应该重新启动Elasticsearch。新配置和已安装的插件将变为活动状态。

使用以下命令,您可以验证已安装和活动的插件。

curl http://127.0.0.1:9200/_cat/plugins?v

使用快照

首先,我们需要在Minio中创建一个新的存储桶,可以在其中放置快照。./mcmb myminio / elasticsearch

创建存储库:

现在,我们将使用Minio作为后端来配置Elasticsearch存储库。

curl -X POST http://127.0.0.1:9200/_snapshot/my_minio_repository — 
data ‘{ 
“type”: “s3”, 
“settings”: { 
“bucket”: “elasticsearch”, 
“region”: “us-east-1”, 
“endpoint”: “http://127.0.0.1:9000",  
“access_key”: “AJBCFEV8M5Q8XIQPRITQ”, 
“secret_key”: “TBPnPHamh6r7ypXACfO4Nxz59PjE+3SanplAZDzq”, 
“protocol”: “http” 
    }
        }’

检索存储库信息

为了确认存储库已成功创建,我们将使用get存储库。

curl -X GET http://127.0.0.1:9200/_snapshot/my_minio_repository?pretty
{ “my_minio_repository” : { 
“type” : “s3”, 
“settings” : { 
“bucket” : “elasticsearch”, 
“endpoint” : “http://127.0.0.1:9000", 
“protocol” : “http”, 
“region” : “us-east-1” 
    } 
    }
}

创建快照

我们将创建快照并等待其完成。

curl -X PUT 
http://127.0.0.1:9200/_snapshot/my_minio_repository/snapshot_1/\?wait_for_completion=true
{“snapshot”:{“snapshot”:”snapshot_1",”version_id”:2030399,”version”:”2.3.3",”indices”:[“minio”],”state”:”SUCCESS”,”start_time”:”2016–07–18T14:58:05.492Z”,”start_time_in_millis”:1468853885492,”end_time”:”2016–07–18T14:58:36.526Z”,”end_time_in_millis”:1468853916526,”duration_in_millis”:31034,”failures”:[],”shards”:{“total”:41,”failed”:0,”successful”:41}}}

验证快照状态

检索快照状态。

curl -X GET http://127.0.0.1:9200/_snapshot/my_minio_repository/snapshot_1/{“snapshots”:[{“snapshot”:”snapshot_1",”version_id”:2030399,”version”:”2.3.3",”indices”:[“minio”],”state”:”SUCCESS”,”start_time”:”2016–07–18T14:58:05.492Z”,”start_time_in_millis”:1468853885492,”end_time”:”2016–07–18T14:58:36.526Z”,”end_time_in_millis”:1468853916526,”duration_in_millis”:31034,”failures”:[],”shards”:{“total”:41,”failed”:0,”successful”:41}}]}

恢复快照

还原现有索引,确保索引已关闭。

curl -X POST http://127.0.0.1:9200/_snapshot/my_minio_repository/snapshot_1/_restore{“accepted”:true}

参考文献:

上一篇 下一篇