Simple Log Service支援通過Logstash消費資料,您可以通過配置Simple Log Service的Input外掛程式對接Logstash擷取Simple Log Service中的資料並寫入到其他系統中,例如Kafka、HDFS等。
功能特性
分布式協同消費:可配置多台伺服器同時消費某一個LogStore。
高效能:基於Java ConsumerGroup實現,單核消費速度可達20 MB/s(壓縮前)。
高可靠性:消費進度儲存到服務端,異常恢複後會從上一次消費的Checkpoint處自動回復消費。
自動負載平衡:根據消費者數量自動分配Shard,消費者增加或減少後會自動負載平衡。
操作步驟
不同系統的Logstash安裝包下載連結:Logstash
本文以Linux系統為例:
安裝Logstash。詳情請參見Logstash。
下載並安裝公用簽名密鑰。
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch在
/etc/yum.repos.d/目錄下,建立.repo尾碼檔案,例如建立logstash.repo檔案,輸入以下內容:[logstash-9.x] name=Elastic repository for 9.x packages baseurl=https://artifacts.elastic.co/packages/9.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md下載安裝Logstash。
sudo yum install logstash
安裝input外掛程式。
下載input外掛程式。下載地址為logstash-input-sls。
安裝input外掛程式。
/usr/share/logstash/bin/logstash-plugin install logstash-input-sls.zip說明外掛程式安裝失敗原因及解決方案,請參見外掛程式安裝配置。
建立
logstash使用者,Logstash必須以非超級使用者(root)運行。建立
logstash使用者。sudo adduser --system --no-create-home --group logstash設定logstash使用者權限。確保 Logstash 相關目錄(如
/usr/share/logstash、/etc/logstash和/var/log/logstash)的所有權歸logstash使用者。sudo chown -R logstash:logstash /usr/share/logstash /etc/logstash /var/log/logstash驗證
logstash使用者是否建立成功。id logstash輸出應顯示
logstash使用者的 UID 和 GID,表示建立成功。
以
logstash使用者啟動Logstash。在
/etc/logstash目錄下,建立.conf尾碼檔案,本文以該目錄下源檔案logstash-sample.conf為例。在
logstash-sample.conf檔案中輸入範例程式碼,以logstash使用者啟動Logstash。sudo -u logstash /usr/share/logstash/bin/logstash -f /etc/logstash/logstash-sample.conf配置Logstash消費某一個LogStore並將資料列印到標準輸出,樣本和參數說明如下:
參數說明
範例程式碼
input { logservice{ endpoint => "your project endpoint" access_id => "your_accesskey_id" access_key => "your_accesskey_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 {} }endpoint
string(必選)Log ServiceProject所在的Endpoint。更多資訊,請參見服務存取點。
access_id
string(必選)阿里雲AccessKey ID,需要具備消費組相關許可權。更多資訊,請參見指定LogStore的消費許可權。
access_key
string(必選)阿里雲AccessKey Secret,需要具備消費組相關許可權。更多資訊,請參見指定LogStore的消費許可權。
project
string(必選)Log ServiceProject名稱。
logstore
string(必選)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。