Table of Contents
現代のIT環境では、システムヘルス、トラブルシューティングの問題、セキュリティの確保のために、ログを効率的に管理することは重要です。 Dockerコンテナは、柔軟に収集し、効果的に分析するために必要な膨大な量のログデータを生成できます。 Fluentdは、ログ集計を簡素化するオープンソースのデータ収集器で、コンテナ化された環境に最適な選択肢です。
Fluentd とは?
Fluentd は、さまざまなソースからさまざまな宛先にログを収集、処理、出荷できる統合ログレイヤーです。非常に構成可能で、多数のプラグインをサポートし、大量のログデータを最小限のレイテンシで処理できます。その柔軟性は、Docker ベースのインフラストラクチャと統合するのに理想的です。
Docker で Fluentd を設定する
Docker ベースのロギングインフラストラクチャを作成するには、Fluentd をコンテナとしてデプロイします。ログが収集される方法と、送信先を定義する設定ファイルが必要になります。以下は、Fluentd 用の Docker Compose セットアップの基本的な例です。
version: '3'
services:
fluentd:
image: fluent/fluentd:v1.14-1
ports:
- "24224:24224"
- "24224:24224/udp"
volumes:
- ./fluentd/conf:/fluentd/etc
- ./logs:/fluentd/log
environment:
- FLUENTD_ARGS=--no-supervisor -v
集中設定ファイルを作成する
設定ファイルでは、入力ソース、フィルタ、出力先を指定します。 ここには、Docker コンテナからログを収集し、Elasticsearch に送信する簡単な例を示します。
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match **>
@type elasticsearch
host elasticsearch
port 9200
logstash_format true
include_tag_key true
flush_interval 5s
</match>
Dockerコンテナの統合
DockerコンテナからFluentdへログを送信するために、DockerデーモンをログドライバーとしてFluentdを使用するように設定します。これは、Dockerの実行コマンドまたはDocker Composeのログドライバを設定することで行うことができます。
services:
myapp:
image: myapp:latest
logging:
driver: fluentd
options:
fluentd-address: localhost:24224
Docker で Fluentd を使用する利点
- [ 中央にログを生成:] ログを 1 箇所にすべてのコンテナから収集します。
- 柔軟性:]]] 多数の入力および出力プラグインをサポートしています。
- ] スケール性:]] は、大量のログデータを効率的に処理します。
- [拡張性:]]は、カスタムプラグインとフィルタで簡単に拡張できます。
コンテンツ
Fluentd を使用して Docker ベースのロギングインフラストラクチャを実装することで、コンテナ化されたアプリケーションを監視、トラブルシューティング、分析する機能が強化されます。集中型のログコレクターとして Fluentd を設定し、 Docker コンテナを構成することで、ログをそれに送信し、インフラストラクチャで成長できるスケーラブルで柔軟なロギングソリューションを作成します。