天天看點

使用Logstash将日志導入OSS前言安裝配置及運作參考資料

前言

logstash

是開源的伺服器端資料處理管道,能夠同時從多個來源采集資料,轉換資料,然後将資料發送到您最喜歡的 “存儲庫” 中。

使用Logstash将日志導入OSS前言安裝配置及運作參考資料

目前logstash已經支援了很多輸入和輸出插件,本文主要介紹如何使用logstash output oss插件将日志導入OSS。

安裝

目前logstash output oss插件可以在

RubyGems.org

裡面找到,并且logstash使用RubyGems.org作為它的插件倉庫,是以我們可以直接進入到logstash的安裝目錄,執行如下指令進行安裝

./bin/logstash-plugin install logstash-output-oss           

将會産生如下輸出

Validating logstash-output-oss
Installing logstash-output-oss
      com.aliyun.oss:aliyun-sdk-oss:3.4.0:compile
Installation successful           

我們現在可以檢視剛才安裝的logstash output oss插件

[user@host logstash-6.5.3]# bin/logstash-plugin list --verbose logstash-output-oss
logstash-output-oss (0.1.1)           

配置及運作

logstash output oss插件的相關配置項的解釋可以在

這裡

找到,需要注意的是,endpoint/bucket/access_key_id/access_key_secret都是必填項,其他的都是可選項。

下面是一個示例,用來将寫入/etc/logstash-6.5.3/sample.data中事件,導入到OSS裡面。

input {
  file {
    path => "/etc/logstash-6.5.3/sample.data"
    codec => json {
      charset => "UTF-8"
    }
  }
}

output {
  oss {
    "endpoint" => "oss-cn-zhangjiakou-internal.aliyuncs.com"
    "bucket" => "Your bucket"
    "prefix" => "logstash/%{index}"
    "recover" => true
    "access_key_id" => "Your access key id"
    "access_key_secret" => "Your access secret key"
    "rotation_strategy" => "size_and_time"
    "time_rotate" => 2
    codec => json_lines {
      charset => "UTF-8"
    }
  }
}           

其中,我們生成的event腳本是:

while [[ 1 ]]
do
    let index=$RANDOM%10
    echo "{\"index\": $index, \"message\": \"Hello, world\"}" >> sample.data
done           

我們配置的rotata的政策是size_and_time,基于時間和大小,其中配置了時間是每兩分鐘(time_rotate),大小采用的是預設值(在代碼裡面定義,30MB)。

在這裡注意一下配置項中的prefix(logstash/%{index})字段,這個字段支援string interpolation,是以它會用event中相同的字段進行替換(如果沒有則不替換)。

最終,我們可以通過控制台來檢視生成的檔案:

使用Logstash将日志導入OSS前言安裝配置及運作參考資料
使用Logstash将日志導入OSS前言安裝配置及運作參考資料

參考資料

https://rubygems.org/gems/logstash-output-oss https://github.com/aliyun/logstash-output-oss https://www.elastic.co/guide/en/logstash/current/index.html