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

Elasticsearch:Logstash構成ファイル

最終更新日:Jan 11, 2025

Logstashはパイプラインを使用してデータを収集および処理します。 パイプラインの入力プラグインと出力プラグインを構成する必要があります。 ビジネス要件に基づいてフィルタープラグインを構成できます。 入力プラグインと出力プラグインは、入力データソースと出力データソースを構成するために使用され、フィルタープラグインは収集されたデータを前処理するために使用されます。 このトピックでは、Alibaba Cloud Logstashのパイプライン構成ファイルについて説明します。

詳細については、オープンソース Logstashドキュメントの「Configファイルの構造」をご参照ください。

Logstash構成ファイルを使用して、データ収集と処理のためのパイプラインを構成できます。 詳細については、「構成ファイルを使用したパイプラインの管理」をご参照ください。

構成ファイルの構造

Logstashパイプライン構成ファイルを使用すると、各タイプのプラグインを個別の部分で構成できます。
input {
  // ... 入力設定
}

filter {
  // ... フィルター設定
}

output {
  // ... 出力設定
}

各パーツには、1つ以上のプラグインを含めることができます。 複数のフィルタープラグインを指定した場合、Logstashは構成ファイルに表示される順序でプラグインを適用します。

重要
  • 構成ファイルに last_run_metadata_path に類似したパラメーターが含まれている場合は、このパラメーターをAlibaba Cloud Logstashのファイルパスに設定する必要があります。 /ssd/1/<Logstash クラスタ ID>/logstash/data/ 形式のパスがバックエンドで提供され、テストに使用できます。 システムはこのパス内のデータを削除しません。 このパスを使用する場合は、ディスクに十分な記憶領域があることを確認してください。 パスを指定すると、Logstashはパスにファイルを自動的に生成しますが、ファイル内のデータを表示することはできません。
  • セキュリティ上の理由から、パイプラインを構成するときにJDBCドライバーを指定する場合は、allowLoadLocalInfile=false&autoDeserialize=falsejdbc_connection_string パラメーターの末尾に jdbc_connection_string => "jdbc:mysql://xxx.drds.aliyuncs.com:3306/<Database name>?allowLoadLocalInfile=false&autoDeserialize=false" を追加する必要があります(例:)。 そうしないと、Logstashパイプラインの構成ファイルを追加すると、チェックの失敗を示すエラーメッセージがシステムに表示されます。

プラグインの構成

プラグインの構成は、プラグイン名とプラグインプロパティの集合で構成されます。 次の構成では、入力部分で2つのbeatsプラグインが定義されており、各プラグインには port プロパティと host プロパティが含まれています。
input {
  beats {
    port => 8000 // ポート番号
    host => "118.11.xx.xx" // ホストアドレス
  }

  beats {
    port => 8001 // ポート番号
    host => "192.168.xx.xx" // ホストアドレス
  }
}

サポートされるプロパティは、プラグインの種類によって異なります。 詳細については、「入力プラグイン」「出力プラグイン」「フィルタープラグイン」、および「コーデックプラグイン」をご参照ください。

値の型

プラグインを構成するときは、次の型の値を設定できます。

配列

この型は推奨されません。 文字列などの標準型を使用することをお勧めします。 型チェックを容易にするために、:list => true プロパティを定義できます。 この型は、型チェックを必要としないハッシュテーブルまたは混合型のリストを処理する場合に使用します。 例:
users => [ {id => 1, name => bob}, {id => 2, name => jane} ] // ユーザーリスト

リスト

リスト自体は型ではありませんが、その属性は型の特性を備えています。 型チェックのために複数の値を入力できます。 パラメーターを宣言するときに :list => true を指定すると、プラグインはリストチェックを有効にします。 例:
path => [ "/var/log/messages", "/var/log/*.log" ] // パスリスト
uris => [ "http://elastic.co", "http://example.net" ] // URIリスト

この例では、path は2つの文字列を含むリストとして構成されています。 uris はURLのリストとして構成されています。 URLのいずれかが無効な場合、イベント処理は失敗します。

ブール値

ブール型の値は、true または false である必要があります。 値は引用符で囲まないでください。 例:
ssl_enable => true // SSL有効化

バイト

バイト型のフィールドは、有効なバイト数を表す文字列フィールドです。 これは、プラグインオプションで特定のサイズを宣言する便利な方法です。 バイト型は、10進数(k M G T P E Z Y)と2進数(Ki Mi Gi Ti Pi Ei Zi Yi)をサポートしています。 10進数の単位は基数1000で、2進数の単位は基数1024です。 フィールドは大文字と小文字を区別せず、値と単位の間にスペースを入れることができます。 単位が指定されていない場合、整数文字列はバイト数を示します。 例:
 my_bytes => "1113"   // 1113 バイト
 my_bytes => "10MiB"  // 10485760 バイト
 my_bytes => "100kib" // 102400 バイト
 my_bytes => "180 mb" // 180000000 バイト

コーデック

コーデックは、エンコードまたはデコードされるデータの型です。 入力プラグインと出力プラグインの両方で使用できます。 入力コーデックは、データが入力プラグインに入る前にデータをデコードします。 出力コーデックは、データが出力プラグインから出る前にデータをエンコードします。 入力コーデックまたは出力コーデックを使用する場合、Logstashパイプラインのフィルタープラグインを指定する必要はありません。

使用可能なコーデックの詳細については、「コーデックプラグイン」をご参照ください。 例:
codec => "json" // JSONコーデック

ハッシュ

ハッシュ型の値は、"field1" => "value1" などのキーと値のペアの集合です。

重要 複数のキーと値のペアは、コンマ(,)ではなくスペースで区切ります。
例:
match => {
  "field1" => "value1" // フィールド1の値
  "field2" => "value2" // フィールド2の値
  // ...
}
// キーと値のペアを1行で指定します。 キーと値のペアは、コンマ(,)ではなくスペースで区切ります。
match => { "field1" => "value1" "field2" => "value2" } // 1行での指定

数値

数値型の値は、浮動小数点数または整数である必要があります。 例:
port => 33 // ポート番号

パスワード

パスワードは、記録または表示されない単一値の文字列です。 例:
my_password => "password" // パスワード

URI

URIは、完全なURLからfoobarなどの単純な識別子まで多岐にわたります。 URIに http://user:paas@example.net などのパスワードが含まれている場合、パスワードは記録または表示されません。 例:
 my_uri => "http://foo:bar@example.net" // URI

パス

パスは、オペレーティングシステムの有効なパスを表す文字列です。 例:
my_path => "/tmp/logstash" // パス

文字列

文字列は、二重引用符(")または単一引用符(')で囲まれた単一の文字シーケンスである必要があります。

エスケープシーケンス

デフォルトでは、Logstashはエスケープシーケンスを有効にしていません。 引用符で囲まれた文字列でエスケープシーケンスを使用する場合は、config.support_escapes: true // エスケープシーケンスをサポートするかどうかlogstash.yml
エスケープ文字説明ASCII 値 (10 進数)
\rキャリッジリターン013
\n改行010
\tタブ009
\\バックスラッシュ092
\"二重引用符034
\'単一引用符039
を追加します。 次に、引用符で囲まれた文字列(倍精度と単精度)は、次の表に基づいて変換されます。
例:
name => 'It\'s a beautiful day' // エスケープシーケンスを含む文字列

コメント

コメントはシャープ記号(#)で始まり、行の先頭にある必要はありません。 例:
# コメント

input { # コメント
  // ...
}