通過logstash-output-oss外掛程式,您可以將資料批量傳送到阿里雲Object Storage Service服務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外掛程式支援的參數如下。
參數 | 類型 | 是否必選 | 說明 |
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 | 臨時檔案的尾碼。如果設定 |