本文档介绍通过logstash-output-oss插件,实现批量传送数据到阿里云OSS中。

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

安装logstash-output-oss插件

  1. 进入Logstash实例管理页面
  2. 单击左侧导航栏的插件配置
  3. 系统默认插件列表中,单击logstash-output-oss右侧的安装
    警告 安装logstash-output-oss插件会触发集群重启,请确认后再执行以下步骤。
  4. 操作提示对话框中,认真阅读系统提示,单击确认安装logstash-input-oss插件

    确认后,Logstash实例会进行重启,重启过程中可在任务列表中查看任务进度详情。重启成功后,即可完成logstash-output-oss插件的安装。

    安装成功后,如果不再使用,可单击logstash-output-oss插件右侧的卸载,使用同样的方式进行卸载。
    注意 卸载插件也会触发集群重启,请确认后操作。

使用方式

准备工作

完成以上准备工作后,登录Logstash控制台,创建配置文件。在创建配置文件时,按照以下说明进行Config配置,保存并部署后,即可触发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" => "L00000****"
    "access_key_secret" => "00000dddddpXs3e6im5****"
    "prefix" => "message-%{+YYYY.MM.dd}"
    "recover" => true
    "rotation_strategy" => "size_and_time"
    "time_rotate" => 15
    "size_rotate" => 31457280
    "encoding" => "gzip"
    "additional_oss_settings" => {
      "max_connections_to_oss" => 1024
      "secure_connection_enabled" => false
    }
    codec => json {
      charset => "UTF-8"
    }
  }
}
说明 阿里云Logstash目前只支持在同一VPC下进行数据传输,如果源端数据在公网下,请参考NAT公网数据传输配置,在公网环境下进行数据传输。

参数说明

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之前的临时目录路径定义,默认为/<OSS临时目录>/logstash/oss
rotation_strategy string 文件滚动更新策略。可选值:sizetimesize_and_time(默认)。
size_rotate number 如果文件的大小大于等于size_rotate,OSS将进行文件滚动更新(依赖rotation_strategy)。默认为15分钟。
time_rotate number 如果文件的生存时长大于等于time_rotate,OSS将进行文件滚动更新(依赖rotation_strategy)。默认为31457280 Bytes。
upload_workers_count number 上传线程并发数。
upload_queue_size number 上载队列大小。
encoding string 消在上传文件到OSS之前,支持纯压缩和gzip压缩。可选值:gzipnone(默认)。

临时文件说明

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

临时文件路径示例如下:

/tmp/logstash/oss/eaced620-e972-0136-2a14-02b7449b****/logstash/1/ls.oss.eaced620-e972-0136-2a14-02b7449b****.2018-12-24T14.27.part-0.data
路径 说明
/tmp/logstash/oss temporary_directory指定的OSS临时目录。
eaced620-e972-0136-2a14-02b7449b**** 随机uuid。
logstash/1 OSS对象前缀。
ls.oss 指定OSS输出插件。
2018-12-24T14.27 当前文件创建时间。
part-0 以前缀开头的第n个文件。
.data 输出后缀,如果设置encodinggzip,将会以.gz结尾,其他以.data结尾。