minio配置监听对象操作
本文档适用于minio2021.3.17版本
有时我们需要查看minio中对象操作的日志,比如像监听minio某一个桶中的删除事件,就需要配置监听。minio支持将监听的结果输出到es、pg、amq等等,下面介绍一下将minio对象操作监听结果输出到es与pg。
其他参考:https://blog.csdn.net/weixin_44965213/article/details/120043666
1、监听发送到postgreSQL
1.1、配置使用mc
mc(minio client)是操作minio的重要命令,可以通过mc命令对minio进行创建删除对象等很多操作。在看本篇文章之前建议了解一下mc是如何安装使用的。
1.2、开启监听minio
(1)首先配置一个postgreSQL到mc当中
命令 ./mc admin config set miniowt notify_postgres:1 connection_string="host=localhost port=8888 dbname=db1 user=postgres password=123456 sslmode=disable" table="bucketevents" format="access"
这个命令比较长,但主要的结构比较清晰:
./mc admin config set miniowt notify_postgres:1 connection_string="xxx=xxx" table="xxx" format="access"
输入命令后会提示设置成功并提示重启,重启minio就可以了。
命令执行完毕之后再看db1这个数据库,发现minio client再这个库里面新建了一个表用来保存监听记录。
(2)配置监听写入到这个表中
命令 mc event add miniowt/test-bucket-wt arn:minio:sqs::1:postgresql
这条命令表示监听miniowt的test-bucket-wt桶的所有对于对象的操作(add、delete、get),arn:minio:sqs::1:postgresql
表示将监听结果发送到id为1的postgresql配置当中(这个就是我们上一步配置的数据库连接)
我们往test-bucket-wt桶中上传一个文件,然后删除,就会在表中得到一条上传记录和一条删除记录:
(3)只监听感兴趣的对象操作
命令 mc event add miniowt/test-bucket-wt arn:minio:sqs::1:postgresql
可以配置一些条件来过滤事件,如下:
mc event add miniowt/test-bucket-wt arn:minio:sqs::1:postgresql --event delete --suffix .zip
上面命令中添加了–event delete表示只过滤删除对象事件,–suffix .zip表示只过滤以.zip为后缀的对象文件。那这条命令的意思就是:监听test-bucket-wt桶中.zip对象文件的删除操作。更多参数信息可以查看minio官方文档,这里不一一列举了。
2、监听发送到elasticsearch
2.1、配置使用mc
mc(minio client)是操作minio的重要命令,可以通过mc命令对minio进行创建删除对象等很多操作。在看本篇文章之前建议了解一下mc是如何安装使用的。
2.2、开启监听minio
(1)首先配置一个es到mc当中
命令 ./mc admin config set miniowt notify_elasticsearch:1 url="http://elastic:espassword@1.2.3.4:9200" index="minio_event" format="access"
这个命令的结构如下图所示,实际配置时根据你自己的es连接信息替换掉命令中的es的连接信息:
输入命令后根据提示进行重启minio,然后到配置的es中去查看,可以发现mc已经将对应的索引库创建出来了:
(2)配置监听写入到这个索引库中
命令 ./mc event add miniowt/test-bucket-wt arn:minio:sqs::1:elasticsearch --event delete
这个命令的意思是监听test-bucket-wt桶的删除对象文件事件,并将监听信息写入id为1的es中,这个id为1的es就是我们上面配的 notify_elasticsearch:1
。当然也可以不加 --event delete
参数,这样就是监听test-bucket-wt桶的所有对于对象的操作(add、delete、get)了。
这里也可以通过添加 --suffix .zip
表示只过滤监听以.zip为后缀的对象文件,更多过滤的参数信息可以查看minio官方文档。
我们往test-bucket-wt桶中上传一个文件,然后删除,就会在索引库中得到一条删除记录:
(3)可以查看已经存的监听,也可以删除
如果你想查看已存在的监听,可以使用命令:
./mc event list miniowt/test-bucket-wt
这条命令是查看关于test-bucket-wt桶的所有监听。
你想根据规则过滤也是可以的,在命令后面输入更多的参数就可以过滤出更匹配的监听,如下:
./mc event list miniowt/test-bucket-wt arn:minio:sqs::1:elasticsearch
这条命令是查看test-bucket-wt桶的所有id为1的es的监听。
至于删除命令,看下面例子:
./mc event remove miniowt/test-bucket-wt arn:minio:sqs::1:postgresql