Simple Log Service (SLS) は、Logstash を使用したデータ使用をサポートしています。SLS の Input プラグインを設定して Logstash と統合することで、SLS からデータを取得し、Kafka や HDFS などの他のシステムにデータを書き込むことができます。
機能
分散使用: 複数のサーバーを設定して、単一の Logstore から同時にデータを使用します。
高性能: Java ConsumerGroup の実装に基づき、単一コアの使用速度は圧縮前で 20 MB/s に達します。
高信頼性: 使用の進行状況はサーバーに保存されます。例外が発生した場合、回復後に最後のチェックポイントから使用が自動的に再開されます。
自動ロードバランシング: シャードはコンシューマーの数に基づいて自動的に割り当てられます。コンシューマーが追加または削除されると、負荷は自動的に分散されます。
手順
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-mdLogstash をダウンロードしてインストールします。
sudo yum install logstash
Input プラグインをインストールします。
logstash-input-sls から Input プラグインをダウンロードします。
Input プラグインをインストールします。
/usr/share/logstash/bin/logstash-plugin install logstash-input-sls.zip説明インストールの失敗の可能性とその解決策については、「プラグインのインストールと設定」をご参照ください。
logstashユーザーを作成します。Logstash は root 以外のユーザーとして実行する必要があります。logstashユーザーを作成します。sudo adduser --system --no-create-home --group logstashlogstash ユーザーに権限を設定します。
logstashユーザーが/usr/share/logstash、/etc/logstash、/var/log/logstashなどの Logstash 関連のディレクトリを所有していることを確認します。sudo chown -R logstash:logstash /usr/share/logstash /etc/logstash /var/log/logstashlogstashユーザーが作成されたことを確認します。id logstash出力には
logstashユーザーのユーザー ID (UID) とグループ ID (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次の例は、Logstore からデータを使用し、標準出力にデータを出力するように Logstash を設定する方法を示しています。パラメーターについても説明します。
パラメーターの説明
サンプルコード
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(必須)SLS のプロジェクトのエンドポイント。詳細については、「サービスエンドポイント」をご参照ください。
access_id
string(必須)Alibaba Cloud アカウントの AccessKey ID。AccessKey ID には、使用者グループを管理する権限が必要です。詳細については、「Logstore からデータを使用する権限を付与する」をご参照ください。
access_key
string(必須)Alibaba Cloud アカウントの AccessKey シークレット。AccessKey シークレットには、使用者グループを管理する権限が必要です。詳細については、「Logstore からデータを使用する権限を付与する」をご参照ください。
project
string(必須)SLS プロジェクトの名前。
logstore
string(必須)Logstore の名前。
consumer_group
string(必須)使用者グループの名前。
consumer_name
string(必須)コンシューマーの名前。コンシューマー名は、同じ使用者グループ内で一意である必要があります。
position
string(必須)使用を開始する位置。
begin: Logstore に書き込まれた最初のデータから使用を開始します。
end: 現在の時点から使用を開始します。
yyyy-MM-dd HH:mm:ss: 指定した時点から使用を開始します。
checkpoint_second
number(オプション)チェックポイントが作成される間隔 (秒単位)。値は 10 から 60 までの整数である必要があります。デフォルト値は 30 です。
include_meta
boolean(オプション)データにメタデータを含めるかどうかを指定します。メタデータには、ソース、時間、タグ、トピックが含まれます。デフォルト値は true です。
consumer_name_with_ip
boolean(オプション)コンシューマー名に IP アドレスを含めるかどうかを指定します。デフォルト値は true です。分散使用の場合は、このパラメーターを true に設定する必要があります。