本文档介绍OSS文件发生变更,触发MNS事件通知, 通过logstash-input-oss插件获取OSS变更事件,并通过logstash-output-oss插件将数据同步到OSS Bucket。

前提条件

  • 在阿里云Logstash插件管理页面安装logstash-input-oss和logstash-output-oss插件,详细说明及安装方法请参见logstash-input-oss插件使用说明logstash-output-oss插件使用说明
  • 开通阿里云OSS服务并准备数据,详情请参见OSS官方文档
  • 开通消息服务MNS,并确保与OSS服务在同一区域,详情请参见MNS官方文档
    说明 本示例设置事件通知类型为PostObject、PutObject,即触发Post、Put事件请求,logstash-output-oss插件同步此数据到对端OSS。

操作步骤

  1. 登录OSS管理控制台
  2. 在左侧存储空间列表中,单击目标存储空间名称。
  3. 在该存储空间概览页面中,单击事件通知页签,然后单击创建规则
  4. 创建规则页面,配置事件通知。
    本示例配置的事件通知如下:事件通知配置

    配置参数详情请参见配置事件通知

    说明 指定资源描述目录中不能包含特殊字符,更多事件类型请参见事件通知
  5. 进入消息服务MNS控制台,单击事件通知,查看配置好的规则。
  6. 进入阿里云Logstash的管道管理页面,创建并配置管道。
    本示例使用配置文件管理的方式配置管道,详情请参见配置文件管理。Config配置如下:
    input {
      oss {
        endpoint => "oss-cn-hangzhou-internal.aliyuncs.com"
        bucket => "zl-ossoutoss"
        access_key_id => "LTAIaX42ddd******"
        access_key_secret => "zuyBRUUndddddds3e6i******"
        mns_settings => {
           endpoint => "18185036364****.mns.cn-hangzhou-internal.aliyuncs.com"
           queue => "zl-test"
        }
        codec => json {
          charset => "UTF-8"
        }
      }
    }
    
    output {
      oss {
        endpoint => "http://oss-cn-hangzhou-internal.aliyuncs.com"              
        bucket => "zl-log-output-test"                          
        access_key_id => "LTAIaxxxxx******"                 
        access_key_secret => "zuxxxx8hBpXs3e6i******"         
        prefix => "oss/database"                         
        recover => true                                      
        rotation_strategy => "size_and_time"                  
        time_rotate => 1                                     
        size_rotate => 1000
        temporary_directory => "/ssd/1/ls-cn-0pp1cwec****/logstash/data/22"                            
        encoding => "gzip"                                 
        additional_oss_settings => {
          max_connections_to_oss => 1024                      
          secure_connection_enabled => false                  
        }
    
      }
    }
    注意
  7. 上传新的文件到MNS监控的目录中(第五步创建规则时定义的资源描述)。
  8. 进入目标端OSS Bucket,查看同步的数据。
    查看同步的数据
    注意 OSS插件不是以文档或目录形式进行数据同步,而是按照原文档中的数据一条一条进行读写。根据rotate规则,oss output插件先将数据存储在本地临时文件中,当触达一定的时间或者大小再进行上传,所以不能保证同一个文档的数据保存到同一个文档下,例如可能会出现多个文档的部分数据同步到一个文档中的情况。