0. 前書き
タイトルの通りです。
DockerHub上のfluent/fluentdの通りですが、メモとして。
https://hub.docker.com/r/fluent/fluentd/
以降ではDockerのホストを動かす環境を”ホスト”と記述しています。
また、確認のため、ホスト側でfluent-catコマンドを使います。
入っていない場合は入れときましょう。
1. ホストでDockerを導入
これはご利用の環境にあわせてDocker公式の通りに。
https://docs.docker.com/installation/
2. ホスト上の/dataフォルダへの権限付与
/dataフォルダをコンテナ内にマッピングし、fluentdの書き込み先とするため、書き込めるようにしときます。とりえあず777。
$ sudo mkdir /data
$ sudo chmod 777 /data
3. どーん
ホスト上でdocker run します。
$ sudo docker run -d -p 24224:24224 -v /data:/fluentd/log fluent/fluentd
起動しているか確認しときましょう。
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57e6c6b5a2f4 fluent/fluentd "/bin/sh -c 'exec flu" 13 seconds ago Up 11 seconds 0.0.0.0:24224->24224/tcp distracted_hoover
いいですね。
で、実際の動作。
デフォルトのfluent.confでは、docker.*以外のタグのついたデータは、ホスト上の/dataディレクトリにdata.日付.モニョモニョ.logとして記録されます。
実際データを投げつけて確認してみましょう。
前書きのとおり、ホストにfluentdが導入されている前提ですので、fluent-catを使います。
データを投げつける前は/dataには何もないはずです。
$ ls /data
$ echo '{"subject":"hello"}' | fluent-cat test
$ ls /data
data.20151029.b52338685a663e9e7.log data.log
$ cat /data/data.20151029.b52338685a663e9e7.log
20151029T062739+0000 test {"subject":"hello"}
いいですね!
4. その他
ふーんと思ったところで、オリジナルのfluent.confを使いたいとか、fluentdの起動オプションの指定とか、ディレクトリのマップを変えたいとか、ポートを変えたいとかなったら、改めて公式読めばいいんじゃないでしょうか。
https://hub.docker.com/r/fluent/fluentd/
おしまい。