Simple Log Service支援通過Logstash消費資料,您可以通過配置Simple Log Service的Input外掛程式對接Logstash擷取Simple Log Service中的資料並寫入到其他系統中,例如Kafka、HDFS等。
功能特性
分布式協同消費:可配置多台伺服器同時消費某一個Logstore。
高效能:基於Java ConsumerGroup實現,單核消費速度可達20 MB/s(壓縮前)。
高可靠性:消費進度儲存到服務端,異常恢複後會從上一次消費的Checkpoint處自動回復消費。
自動負載平衡:根據消費者數量自動分配Shard,消費者增加或減少後會自動負載平衡。
操作步驟
安裝Logstash。
解壓安裝包到指定目錄。
安裝input外掛程式。
下載input外掛程式。下載地址為logstash-input-sls。
安裝input外掛程式。
logstash-plugin install logstash-input-sls
說明外掛程式安裝失敗原因及解決方案,請參見外掛程式安裝配置。
啟動Logstash。
logstash -f logstash.conf
配置參數如下表所示。
參數
類型
是否必須
說明
endpoint
string
是
Simple Log ServiceProject所在的Endpoint。更多資訊,請參見服務存取點。
access_id
string
是
阿里雲AccessKey ID,需要具備消費組相關許可權。更多資訊,請參見指定Logstore的消費許可權。
access_key
string
是
阿里雲AccessKey Secret,需要具備消費組相關許可權。更多資訊,請參見指定Logstore的消費許可權。
project
string
是
Simple Log ServiceProject名稱。
logstore
string
是
Simple Log ServiceLogstore名稱。
consumer_group
string
是
消費組名稱。
consumer_name
string
是
消費者名稱,同一個消費組中的消費者名稱不能重複。
position
string
是
消費開始位置。
begin:從Logstore寫入的第一條資料開始消費。
end:從目前時間點開始消費。
yyyy-MM-dd HH:mm:ss:從指定時間點開始消費。
checkpoint_second
number
否
每隔幾秒Checkpoint一次,建議10秒~60秒,不能低於10秒,預設為30秒。
include_meta
boolean
否
資料是否包含Meta,Meta包括source、time、tag、topic,預設為true。
consumer_name_with_ip
boolean
否
消費者名稱是否包含IP地址,預設為true,分布式協同消費下必須設定為true。
樣本
配置Logstash消費某一個Logstore並將資料列印到標準輸出,樣本如下:
強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。請配置環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具體操作,請參見配置環境變數。
input {
logservice{
endpoint => "your project endpoint"
// 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
access_id => process.env.ALIBABA_CLOUD_ACCESS_KEY_ID
access_key => process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET
project => "your project name"
logstore => "your logstore name"
consumer_group => "consumer group name"
consumer_name => "consumer name"
position => "end"
checkpoint_second => 30
include_meta => true
consumer_name_with_ip => true
}
}
output {
stdout {}
}