みなさん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
設定ファイル使いたい
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に書き込みます。
すると以下のようになります。
前の出力結果で、「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