0
0

FirelensしたいけどFluentbitがよくわからんのでローカルで試す

Last updated at Posted at 2024-07-23

みなさんFluentbitは好きでしょうか。
はい!好きです!と勢いよく答えた方、きっとFluentbitもあなたの事が好きです。

しかし私は片思いでした。

なので、ローカルで色々試したかったので、その環境構築などなどメモしたいと思います。

あ、Docker使うのでその前提で。

とりま動かす

こちら参考にさせていただきました。
https://zenn.dev/amezousan/scraps/d41491d800d682

以下の2行でFluentbit動きます。

docker pull fluent/fluent-bit:latest-debug
docker run --name fluentbit --rm fluent/fluent-bit:latest-debug /fluent-bit/bin/fluent-bit -i tail -p path=/tmp/test -p refresh_interval=5 -o stdout

動いたら別のターミナルで接続します。

docker exec -it fluentbit bash

あとは/tmp/testに書き込めば、Fluentbitが動作します。
例)

echo test >> /tmp/test

画像の2行目が出てきた子です。かわいいですね。
image.png

設定ファイル使いたい

FirelensとかだとS3にファイル置けるんすけど、ローカルDockerの場合どうするんだろ?
設定ファイル変えるたびにDocker Imageビルドしなおすのは嫌ですね。

なので、Dockerのボリュームマウントで、設定ファイル置いてあるローカルの場所共有しましょう。
c:\Users\User\aws\fluentbit
というディレクトリの下に、extra.confというファイルを置いているとします。(名前は自由なのでextra.confでなくてもOK)
その場合、コマンドは以下です。(extra.conf作る前に実行するとエラーになると思います)

docker run -v c:\Users\User\aws\fluentbit:/root --name fluentbit --rm fluent/fluent-bit:latest-debug /fluent-bit/bin/fluent-bit -i tail -p path=/tmp/test -p refresh_interval=5 -o stdout -c /root/extra.conf

extra.confの中身は、単純に以下にしましょう。

[FILTER]
  Name  rewrite_tag
  Match *tail*
  Rule  log test log2 false

[OUTPUT]
  Name  stdout
  Match *

先のコマンドで実行して、別のターミナルで/tmp/testに書き込みます。
すると以下のようになります。
image.png

前の出力結果で、「tail.0」だったものが「log2」に書き換わりました。

後はお好きなように。

extra.confでは、タグに「tail」を含むものを、「log2」に書き換えてます。
私の環境ではデフォルトのタグが「tail.0」だったのですが、他の人でも同じかは知らんです。

デフォルトの設定ファイルあるだろうから、extra.confに[OUTPUT]いらんくない?って思ったそこのあなた。
私もそう思ったんですが、書かないとログ出力されなかったです。

書き忘れたんすけど、[PARSER]は他の設定ファイルと異なるファイルに書かないといけないです、確か。
extra.confで別のファイル指定することもできたと思いますけど、fulentbitの実行時引数に渡す場合は、-Rで渡すんだったはずです。
https://docs.fluentbit.io/manual/administration/configuring-fluent-bit

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0