序文
Fluentdは、統合ログレイヤーのオープンソースデータコレクターです。Kubernetes、Prometheus、Envoy、CoreDNS、containerdに続く6番目のCNCF卒業プロジェクトです。比較的軽量なエラスティックlogstashと比較されることがよくあります。柔軟性があり、開発は非常に簡単です。現在、コミュニティは非常に活発です。このブログを書いている時点では、githubのスターは8.8k、フォークは1kです。
前提
Dockerfileファイルの書き込み
Dockerfile
FROM fluent/fluentd:v1.3.2
ADD fluent.conf /etc/fluent/
RUN echo "source 'https://mirrors.tuna.tsinghua.edu.cn/rubygems/'" > Gemfile && gem install bundler
RUN gem install fluent-plugin-kafka -v 0.12.3 --no-document
RUN gem install fluent-plugin-elasticsearch -v 4.0.3 --no-document
CMD ["fluentd"]
fluent.conf
<source>
@type kafka
brokers kafka:9092
format json
<topic>
topic kafeidou
</topic>
</source>
<match *>
@type elasticsearch
host elasticsearch
port 9200
index_name fluentd
type_name fluentd
</match>
基本イメージはバージョンv1.3.2のfluentdイメージを使用します。fluentdの処理レイヤー拡張はプラグインによって拡張されるため、このイメージを作成する際には、対応するkafkaプラグインとelasticsearch
プラグインをインストールする必要があります。kafkaのfluentdプラグインバージョンは0.12.3、elasticsearchのfluentdプラグインバージョンは4.0.3です。
Dockerfileとfluent.confの準備ができたら、ミラーリングコマンドを実行します
docker build -t fluentd-es-kafka:v1.3.2 .
このようにして、esプラグインとkafkaプラグインを含むfluentdイメージが完成します。
このようなfluentdを実行するには、dockerコマンドを実行するだけで済みます。
docker run -it -d fluentd-es-kafka:v1.3.2
コンテナが開始されると、ホストをkafkaとしてkafkaメッセージのリッスンを開始し、ホストをelasticsearchとしてelasticsearchノードにデータを送信します。
esとkafkaのノードアドレスが異なる場合は、ボリュームにハングアップして、コンテナー内のデフォルトの構成ファイルをオーバーライドする必要があります。
docker run -it -v {存放fluent.conf的目录}:/etc/fluent -d fluentd-es-kafka:v1.3.2
完成した画像を送信します。lypgcs/fluentd-es-kafka:v1.3.2
> 4つのコーヒー豆の リリースで始まります!
>公式アカウントをフォロー-> [Four CoffeeBeans]最新のコンテンツを入手