通过logstash-output-oss插件,您可以将数据批量传送到阿里云对象存储服务OSS(Object Storage Service)中。本文介绍如何使用logstash-output-oss插件。
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
}
codec => json {
charset => "UTF-8"
}
}
}
阿里云Logstash目前只支持在同一专有网络下进行数据传输,如果源端数据在公网下,请参见配置NAT公网数据传输,在公网环境下进行数据传输。
logstash-output-oss插件的具体应用,请参见基于Logstash迁移OSS数据。
参数说明
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客户端配置。可选值:
|
temporary_directory | string | 是 | 数据上传到OSS之前的临时目录路径定义,必须设置为 |
rotation_strategy | string | 否 | 文件滚动更新策略。可选值:size、time、size_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压缩。可选值:gzip、none(默认)。 |
临时文件说明
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 | 临时文件的后缀。如果设置 |