LoginSignup
0
1

More than 5 years have passed since last update.

docker-fluentd-image のカスタマイズを試す

Last updated at Posted at 2017-02-02

README の How to build your own image のところを見ながら、docker-fluentd-image のカスタマイズを試してみたメモ。

Create a working directory

ディレクトリを作って移動。

$ mkdir custom-fluentd
$ cd custom-fluentd

手順どおり curl で fluent.conf をダウンロードしようとしたら、404 エラーになってしまった。

$ curl https://raw.githubusercontent.com/fluent/fluentd-docker-image/master/fluent.conf > fluent.conf
$ cat fluent.conf
404: Not Found

ので、fluent.conf.erb のほうをダウンロード。

$ curl https://raw.githubusercontent.com/fluent/fluentd-docker-image/master/fluent.conf.erb > fluent.conf
$ cat fluent.conf
(正常な設定ファイル)

(不要な気もするけど、元の手順に従って) プラグイン用のディレクトリを作っておく。

$ mkdir plugins

サンプルの Dockerfile をダウンロード。

$ curl https://raw.githubusercontent.com/fluent/fluentd-docker-image/master/Dockerfile.sample > Dockerfile
$ cat Dockerfile
(正常な設定ファイル)

Customize fluent.conf

ダウンロードした fluent.conf には docker.** にマッチしてイメージ内の /fluentd/log/ にログを保存する設定が入っているので、とりあえずこの手順は飛ばす。

Customize Dockerfile to install plugins (optional)

サンプルの Dockerfile では fluent-plugin-secure-forward をインストールするカスタマイズが入っているので、とりあえずこの手順は飛ばす。

Build image

普通にビルド。

$ docker build -t custom-fluentd:latest ./
(略)

Test it

ログディレクトリを作成し、そのディレクトリをコンテナにマウントした上で、ビルドしたイメージからコンテナ起動。
(元の手順にはないが、手元の環境だと root で作業していたため chmod 777 log も必要だった。)

$ mkdir log
$ chmod 777 log
$ docker run -it --rm --name custom-docker-fluent-logger -v `pwd`/log:/fluentd/log custom-fluentd:latest

うまく起動するとこんな感じのメッセージが標準出力に表示される。

2017-02-02 05:55:17 +0000 [info]: listening fluent socket on 0.0.0.0:24224

上記のコンテナを起動したままの状態で、別のターミナルに入り作業する。
上記コンテナの IP アドレスを取得。

$ docker inspect -f '{{.NetworkSettings.IPAddress}}' custom-docker-fluent-logger
172.17.0.5

fluentd をログドライバーに指定して別のコンテナを立ち上げ、ログを送ってみる。
(標準出力に出力した文字列が fluentd に送られるはず。)

$ docker run --log-driver=fluentd --log-opt fluentd-address=172.17.0.5:24224 python:alpine echo Hello

想定通りにログが出力されている。

$ docker exec custom-docker-fluent-logger cat /fluentd/log/docker.log
20170202T055916+0000    docker.aa89aa191723     {"container_id":"aa89aa1917230756751e0e2652c5d01783c25fa3d631ee1821d12b74637c7f00","container_name":"/boring_curran","source":"stdout","log":"Hello"}

今回はやらなかったけど、ログが出ない場合は元の手順に書いてある下記を試すとよさそう。

$ docker kill -s USR1 custom-docker-fluent-logger

まとめ

とりあえず基本的なカスタマイズ手順を試すことができた。
次は fluent/fluent-plugin-kafka を組み込んで試してみようと思う。

0
1
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
1