【ELKで教える】Logstashのコンセプトとアーキテクチャ

Logstash は、データの処理、変換、転送のためのオープンソース ツールです。さまざまなソース (ファイル、データベース、MQ、Web サービスなど) からさまざまなターゲット (Elasticsearch、Redis、Kafka、MySQL など) へのデータを収集、変換、出力するための複数の入力、出力、およびフィルターをサポートします。 。

Logstash のアーキテクチャは、入力プラグイン、フィルター、出力プラグインの 3 つの主要コンポーネントで構成されています。入力プラグインはデータ ソースからデータを収集する役割を果たし、フィルターはデータを処理、変換、クリーンアップすることができ、出力プラグインは処理されたデータをターゲット システムに送信します。以下は、単純な Logstash アーキテクチャ図です。

+-------------------+
|     Data Source   |
+-------------------+
          |
          |
          v
+-------------------+
|   Logstash Input   |
|      Plugin       |
+-------------------+
          |
          |
          v
+-------------------+
|   Logstash Filter  |
|      Plugin       |
+-------------------+
          |
          |
          v
+-------------------+
|  Logstash Output  |
|      Plugin       |
+-------------------+
          |
          |
          v
+-------------------+
|    Target System  |
+-------------------+

以下は、Logstash を使用してファイルからデータを読み取り、フィルター処理し、コンソールに出力する方法を示す簡単な Logstash 実装例です。

  1. logstash.conf次の内容を含む config という名前の構成ファイルを作成します。
input {
  file {
    path => "/path/to/your/log/file.log"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  stdout {
    codec => rubydebug
  }
}

この設定ファイルは、ファイル入力プラグイン、grok フィルター プラグイン、およびコンソール出力プラグインを指定します。/path/to/your/log/file.logファイルからデータを読み取り、grok フィルターを使用してログ データを Apache ログ形式に解析し、処理されたデータをコンソールに出力します

  1. Logstash を起動し、構成ファイルを指定します。
bin/logstash -f logstash.conf

これにより、Logstash が起動し、logstash.conf構成ファイルがロードされます。

  1. コンソールで出力を表示します。
{
       "host" => "your-hostname",
   "@version" => "1",
   "@timestamp" => "2022-01-01T00:00:00.000Z",
       "path" => "/path/to/your/log/file.log",
       "message" => "127.0.0.1 - - [01/Jan/2022:00:00:00 +0000] \"GET /index.html HTTP/1.1\" 200 1234",
       "clientip" => "127.0.0.1",
       "ident" => "-",
       "auth" => "-",
       "timestamp" => "01/Jan/2022:00:00:00 +0000",
       "verb" => "GET",
       "request" => "/index.html",
       "httpversion" => "1.1",
       "response" => "200",
       "bytes" => "1234"
}

この出力には、解析された Apache ログ データが含まれており、各フィールドの値が正しく識別され、分離されていることがわかります。

Logstash は、データ処理、変換、送信のためのオープン ソース ツールであり、そのアーキテクチャには、入力プラグイン、フィルター、出力プラグインという 3 つの主要コンポーネントが含まれています。入力プラグインはデータ ソースからデータを収集する役割を果たし、フィルターはデータを処理、変換、クリーンアップすることができ、出力プラグインは処理されたデータをターゲット システムに送信します。

Logstash のワークフローは次のとおりです。

  1. 入力プラグインは、ファイル、データベース、MQ、Web サービスなどからのデータの読み取りなど、データ ソースからデータを収集します。

  2. フィルターは、ログ データの解析、フィールドの置換、不要なデータのフィルターなど、データの処理、変換、クリーンアップを行います。

  3. 出力プラグインは、処理されたデータを Elasticsearch、Redis、Kafka、MySQL などのターゲット システムに送信します。

Logstash は、次のシナリオでよく使用されます。

  • ログの処理と分析: Logstash は、さまざまなアプリケーションやシステムによって生成されたログ データを収集、分析、フィルター処理することができ、ログの監視、レポート分析、トラブルシューティングなどに使用できます。

  • データ収集と ETL: Logstash は、さまざまなデータ ソースからデータを収集し、変換してクリーンアップすることができ、データ ウェアハウス、データ分析、BI などに使用できます。

  • データ パイプラインとストリーム処理: Logstash は、あるシステムから別のシステムにデータを転送でき、リアルタイム ストリーミングとバッチ処理をサポートします。

Logstash の概念とアーキテクチャに関する文献へのリンクをいくつか示します。

おすすめ

転載: blog.csdn.net/feng1790291543/article/details/132102626