Docker の Logstash

Docker No Logstash



Logstash は、さまざまなソースからログ データを収集、処理、転送できるオープンソースのデータ処理パイプラインです。

このチュートリアルでは、基本的な構成を使用して Docker コンテナーで Logstash を実行するプロセスを説明します。

要件:

チュートリアルを開始する前に、次のものが揃っていることを確認してください。







  1. ホスト マシンに Docker がインストールされていること (バージョン 23 以降を推奨)
  2. マシンに Docker Compose がインストールされていること

所定の要件が満たされているので、チュートリアルを続行できます。



Logstash 構成ファイルのセットアップ

Logstash は構成ファイルを使用して、データの取り込み、フィルター処理、および出力への送信方法を定義します。公式ドキュメントを参照できるように、設定できるさまざまなオプションがあります。



この例では、ログ ファイルからデータを取り込み、一致するレコードをフィルタリングして、データをファイルに出力する基本構成に焦点を当てます。





「logstash.conf」というファイルを作成し、次のように構成を追加します。

入力 {
ファイル {
パス => 「/var/log/apache/access.log」

開始位置 => '始まり'

以来db_path => 「/dev/null」

無視_古い => 0
}
}

フィルター {
if [メッセージ] =~ 'エラー' {
グロク {
一致 => { 'メッセージ' => 「%{COMBINEDAPACHELOG}」 }
}
}
}

出力 {
ファイル {
パス => 「/var/log/apache/error_logs.log」
}
}

前のファイルでは、次のように構成が定義されています。

  1. 入力セクション – 入力セクションは、ファイル入力プラグインを使用して、/var/log/apache/access.log にある Apache ログ ファイルを読み取ります。
    • 次に、開始位置を先頭に設定して、Logstash がファイル全体を先頭から読み取ることができるようにします。
    • Becausedb_path – このパラメータを使用すると、値を /dev/null に設定することで Logstash の thinkdb 追跡を無効にすることができます。これにより、Logstash は常にファイルの先頭から読み取るようになります。
    • Ignore_older – このパラメータの値を 0 に設定すると、Logstash がログ ファイルのすべてのエントリを処理できるようになります。
  2. フィルター セクション – フィルター セクションでは、ログ メッセージに ERROR という単語が含まれるかどうかを確認するフィルター パターンを定義します。フィルタ ブロックの条件を調整して、ファイル内のより正確な一致をフィルタリングできます。
    • 条件が満たされる場合、Apache ログを解析するための Logstash の組み込みパターンである COMBINEDAPACHELOG パターンを使用して、grok フィルターを使用して Apache ログ行を解析します。
  3. 出力セクション – このセクションでは、一致するエントリの出力形式を定義できます。
    • この例では、path パラメーターを使用して /var/log/apache/error_logs.log ファイルにそれらを書き込みます。

これにより、基本的な Logstash の動作をデモできる基本的な Logstash 構成が提供されます。

Logstash パイプラインの作成と構成の詳細については、次の提供されているドキュメント リソースを参照してください。

https://www.elastic.co/guide/en/logstash/current/configuration.html

Dockerfileを作成する

Logstash 構成を定義したら、次に進み、コンテナーの実行方法を学習します。 「logstash.conf」ファイルと同じディレクトリ内に、「Dockerfile」という名前の新しいファイルを作成します。

このファイルを編集し、次のようにエントリを追加します。

docker.elastic.co/logstash/logstash:8.9.2 から

logstash.conf /usr/share/logstash/pipeline/logstash.conf をコピーします

指定された例では、バージョン 8.9.2 を使用してベース イメージを公式 Logstash イメージとして定義します。

次に、作成した「logstash.conf」ファイルをイメージ内の /usr/share/logstash/pipeline/logstash.conf にコピーします。

Docker イメージを構築する

次に、Dockerfile と Logstash 構成ファイルが含まれるディレクトリに移動します。次のコマンドを実行してイメージをビルドします。

$ ドッカービルド -t カスタムログスタッシュイメージ 。

Logstash コンテナを実行する

Docker イメージを構築したので、次のように Docker の「run」コマンドを使用して Logstash コンテナーを実行できます。

$ ドッカーラン -d - 名前 logstash-server カスタム logstash-image

これにより、前の手順で構築したイメージを使用して Logstash コンテナーが実行されるはずです。

Logstash コンテナのログを確認する

Logstash が正しく実行されていることを確認するには、次のコマンドを使用してコンテナーのログを確認します。

$ ドッカーログ < コンテナ名 >

出力:

結論

このチュートリアルでは、カスタム構成ファイルを使用して Docker として実行される Logstash サーバーを迅速にセットアップする方法を学びました。イメージパラメータと構成オプションに関するドキュメントを確認することをお勧めします。