通过logstash-output-oss插件,您可以将数据批量传送到阿里云对象存储服务OSS(Object Storage Service)中。

说明 logstash-output-oss是阿里云维护的开源插件,详情请参见logstash-output-oss

前提条件

您已完成以下操作:

  • 安装logstash-output-oss插件。

    具体操作步骤请参见安装logstash-output-oss插件

  • 开通阿里云OSS服务。

    具体操作步骤请参见开通阿里云OSS服务

  • 创建可读写的OSS Bucket,并且获取拥有该Bucket写权限的Accesskey ID和Accesskey Secret。

    具体操作步骤请参见创建可读写的OSS Bucket

  • 准备输入数据源。

    输入数据源可以为input支持的所有输入源插件中的数据,详情请参见input插件

使用logstash-output-oss插件

满足以上前提条件后,您可以通过配置文件管理管道的方式创建管道任务。在创建管道任务时,按照以下说明配置Pipeline参数,保存并部署后,即可触发阿里云Logstash向OSS传送数据。

以将Beats采集文件中的数据传送到OSS为例。
input {
  beats {
    port => "8044"
    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/<Logstash实例ID>/logstash/data/22"                            
    encoding => "gzip"                                 
    additional_oss_settings => {
      max_connections_to_oss => 1024                      
      secure_connection_enabled => false                  
    }
  }
}
说明

参数说明

logstash-output-oss插件支持的参数如下。
参数 类型 是否必选 说明
endpoint string OSS对外服务的访问域名,详情请参见访问域名和数据中心
bucket string OSS的Bucket名称。
access_key_id string 拥有对应Bucket写权限的Accesskey ID。
access_key_secret string 拥有对应Bucket写权限的Accesskey Secret。
prefix string 指定文件名前缀,不指定默认为空。
警告 此选项支持字符串,因此可能会创建很多临时本地文件。
recover Boolean 程序出现异常退出时,保存在本地的数据是否可以继续上传。默认为true。
additional_oss_settings hash 附加的OSS客户端配置。可选值:
  • server_side_encryption_algorithm:服务端加密方式,只支持AES256。
  • secure_connection_enabled:是否开启https,默认false。
  • max_connections_to_oss:最大连接数,默认1024。
temporary_directory string 数据上传到OSS之前的临时目录路径定义,必须设置为/ssd/1/<Logstash实例ID>/logstash/data/。任务结束后,一般会在秒级被删除。
rotation_strategy string 文件滚动更新策略。可选值:sizetimesize_and_time(默认)。
size_rotate number 如果文件的大小大于等于size_rotate,OSS将进行文件滚动更新(依赖rotation_strategy)。默认为31457280 Bytes。
time_rotate number 如果文件的生存时长大于等于time_rotate,OSS将进行文件滚动更新(依赖rotation_strategy)。默认为15分钟。
upload_workers_count number 上传线程并发数。
upload_queue_size number 上载队列大小。
encoding string 消息在上传文件到OSS之前,支持纯压缩和gzip压缩。可选值:gzipnone(默认)。

临时文件说明

logstash-output-oss在传送数据到OSS时,会在Logstash本地创建一个临时文件。数据临时存储在该文件下,logstash-output-oss插件定期推送数据到OSS。可通过设置temporary_directory参数,设置该临时文件的地址。如果您对输出数据保存的路径有要求,可以设置该临时文件路径。

临时文件路径示例如下。

/ssd/1/<Logstash实例ID>/logstash/data/eaced620-e972-0136-2a14-02b7449b****/logstash/1/ls.oss.eaced620-e972-0136-2a14-02b7449b****.2018-12-24T14.27.part-0.data
路径 说明
/ssd/1/<Logstash实例ID>/logstash/data/ temporary_directory指定的临时目录。
eaced620-e972-0136-2a14-02b7449b**** 随机UUID。
logstash/1 表示OSS对象前缀。
ls.oss 表示临时文件由logstash-output-oss插件生成。
2018-12-24T14.27 临时文件创建的时间。
part-0 临时文件的前缀。
.data 临时文件的后缀名。如果设置encodinggzip,将会以.gz结尾,其他以.data结尾。