kafkaプラグインとesプラグインを使用してFluentd画像を作成します

序文

Fluentdは、統合ログレイヤーのオープンソースデータコレクターです。Kubernetes、Prometheus、Envoy、CoreDNS、containerdに続く6番目のCNCF卒業プロジェクトです。比較的軽量なエラスティックlogstashと比較されることがよくあります。柔軟性があり、開発は非常に簡単です。現在、コミュニティは非常に活発です。このブログを書いている時点では、githubのスターは8.8k、フォークは1kです。

前提

  1. docker

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]最新のコンテンツを入手  
 

 

おすすめ

転載: blog.csdn.net/lypgcs/article/details/104326585