Fluentd
Docker
docker-compose

FluentdをDocker Composeで立ち上げてみる

More than 1 year has passed since last update.


はじめに

ちょっと Fluentd を使いたい用事ができたのでさくっとセットアップしようと思った。普通にセットアップするは面倒だったのでDocker Hubにあるイメージ から立ち上げようと思った。それならばあとで他のコンテナも使うかもしれないからDocker Composeで立ち上げれるようにしたら便利やん。と思っていい感じの docker-compose.yml が書いてないか探したけどいまいち見つからない。

なので書いてみた。やったあとであんまり目的に会ってない気がしたが、せっかくなのでメモを残しておく。


docker-compose.yml


docker-compose.yml

version: "2"

services:
fluentd:
image: fluent/fluentd:latest
ports:
- "24224:24224"
environment:
- 'FLUENTD_CONF=fluentd.conf'
volumes:
- ./tmp/fluentd:/fluentd/log
- ./etc:/fluentd/etc


とりあえず fluentd.conf は任意のものに変更したいので FLUENTD_CONF で起動時にローカルのものをコピーするようにする。


ディレクトリ構成

etcディレクトリにfluentd.conf を配置。 tmp にfluentdのログのボリュームが置かれるようにする。

tree .

.
├── docker-compose.yml
├── etc
│   └── fluentd.conf
└── tmp
└── empty


起動する

docker-compose up -d

Creating network "fluentddockercompose_default" with the default driver
Pulling fluentd (fluent/fluentd:latest)...

(中略)

Status: Downloaded newer image for fluent/fluentd:latest
Creating fluentddockercompose_fluentd_1 ... done

接続してみる

docker exec -it fluentddockercompose_fluentd_1 /bin/sh

/ # ls
bin fluentd media root srv usr
dev home mnt run sys var
etc lib proc sbin tmp

fluentd.confをみてみる

# vi fluentd/etc/fluentd.conf

ローカルに配置したものになっていれば成功


まとめ

やったあとで気づいたがこういうのは最近はKubernetesでやるんだろうか。なのでDocker Composeでの設定が見つからなかったのか? 記述が簡単で手軽なのでDocker Composeは好きなんだけど。しかしまあ、ちゃんとシステム開発して運用のスケーラビリティを視野に入れたら最初からk8sでやっといたほうがいいんだろうなあ。今度からそうしよう。