Docker fluentdのlogging driverを使ってみる

前提

docker起動している

fluentdの起動

# docker run --name fluentd --rm -d -p 24224:24224 fluent/fluentd
(省略)

nginxの起動、ログをfluentdに吐く

# docker run --name nginx --rm -d -p 10080:80 --log-driver=fluentd --log-opt=fluentd-async-connect --log-opt=fluentd-address=localhost24224 --log-opt=tag=docker.{{.ID}} nginx

(省略)

 

-log-opt=fluentd-async-connect を付けないとエラーだめ?

fluentd、nginxの状況確認

# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
131cc6cbf72f nginx "nginx -g 'daemon of…" 25 minutes ago Up 25 minutes 0.0.0.0:10080->80/tcp nginx
8514de69eec9 fluent/fluentd "/bin/entrypoint.sh …" 41 minutes ago Up 41 minutes 5140/tcp, 0.0.0.0:24224->24224/tcp fluentd

nginxにアクセスしてログを吐かせる

# curl localhost:10080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!

(省略)

</title></html>

 

ログが出ていることを確認

# docker exec -it fluentd cat /fluentd/log/docker.log
2018-09-30T15:00:22+00:00 docker.131cc6cbf72f {"container_name":"/nginx","source":"stdout","log":"172.17.0.1 - - [30/Sep/2018:15:00:22 +0000] \"GET / HTTP/1.1\" 200 612 \"-\" \"curl/7.29.0\" \"-\"","container_id":"131cc6cbf72f532b840236a7780f128e21b0d3b19bf8ffbbdb75afb3e8f27dc6"}
2018-09-30T15:01:23+00:00 docker.131cc6cbf72f {"source":"stdout","log":"172.17.0.1 - - [30/Sep/2018:15:01:23 +0000] \"GET / HTTP/1.1\" 200 612 \"-\" \"curl/7.29.0\" \"-\"","container_id":"131cc6cbf72f532b840236a7780f128e21b0d3b19bf8ffbbdb75afb3e8f27dc6","container_name":"/nginx"}

# date
2018年 10月 1日 月曜日 00:29:58 JST

課題

ログの時刻がJSTじゃない。

 

参考

ロギング・ドライバの設定 — Docker-docs-ja 17.06.Beta ドキュメント