日志服務支持通過Logstash消費數據,您可以通過配置日志服務的Input插件對接Logstash獲取日志服務中的數據并寫入到其他系統中,例如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
是
日志服務Project所在的Endpoint。更多信息,請參見服務接入點。
access_id
string
是
阿里云AccessKey ID,需要具備消費組相關權限。更多信息,請參見指定Logstore的消費權限。
access_key
string
是
阿里云AccessKey Secret,需要具備消費組相關權限。更多信息,請參見指定Logstore的消費權限。
project
string
是
日志服務Project名稱。
logstore
string
是
日志服務Logstore名稱。
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 {}
}