すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Logstashを使用したログデータの消費

最終更新日:Sep 10, 2024

Simple Log Serviceでは、Logstashを使用してログデータを消費できます。 Logstash入力プラグインを設定して、Simple log Serviceからログデータを読み取り、KafkaやHadoop分散ファイルシステム (HDFS) などの他のシステムにデータを書き込むことができます。

特徴

  • 分散型の共同使用: 複数のサーバーを設定して、Logstoreのログデータを同時に使用できます。

  • 高性能: Javaコンシューマグループを使用する場合、シングルコアCPUの消費速度は20メガバイト/秒に達する可能性があります。

  • 高い信頼性: シンプルなLog Serviceは、消費チェックポイントを節約します。 このメカニズムは、消費例外が解決された後、最後のチェックポイントからログ消費を再開します。

  • 自動負荷分散: シャードは、コンシューマーグループ内のコンシューマーの数に基づいて自動的に割り当てられます。 コンシューマーがコンシューマーグループに参加または退場すると、シャードは自動的に再割り当てされます。

手順

  1. Logstashをインストールします。

    1. インストールパッケージをダウンロードします。

    2. ダウンロードしたパッケージを指定したディレクトリに解凍します。

  2. Logstash入力プラグインをインストールします。

    1. Logstash入力プラグインをダウンロードします。 プラグインをダウンロードするには、logstash-input-slsをご参照ください。

    2. Logstash入力プラグインをインストールします。

      logstash-plugin install logstash-input-sls
      説明

      インストールの失敗の原因と解決策については、「プラグインのインストールと設定」をご参照ください。

  3. Logstashを起動します。

    logstash -f logstash.conf

    下表に、各パラメーターを説明します。

    パラメーター

    データ型

    必須

    説明

    エンドポイント

    String

    課金されます

    Simple Log Serviceプロジェクトが存在するリージョンのエンドポイント。 詳細については、「エンドポイント」をご参照ください。

    access_id

    String

    課金されます

    コンシューマーグループへのアクセスに使用されるAlibaba CloudアカウントまたはRAMユーザーのAccessKey ID。 詳細については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。

    access_key

    String

    課金されます

    コンシューマーグループへのアクセスに使用されるAlibaba CloudアカウントまたはRAMユーザーのAccessKeyシークレット。 詳細については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。

    project

    String

    課金されます

    Simple Log Serviceプロジェクトの名前。

    logstore

    String

    課金されます

    Simple Log Service Logstoreの名前。

    consumer_group

    String

    課金されます

    消費者グループの名前です。

    consumer_name

    String

    課金されます

    コンシューマーの名前。 名前は、コンシューマグループ内で一意である必要があります。

    位置

    String

    課金されます

    データ消費が開始される位置。 有効な値:

    • begin: Logstoreに書き込まれた最初のログのデータを消費します。

    • end: 現在時刻からデータを消費します。

    • yyyy-MM-dd HH:mm:ss: 指定された時点のデータを消費します。

    checkpoint_second

    数値

    課金されません

    チェックポイントが記録される間隔。 間隔を10秒から60秒の間の値に設定することを推奨します。 最小値: 10。 デフォルト値:30。 単位は秒です。

    include_meta

    Boolean

    課金されません

    ログに、ログソース、時刻、タグ、トピックフィールドなどのメタデータが含まれるかどうかを指定します。 デフォルト値:true

    consumer_name_with_ip

    Boolean

    課金されません

    コンシューマ名にIPアドレスを含めるかどうかを指定します。 デフォルト値:true 分散コラボレーティブ消費を適用する場合は、このパラメーターをtrueに設定する必要があります。

次のコードは、Logstoreからログデータを消費し、そのデータを標準出力 (stdout) に出力するようにLogstashを設定する方法の例を示しています。

重要

プロジェクトコードにAccessKey IDまたはAccessKey secretを保存しないことを推奨します。 そうしないと、AccessKeyペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 ALIBABA_CLOUD_ACCESS_KEY_IDおよびALIBABA_CLOUD_ACCESS_KEY_SECRET環境変数を設定することを推奨します。 詳細については、「環境変数の設定」をご参照ください。

input {
  logservice{
  endpoint => "your project endpoint"
  // Configure environment variables. In this example, the AccessKey ID and AccessKey secret are obtained from environment variables. 
  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 {}
}