将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}参考文献: