全部產品
Search
文件中心

Simple Log Service:Logstash消費

更新時間:Jan 06, 2026

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系統為例:

  1. 安裝Logstash。詳情請參見Logstash

    1. 下載並安裝公用簽名密鑰。

      sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    2. /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
    3. 下載安裝Logstash。

      sudo yum install logstash
  2. 安裝input外掛程式。

    1. 下載input外掛程式。下載地址為logstash-input-sls

    2. 安裝input外掛程式。

      /usr/share/logstash/bin/logstash-plugin install logstash-input-sls.zip
      說明

      外掛程式安裝失敗原因及解決方案,請參見外掛程式安裝配置

  3. 建立logstash使用者,Logstash必須以非超級使用者(root)運行。

    1. 建立logstash使用者。

      sudo adduser --system --no-create-home --group logstash
    2. 設定logstash使用者權限。確保 Logstash 相關目錄(如 /usr/share/logstash/etc/logstash 和 /var/log/logstash)的所有權歸 logstash 使用者。

      sudo chown -R logstash:logstash /usr/share/logstash /etc/logstash /var/log/logstash
    3. 驗證logstash使用者是否建立成功。

      id logstash

      輸出應顯示 logstash 使用者的 UID 和 GID,表示建立成功。

      image

  4. logstash使用者啟動Logstash。

    1. /etc/logstash目錄下,建立.conf尾碼檔案,本文以該目錄下源檔案logstash-sample.conf 為例。

    2. 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 {}
      }

      endpointstring(必選)

      Log ServiceProject所在的Endpoint。更多資訊,請參見服務存取點

      access_idstring(必選)

      阿里雲AccessKey ID,需要具備消費組相關許可權。更多資訊,請參見指定LogStore的消費許可權

      access_keystring(必選)

      阿里雲AccessKey Secret,需要具備消費組相關許可權。更多資訊,請參見指定LogStore的消費許可權

      projectstring(必選)

      Log ServiceProject名稱。

      logstorestring(必選)

      Log ServiceLogStore名稱。

      consumer_groupstring(必選)

      消費組名稱。

      consumer_namestring(必選)

      消費者名稱,同一個消費組中的消費者名稱不能重複。

      positionstring(必選)

      消費開始位置。

      • begin:從LogStore寫入的第一條資料開始消費。

      • end:從目前時間點開始消費。

      • yyyy-MM-dd HH:mm:ss:從指定時間點開始消費。

      checkpoint_secondnumber(可選)

      每隔幾秒Checkpoint一次,建議10秒~60秒,不能低於10秒,預設為30秒。

      include_metaboolean(可選)

      資料是否包含Meta,Meta包括source、time、tag、topic,預設為true。

      consumer_name_with_ipboolean(可選)

      消費者名稱是否包含IP地址,預設為true,分布式協同消費下必須設定為true。