Logstashはパイプラインを使用してデータを収集および処理します。 パイプラインの入力プラグインと出力プラグインを構成する必要があります。 ビジネス要件に基づいてフィルタープラグインを構成できます。 入力プラグインと出力プラグインは、入力データソースと出力データソースを構成するために使用され、フィルタープラグインは収集されたデータを前処理するために使用されます。 このトピックでは、Alibaba Cloud Logstashのパイプライン構成ファイルについて説明します。
詳細については、オープンソース Logstashドキュメントの「Configファイルの構造」をご参照ください。
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パイプラインの構成ファイルを追加すると、チェックの失敗を示すエラーメッセージがシステムに表示されます。
プラグインの構成
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のいずれかが無効な場合、イベント処理は失敗します。
ブール値
ssl_enable => true // SSL有効化バイト
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
http://user:paas@example.net などのパスワードが含まれている場合、パスワードは記録または表示されません。 例: my_uri => "http://foo:bar@example.net" // URIパス
my_path => "/tmp/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 { # コメント
// ...
}