Fluentd (EFK想定)
- docker公式イメージを使います
- elasticsearchのプラグインが必要なので、
公式イメージにプラグイン(
fluent-plugin-elasticsearch
)を入れたコンテナを作成します。 fluentdはrubyなのでgemというパッケージシステムでインストールです。 - ここでは設定ファイルfluent.confもコンテナ内に入れて(COPYして)います
- 全コンテナは仮想ネットワーク
log
に接続する想定です。 start.shスクリプトは、もしlog
ネットワークがないようなら作成します
操作
- コンテナイメージの作成
cd appendix/logaggr/fluentd-efk/
cd docker
sh build.sh
- コンテナの起動
cd appendix/logaggr/fluentd-efk/
sh scripts/start.sh
- コンテナの停止
cd appendix/logaggr/fluentd-efk/
sh scripts/stop.sh
ファイル群の説明
appendix/logaggr/fluentd-efk/docker/Dockerfile
appendix/logaggr/fluentd-efk/docker/build.sh
appendix/logaggr/fluentd-efk/docker/files/fluent.conf
appendix/logaggr/fluentd-efk/scripts/start.sh
appendix/logaggr/fluentd-efk/scripts/stop.sh
- docker/Dockerfile
- docker/build.sh … docker build のスクリプト
- docker/files/fluent.conf … fluetndの設定ファイル
- scripts/start.sh … コンテナの起動
- scripts/stop.sh … コンテナの停止
Dockerfile
docker公式イメージに、
プラグイン(fluent-plugin-elasticsearch
)を入れたコンテナを作成しています。
fluentdはrubyなのでgemというパッケージシステムでインストールします。
その後、設定ファイルをコピーし、実行ユーザを fluent へ変更しています。
FROM fluent/fluentd:v1.14-debian-1
USER root
RUN gem install fluent-plugin-elasticsearch --no-document -- version 5.1.4 && \
gem install fluent-plugin-rewrite-tag-filter
COPY files/fluent.conf /fluentd/etc/fluent.conf
USER fluent
コンテナの生成
docker build -t fluentd-efk -f Dockerfile .
コンテナの起動
コンテナを起動する呪文は以下のとおりで、ポートを3つ開けています
docker run -d \
--network=log \
--name=fluentd-efk \
-p 24224:24224 \
-p 24220:24220 \
-p 24224:24224/udp \
fluentd-efk
備考
- 上記の説明は docker 内臓の fluent へ送信する仕組みを使う前提です。 docker ではなく、ホスト側にはtd-agentを入れてください
fluentd ファミリー
トレジャーデータ社が製作したものです
- fluentd
- サーバもクライアントも fluentd を使います
- コミュニティバージョンという位置づけ(なの?)
- td-agent (== fluentd)
- td-agent は fluentd と同じものですが、トレジャーデータ社が配布している版
- embulk
- バッチ処理むけ fluentd
- fluent-bit
- 組み込み機器を想定して、重たい Ruby ではなくC言語で書き直したもの
- それなら最初からC言語で書けばいいのに
- いろいろ反省したらしい
- 設定ファイルも fluentd と異なる …
- fluentd に比べてプラグインが少ないと言われるけれど、 だいぶ増えてきたみたいだし、 いまからなら fluenet-bit が分かればいいのでは? と思うのところですが、 クライアント側は fluent-bit でいいのですが、 サーバ側は、あいかわらず fluentd なので両方勉強してください orz ;-)
- td-agent-bit (== fluent-bit)
- トレジャーデータ社が配布している版
リファレンス
- fluentd
- fluent-bit
- embulk