通过Elasticsearch发布Minio事件
介绍
Minio服务器支持以下目标AMQP,Elasticsearch,Redis,nats.io,PostgreSQL和Apache Kafka的Amazon S3兼容存储桶事件通知。本博客系列的第2部分介绍了使用Elasticsearch服务器发送存储桶通知。
配置Elasticsearch的步骤
我在笔记本电脑上使用Ubuntu Linux 16.04,最新的Minio服务器二进制文件和Elasticsearch 2.4.0进行了此设置。
注意:Elasticsearch至少需要Java7。建议您使用Oracle JDK。
安装Elasticsearch
$ curl -L -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.0/elasticsearch-2.4.0.tar.gz $ tar -xvf elasticsearch-2.4.0.tar.gz $ cd elasticsearch-2.4.0/bin $ ./elasticsearch [2016-09-09 16:17:24,733][INFO ][node ] [Kirigi] version[2.4.0], pid[4422], build[ce9f0c7/2016-08-29T09:14:17Z] [2016-09-09 16:17:24,734][INFO ][node ] [Kirigi] initializing ... [2016-09-09 16:17:25,632][INFO ][plugins ] [Kirigi] modules [reindex, lang-expression, lang-groovy], plugins [], sites [] [2016-09-09 16:17:25,679][INFO ][env ] [Kirigi] using [1] data paths, mounts [[/ (/dev/sda1)]], net usable_space [3.5gb], net total_space [7gb], spins? [possibly], types [ext4] ... ...
注意:确保已安装curl包装。
配置Minio的步骤
可以从https://minio.io/downloads/下载最新的Minio服务器二进制文件
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio $ chmod +x minio In this case “myphotos” is used as my data directory for Minio server. $ ./minio server myphotos Endpoint: http://10.1.10.150:9000 http://127.0.0.1:9000 AccessKey: 7I6R5G576YI641GS9J9F SecretKey: SuycBIe+O/s5zXxU9w+N4wkXHpBCKa2H6Ptlrc8c Region: us-east-1 ... ...
Minio服务器配置文件的默认位置是〜/ .minio / config.json。如下更新“ config.json”中的Elasticsearch配置块。
重新启动Minio服务器以反映上面所做的配置更改。“ bucketevents”是此示例中Elasticsearch使用的索引。
使用Minio客户端启用存储桶通知
步骤1:下载并安装Minio客户端
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc $ chmod 755 mc
步骤2:添加Minio服务器主机别名信息
为Minio客户端配置指向Minio服务器的访问权和密钥。
$ ./mc config host add myminio http://localhost:9000 7I6R5G576YI641GS9J9F SuycBIe+O/s5zXxU9w+N4wkXHpBCKa2H6Ptlrc8c
第3步:启用存储桶通知
在此示例中,仅当在“ myminio”服务器上的“ images”存储桶中上传或删除JPEG图像时,才启用存储桶事件。这里的ARN值为arn:minio:sqs:us-east-1:1:elasticsearch。要了解有关ARN的更多信息,请遵循AWS ARN文档。
$ ./mc mb myminio/images $ ./mc events add myminio/images arn:minio:sqs:us-east-1:1:elasticsearch --suffix .jpg $ ./mc events list myminio/images arn:minio:sqs:us-east-1:1:elasticsearch s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg”
步骤4:在Elasticsearch上进行测试
打开另一个终端,然后将JPEG图像上载到“ images ”存储桶中。
$ ./mc cp myphoto.jpg myminio/images
您应该看到Elasticsearch已经创建了一个新索引。
$ curl -XGET '127.0.0.1:9200/_cat/indices?v' health status index pri rep docs.count docs.deleted store.size pri.store.size yellow open bucketevents 5 1 1 0 7.8kb 7.8kb
使用curl查看“ bucketevents”索引的内容。
$ curl -XGET '127.0.0.1:9200/bucketevents/_search?pretty=1'
{
"took" : 3,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "bucketevents",
"_type" : "event",
"_id" : "AVcRVOlwe-uNB1tfj6bx",
"_score" : 1.0,
"_source" : {
"Records" : [ {
"eventVersion" : "2.0",
"eventSource" : "aws:s3",
"awsRegion" : "us-east-1",
"eventTime" : "2016-09-09T23:42:39.977Z",
"eventName" : "s3:ObjectCreated:Put",
"userIdentity" : {
"principalId" : "minio"
},
"requestParameters" : {
"sourceIPAddress" : "10.1.10.150:52140"
},
"responseElements" : { },
"s3" : {
"s3SchemaVersion" : "1.0",
"configurationId" : "Config",
"bucket" : {
"name" : "images",
"ownerIdentity" : {
"principalId" : "minio"
},
"arn" : "arn:aws:s3:::images"
},
"object" : {
"key" : "myphoto.jpg",
"size" : 200436,
"sequencer" : "1472CC35E6971AF3"
}
}
} ]
}
} ]
}
}
view rawelasticsearch hosted with ❤ by Git上面的curl输出表明已成功创建带通知内容的Elasticsearch索引。
如有其他问题和意见,请加入我们的Slack聊天室,网址为:http://slack.minio.org.cn/questions